Может ли кто-нибудь дать мне рабочую реализацию проблемы изоморфизма графа Ульмана в MATLAB или ссылку на нее. Или если у вас есть хотя бы на C, то я бы попробовал реализовать это в MATLAB.
Спасибо
Может ли кто-нибудь дать мне рабочую реализацию проблемы изоморфизма графа Ульмана в MATLAB или ссылку на нее. Или если у вас есть хотя бы на C, то я бы попробовал реализовать это в MATLAB.
Спасибо
я тоже ищу. Я искал в Интернете, но пока безуспешно, но я нашел это: Алгоритм, где объясняется алгоритм.
С другой стороны, я нашел это:
def search(graph,subgraph,assignments,possible_assignments):
update_possible_assignments(graph,subgraph,possible_assignments)
i=len(assignments)
# Make sure that every edge between assigned vertices in the subgraph is also an
# edge in the graph.
for edge in subgraph.edges:
if edge.first<i and edge.second<i:
if not graph.has_edge(assignments[edge.first],assignments[edge.second]):
return False
# If all the vertices in the subgraph are assigned, then we are done.
if i==subgraph.n_vertices:
return True
for j in possible_assignments[i]:
if j not in assignments:
assignments.append(j)
# Create a new set of possible assignments, where graph node j is the only
# possibility for the assignment of subgraph node i.
new_possible_assignments = deep_copy(possible_assignments)
new_possible_assignments[i] = [j]
if search(graph,subgraph,assignments,new_possible_assignments):
return True
assignments.pop()
possible_assignments[i].remove(j)
update_possible_assignments(graph,subgraph,possible_assignments)
def find_isomporhism(graph,subgraph):
assignments=[]
possible_assignments = [[True]*graph.n_vertices for i in range(subgraph.n_vertices)]
if search(graph,subgraph,asignments,possible_assignments):
return assignments
return None
здесь: реализация. У меня нет навыков, чтобы преобразовать это в Matlab, если они у вас есть, я был бы очень признателен, если бы вы могли поделиться своим кодом, когда закончите.