Thuật toán đa thức đơn giản nhất cho PLANARITY là gì?


28

Có một số thuật toán quyết định trong thời gian đa thức cho dù một đồ thị có thể được vẽ trong mặt phẳng hay không, thậm chí nhiều thuật toán có thời gian chạy tuyến tính. Tuy nhiên, tôi không thể tìm thấy một thuật toán rất đơn giản mà người ta có thể giải thích dễ dàng và nhanh chóng trong lớp và sẽ cho thấy rằng PLANARITY nằm trong P. Bạn có biết gì không?

Nếu cần, bạn có thể sử dụng định lý của Kuratowski hoặc Fary nhưng không có nội dung sâu sắc, như định lý nhỏ về đồ thị. Cũng lưu ý rằng tôi không quan tâm đến thời gian chạy, tôi chỉ muốn một cái gì đó đa thức.

Dưới đây là 3 thuật toán tốt nhất, cho thấy sự đánh đổi đơn giản / không cần lý thuyết sâu sắc.

Thuật toán 1: Sử dụng thuật toán đó, chúng ta có thể kiểm tra xem đồ thị có chứa hay K 3 , 3 dưới dạng phụ trong thời gian đa thức hay không, chúng ta có được một thuật toán rất đơn giản sử dụng lý thuyết sâu. (Lưu ý rằng lý thuyết này đã sử dụng các nhúng đồ thị, như được chỉ ra bởi Saeed, vì vậy đây không phải là một cách tiếp cận thuật toán thực sự, chỉ là một điều đơn giản để nói với những sinh viên đã biết / chấp nhận định lý nhỏ của đồ thị.)K5K3,3

Thuật toán 2 [dựa trên câu trả lời của ai đó]: Dễ dàng thấy rằng nó đủ để xử lý các biểu đồ 3 kết nối. Đối với những điều này, tìm một khuôn mặt và sau đó áp dụng định lý mùa xuân của Tutte.

Thuật toán 3 [được đề xuất bởi Juho]: Thuật toán Demoucron, Malgrange và Pertuiset (DMP). Vẽ một chu kỳ, các thành phần của biểu đồ còn lại được gọi là các đoạn, chúng tôi nhúng chúng theo cách phù hợp (trong khi tạo các đoạn mới). Cách tiếp cận này không sử dụng các định lý khác.


1
Tôi nghĩ rằng nhiều người đồng ý thuật toán thời gian đa thức đơn giản nhất là thuật toán Demoucron, Malgrange và Pertuiset (DMP). Đây là một cuốn sách giáo khoa thuật toán thường bao gồm (xem ví dụ Gibbons 1985 hoặc Bondy & Murty 1976). Là đủ để chỉ quyết định phẳng, hay thuật toán cũng nên đưa ra một mặt phẳng nhúng? IIRC bài báo SODA'99 của Boyer và Myrvold @joro có lẽ đề cập đến việc bỏ qua các chi tiết, đặc biệt là về độ phức tạp của thời gian.
Juho

2
Nếu bạn chỉ muốn vấn đề quyết định là PLANAR, không phải hai vị thành niên bị cấm mà sự tồn tại của họ có thể được kiểm tra trong thời gian đa thức đủ không?
joro

2
@joro: Vâng, tất nhiên đó sẽ là một giải pháp đơn giản nhưng tôi muốn tránh sử dụng một định lý mạnh mẽ như vậy.
domotorp

1
Thuật toán mà tôi đã đề cập về cơ bản là thuật toán Auslander-Parter. Vấn đề trong thuật toán của tôi là phần 7 khi tôi nói chúng ta có thể chia đồ thị của các thành phần. Chúng ta có thể trong thuật toán ban đầu nhưng trong thuật toán mà tôi đã nói chúng ta cần các định nghĩa chính xác hơn về các thành phần và nó không được phép giải thích chi tiết. Phần đệ quy rõ ràng là đúng (nếu chúng ta có thể thực hiện bước 7 thì chúng ta đã hoàn thành), nơi bạn nghi ngờ về tính đúng đắn của nó. Tôi đã không cập nhật câu trả lời của mình vì tôi thấy nó sẽ có khoảng hai trang và tôi không thể viết tắt nó nhiều hơn và thật không hay khi gọi nó đơn giản.
Saeed

3
Giảm trường hợp 3 kết nối là một khái niệm đơn giản và nên được giải thích trong mọi trường hợp. Nếu chúng ta không quá quan tâm đến việc giảm hiệu quả cho trường hợp 3 kết nối có thể dễ dàng thực hiện. Kiểm tra tất cả các cắt 2 nút.
Chandra Chekuri

Câu trả lời:


6

Tôi sẽ mô tả một thuật toán. Tôi không chắc nó đủ điều kiện là "dễ dàng" và một số bằng chứng không dễ dàng như vậy.

Đầu tiên chúng ta chia đồ thị thành các thành phần 3 kết nối, như Chandra Chekuri đã đề cập.

  1. Chia đồ thị thành các thành phần được kết nối.
  2. Chia mỗi thành phần được kết nối thành các thành phần 2 kết nối. Điều này có thể được thực hiện trong kiểm tra thời gian đa thức cho từng đỉnh của từng thành phần 2 được kết nối G i cho dù GvGi có được kết nối hay không.Giv
  3. Chia mỗi thành phần 2 kết nối thành 3 thành phần kết nối. Điều này có thể được thực hiện trong thời gian đa thức kiểm tra hai đỉnh của mỗi thành phần 2 được kết nối G i cho dù G i - { v ,v,uGi có được kết nối hay không.Gi{v,u}

Chúng tôi đã giảm vấn đề để kiểm tra xem một thành phần 3 kết nối của đồ thị có phẳng không. Để cho là thành phần 3 kết nối.G

  1. Thực hiện bất kỳ chu kỳ C của .G
  2. Ghim các đỉnh của C là các đỉnh của đa giác lồi. Đặt từng đỉnh khác trong barycenter của hàng xóm của nó. Điều này dẫn đến một hệ phương trình tuyến tính cho biết tọa độ của từng đỉnh. Gọi là bản vẽ kết quả; nó có thể có giao cắtD
  3. Nếu không có giao cắt, chúng ta đã hoàn thành.D
  4. Lấy các đỉnh trong bất kỳ thành phần được kết nối nào của G - V ( C ) . Giới hạn của D đối với sơ đồ con cảm ứng G [ U V ( C ) ] phải là phẳng. Mặt khác, G không phải là phẳng. Đi bất kỳ mặt F trong bản vẽ D giới hạn trong đồ thị con gây ra G [ U V ( C ) ] , và để cho C ' là chu kỳ xác định FUGV(C)DG[UV(C)]GFDG[UV(C)]CF . Nếu Glà phải phẳng, sau đó phải là một chu kỳ mặt. (Khi C là một chu trình Hamilton, sau đó C ' nên được xây dựng bằng một cạnh.)CCC
  5. Lặp lại bước 2 với C 'thay vì C. Nếu bản vẽ kết quả là phẳng, thì là phẳng. Khác G không phải là phẳng.GG

Nhận xét:

  • Lập luận rằng việc nhúng mùa xuân của Tutte cho việc nhúng phẳng không đơn giản. Tôi thích phần trình bày trong cuốn sách của Edelsbrunner và Harer, Topology tính toán, nhưng nó chỉ dành cho hình tam giác. Colin de Verdiere thảo luận về việc nhúng mùa xuân trong http://www.di.ens.fr/~colin/cours/algo-graphs-surfaces.pdf , phần 1.4. Một tài liệu tham khảo chung là Linial, Lovász, Wigderson: Dải cao su, nhúng lồi và kết nối đồ thị. Kết hợp 8 (1): 91-102 (1988).
  • Việc giải một hệ phương trình tuyến tính trong một số đa thức các phép toán số học là dễ dàng thông qua việc loại bỏ Gaussian. Việc giải quyết nó bằng cách sử dụng số bit đa trị không phải là dễ dàng.

Tôi đã chỉnh sửa câu trả lời để tránh sử dụng các cây cầu và biểu đồ chồng chéo.
ai đó

Giả sử mọi thành phần 3 kết nối có thể được nhúng. Sau đó, những gì chúng ta có thể suy luận về đồ thị ban đầu? Sử dụng biểu đồ 3 kết nối đó có (nhiều nhất) một lần nhúng, có lẽ chúng ta có thể hoàn thành từ đây, nhưng bước này cũng phải được thực hiện.
domotorp

Cuối cùng, ở bước 4, một khuôn mặt trong bản vẽ không phẳng là gì? Tôi đoán điều này vẫn có thể được định nghĩa một cách tự nhiên. Và cuối cùng, "Else G không phải là phẳng" thực sự có vẻ không tầm thường.
domotorp

DG[UV(C)]G

Chúng tôi đồng ý, nhưng tôi không thấy điều này có ích gì.
domotorp

3

Thuật toán của Boyer và Myrvold được xem là một trong những thuật toán thử nghiệm tính phẳng

Trên lưỡi cắt: Đơn giản hóa O (n) Planarity by Edge Bổ sung bởi Boyer và Myrvold.

Chương sách này khảo sát nhiều thuật toán thử nghiệm phẳng và hy vọng bạn tìm thấy thuật toán đủ đơn giản.


Tôi không quan tâm đến các thuật toán tiên tiến, tôi muốn một cái gì đó dễ giải thích. Tôi không thể tìm thấy bất cứ điều gì đơn giản hơn thuật toán Demoucron, Malgrange và Pertuiset (DMP) trong cuốn sách.
domotorp

0

Điều gì về thuật toán năm 1974 của Hopcroft và Tarjan {1} ?


{1} Hopcroft, John và Robert Tarjan. "Thử nghiệm hiệu quả phẳng." Tạp chí của ACM (JACM) 21.4 (1974): 549-568.


Nó là một thuật toán nhanh và không đơn giản.
domotorp

0

Hai thuật toán, cả trong LogSpace

  1. Eric Allender và Meena Mahajan - Sự phức tạp của thử nghiệm phẳng
  2. Samir Datta và Gautam Prakriya - Kiểm tra lại hành tinh

Cái thứ hai đơn giản hơn cái thứ nhất.


Không đơn giản chút nào.
domotorp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.