누구나 Dharwadker-Tevet Graph Isomorphism 알고리즘에 대한 반례를 알고 있습니까?


10

에서는 http://www.dharwadker.org/tevet/isomorphism/ 두 그래프는 동형 있는지 결정하기위한 알고리즘의 프리젠 테이션이있다. 우리가 Dharwadker의 "흥미로운"주장을 할 것이라고 생각할 때, 나는 그것을 믿지 않을 것입니다.

내 조사에서 알고리즘이 정답을 확실히 생성하고 실제로 올바른 경우 두 그래프가 동형이 아니라는 것을 알았습니다. 그러나 두 그래프가 실제로있을 때이 그래프가 동형인지 여부를 알고리즘이 지속적으로 알려주는 것은 확실하지 않습니다. 그들의 결과의 "증거"는 원하는 것을 남긴다.

그러나 나는 반례를 알지 못한다. 알고리즘을 테스트하기 위해 소프트웨어 작성을 시작하기 전에 누군가 이미 반례를 알고 있는지 알 수 있다고 생각했습니다.

누군가 알고리즘의 개요를 요청했습니다. 나는 여기서 할 수있는 일을 할 것이지만 실제로 이해하려면 http://www.dharwadker.org/tevet/isomorphism/ 을 방문해야합니다 .

알고리즘에는 "서명"단계와 정렬 단계의 두 단계가 있습니다. 첫 번째 "서명"단계 (이것은 프로세스에 대한 나의 용어입니다. "서명 행렬"을 생성한다고합니다)는 꼭짓점을 다른 등가 클래스로 효과적으로 정렬합니다. 두 번째 단계는 먼저 등가 클래스에 따라 정점을 정렬 한 다음 등가 클래스 내에 정렬 절차를 적용하여 두 그래프간에 동형을 설정합니다. 흥미롭게도, 그들은 그래프의 정식 형태를 확립한다고 주장하지 않습니다. 대신에, 하나의 그래프는 두 번째를위한 일종의 템플릿으로 사용됩니다.

시그니처 단계는 실제로 매우 흥미 롭습니다. 나는 그것을 역설적으로 시도하여 정의를하지 않을 것입니다. 더 자세한 정보를 원하면 링크를 따라 서명 단계를 검토하십시오. 생성 된 "부호 행렬"은 원래 그래프에 대한 모든 정보를 유지 한 다음 조금 더 많은 정보를 설정합니다. 서명에는 원본 행렬에 대한 전체 정보가 포함되므로 서명을 수집 한 후 원본 행렬을 무시합니다. 서명이 정점과 관련된 각 모서리에 적용되는 일부 작업을 수행 한 다음 정점에 대한 등가 클래스를 설정하기 위해 정점에 대한 여러 요소 집합을 수집한다고해도 충분합니다.

두 번째 단계 인 정렬 단계는 모호한 부분입니다. 특히, 프로세스가 작동하면 Anna Lubiw가 "이중 어휘 정렬 행렬"을 제공하기 위해 개발 한 알고리즘을 기대합니다 ( http://dl.acm.org/citation.cfm?id=22189 참조 ). 또한 그래프의 표준 양식을 정의하는 데에도 도움이됩니다.

공정하게 말해서, 나는 그들의 분류 과정을 완전히 이해하지는 못하지만, 그것들을 설명하는 합리적인 일을한다고 생각합니다. (나는 방금 모든 세부 사항을 검토하지는 않았습니다). 다시 말해, 뭔가 빠졌을 수 있습니다. 그러나이 과정이 우연히 동형을 찾는 것보다 훨씬 더 많은 일을 할 수있는 방법은 불분명합니다. 물론 그들은 가능성이 높지만 보장 할 수는 없습니다. 두 그래프가 동형이 아닌 경우 정렬 프로세스는 해당 그래프를 찾지 못하며 프로세스는 그래프를 올바르게 거부합니다.


알고리즘 아이디어를 요약 해 줄 수 있습니까?
Mohammad Al-Turkistany

1
math.stackexchange.com/questions/333633/… 도 참조하십시오 . 이것은 단지 제공된 프로그램에 대한 반례를 찾을 수있는 좋은 기회가 있지만, 여전히 하나를 찾아야한다는 것을 보여줍니다.
Thomas Klimpel

매우 규칙적인 그래프는 좋은 내기처럼 보이지만 Petersen의 그래프, Clebsch의 그래프 또는 4x4 루크의 그래프를 임의로 선택한 순열로 운이 없었습니다.
피터 테일러

마찬가지로 Shrikhande 그래프를 시도했지만 모든 순열을 시도하지는 않았습니다. 나는 Anna Lubiw에게 이메일로 그녀의 "복잡한 어휘 행렬"에 대한 반례를 요청했지만 그녀는 (적어도 아직은) 응답하지 않았다. 좀 더 체계적인 검색이 필요하다고 생각합니다.
Bill Province

1
이 사이트에서 플래그를 올릴 가능성이 있지만 기사의 사소한 주장을 생략하여 서비스를하고 있다고 생각하지 마십시오. 당신을 의심하게 만드는 그들의 사치스러운 주장은 무엇입니까? 어쩌면 그들은 빠른 성능을 주장하지만 단일 반례로 반박 할 수는 없습니다. 즉, 가능한 알고리즘은 정확하지만 (아주 보이는) 복잡성 분석은 꺼져 있습니다. 어쨌든 이론적 인 컴퓨터 과학 채팅 에서 추가 토론 / 심층 분석을 초대합니다 . 이곳에서 여러 방문객이 과거에 GI에 상당한 관심을 보였으며 최근에 확장 된 토론이 있습니다.
vzn

답변:


18

의 경우 graphA.txt:

25
 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0
 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0
 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1
 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1
 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0
 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1
 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0
 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0
 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1
 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1
 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0
 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1
 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1
 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0
 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0
 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0
 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1
 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0
 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1
 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1
 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0

그리고 graphB.txt:

25
 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0
 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1
 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0
 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0
 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0
 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1
 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0
 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1
 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1
 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1
 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0
 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1
 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1
 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0
 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0
 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1
 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0
 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0
 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1
 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1
 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1
 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1
 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0
 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0

graphA.txt(랜덤) 순열을 적용하여 얻습니다.

 22 9 24 11 15 8 5 18 13 14 2 10 23 0 3 17 4 16 6 19 7 21 12 1 20

는 C ++ 프로그램 isororphism.cpp에서 그림 6.3. http://www.dharwadker.org/tevet/isomorphism/ 의 그래프 동형 알고리즘대한 C ++ 프로그램 은 다음과 같은 출력을 제공합니다.

The Graph Isomorphism Algorithm
by Ashay Dharwadker and John-Tagore Tevet
http://www.dharwadker.org/tevet/isomorphism/
Copyright (c) 2009
Computing the Sign Matrix of Graph A...
Computing the Sign Matrix of Graph B...
Graph A and Graph B have the same sign frequency vectors in lexicographic order but cannot be isomorphic.
See result.txt for details.

우리는 이것이 Dharwadker-Tevet Graph Isomorphism 알고리즘에 대한 반례라고 가정 할 수 있습니다.

Bill Province에서 제안한대로 문제는

4.1. 제안. 그래프 와 가 동형 인 경우 알고리즘은 동형을 찾습니다.G BGAGB

법안의 반대는 법안 4.1 의 증거입니다 . 인접 행렬에도 적용되지 않는 부호 행렬의 특수 속성을 사용하지 않습니다. 보다 정확하게는 증명의 다음 단계가 잘못되었습니다.

인덕션 가설 해당 행 가정 의 와 되도록 완벽 절차 3.4 일치 한 행을 대 정점 라벨 의 이다 의 행 에 대한 및 정점 레이블 은 각각 입니다.B 1 , . . . , 마에 V 1 , . . . , 브이 t 1 , . . . , t B1,...,tAB1,...,tAv1,...,vt1,...,tBφ(v1)=v1,...,φ(vt)=vt

행이 완벽하게 일치하더라도 정점 레이블이 동 형사상 의해 주어진 레이블과 일치하는 것은 아닙니다 .φ

정확성 증명의 구멍이 식별되었으므로, 상기 반대의 예는 제안 된 알고리즘의 주장 된 정확성을 반박하기에 충분해야한다.


감사 의 글 반대 사례는 다음의 8 번째 그래프 쌍 중 첫 번째입니다.

http://funkybee.narod.ru/graphs.htm

그래프를 조작하기 위해 ScrewBoxR1160.tar의 소스 코드를 사용하고 수정했습니다.

https://people.mpi-inf.mpg.de/~pascal/software/

정확성 증명의 구멍을 이해하기 위해 Weisfeiler-Lehman에 대한 András Salamon의 의견은 다음과 같이 설명되었습니다.

http://users.cecs.anu.edu.au/~pascal/docs/thesis_pascal_schweitzer.pdf

이 질문을 해상 / 추적 과 친숙해지기위한 기회로 사용하려는 동기와 그래프 동형의 실제 측면은 vzn에서 제공했습니다. 그래프 동 형사상에 최첨단 프로그램을 사용하는 방법을 배우는 이점으로 인해 반례를 찾는 데 시간을 허비 할 가치가있었습니다.


매우 상세한 답변에 감사드립니다. 반대의 예를 찾기 위해 그래프에 사용한 선택 기준이 있습니까? 반례가 선택되면 의견이 순열이 임의로 선택되었음을 나타냅니다. 이것이 사실입니까? 또는 순열 선택에 더 많은 것이 있습니까?
Bill Province

@BillProvince 선택 기준은 Cai, Fürer 및 Immerman 건설이 성공했을 수 있기 때문에 András Salamon의 의견을 기반으로합니다. 먼저 Pascal Schweitzer에서 n = 546 예제를 시도했지만 원래 C ++ 프로그램 isororphism.cpp는 이제 1566 분 이후부터 계산됩니다. 나는 더 나은 데이터 구조를 사용했고 2 시간이 지난 후에 큰 반례가 효과가 있다는 것을 알게되었다. 나는 trg787 / funkybee가 그의 그래프 쌍 사이에 Cai, Fürer 및 Immerman 구조를 가지고 있음을 알았으므로 행운을 시험해 보았습니다. 여러 번 무작위 순열을 시도했지만 (n = 25 예제의 경우) 두 번째는 효과가있었습니다.
토마스 클림 펠

어느 것이 시간을 절약 하는가, 1. 카운터 예제를 찾는 것 2. 4.1을 증명하는 것은 잘못이다.
Jim

나는 끝없이 눈에 띄지 않고 6200 분 이상 실행 한 후 n = 546 예제의 원래 C ++ 프로그램 isoromorphism.cpp를 중지했습니다.
토마스

@ThomasKlimpel이 결과를 언급 한 논문을 쓸 계획입니다. 선호하는 전문가 속성이있는 경우 billprovince@gmail.com으로 해당 속성을 이메일로 보내주십시오. 어쨌든 blog.stackexchange.com/2009/06/attribution-required에 게시 된 귀속 요구 사항을 따르 려고 합니다.
Bill Province
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.