Chuyển đổi một sơ đồ thành một đồ thị vô hướng theo cách đảo ngược


10

Tôi đang tìm kiếm một thuật toán để chuyển đổi một sơ đồ (đồ thị có hướng) thành một đồ thị không bị thay đổi theo một cách có thể đảo ngược, tức là bản đồ đó nên được xây dựng lại nếu chúng ta được đưa ra đồ thị vô hướng. Tôi hiểu rằng điều này sẽ xảy ra với chi phí của đồ thị vô hướng có nhiều đỉnh hơn nhưng tôi không bận tâm.

Có ai biết làm thế nào để làm điều này hoặc có thể đề xuất bất kỳ tài liệu tham khảo? Cảm ơn trước.


Cập nhật: Liên quan đến câu trả lời của AdrianN dưới đây. Nó có thể là một điểm khởi đầu tốt nhưng tôi không nghĩ nó hoạt động ở dạng hiện tại. Đây là một hình ảnh tại sao tôi nghĩ rằng nó không: nhập mô tả hình ảnh ở đây


Cập nhật sau nhận xét của DW: Tôi coi các đỉnh của đồ thị sẽ không được gắn nhãn. Nếu một giải pháp liên quan đến việc ghi nhãn các đỉnh (giống như của AdrianN), thì nó sẽ đưa ra biểu đồ vô hướng (đẳng cấu) tương tự cho dù việc dán nhãn được thực hiện như thế nào. Định nghĩa của tôi về "đẳng cấu" cho các đồ thị có các đỉnh được gắn nhãn là có một hoán vị của nhãn có liên quan đến hai biểu đồ, nhưng tôi không chắc định nghĩa chính xác cho các đồ thị không được gắn nhãn ...


1
Tôi nghĩ rằng câu hỏi này là quá rộng. Những hạn chế của bạn là gì?
adrianN

Tôi thực sự không thể nghĩ ra bất kỳ ràng buộc nào cho đến bây giờ. Tôi đoán bất kỳ cách nào để mã hóa thông tin của đồ thị có hướng vào một đồ thị không mong muốn sẽ làm, miễn là nó có thể đảo ngược. Tôi đoán những gì tôi có trong đầu là loại đồ thị vô hướng đơn giản nhất, vì vậy tôi đang tìm một giải pháp không sử dụng màu sắc cho các đỉnh hoặc các cạnh.
Heterotic

Tôi nghĩ bạn nên xác định trong câu hỏi ý của bạn là "cùng một biểu đồ". Bạn có nghĩa là các đỉnh được dán nhãn, hoặc các đỉnh không được ghi nhãn? Bạn có nghĩa là giống nhau cho cả hai, hoặc hai biểu đồ là đẳng cấu? Nghe có vẻ như bạn có nghĩa là sau này. Bạn có chắc chắn đó là một yêu cầu trong ứng dụng của bạn? Nếu bạn được phép giữ lại nhãn, vấn đề trở nên dễ dàng hơn và trả lời AdrianN của các công trình (vì cạnh ( 3 , 4 ) là không giống như các cạnh ( 1 ' , 2 ' ) ). (V,E)(3,4)(1,2)
DW

2
Vui lòng kết hợp cập nhật của bạn vào câu hỏi. Tại bất kỳ thời điểm nào, bài viết SE nên có thể đọc từ trên xuống dưới mà không cần hỏi về lịch sử; được lưu trữ riêng.
Raphael

Câu trả lời:


6

Đối với mỗi cạnh đạo , thêm đỉnh mới v e 1 , ... , v đ 5 và thay thế e với các cạnh x v e 1 , v e 1 v e 2 , v e 1 v e 3 , v e 3 v e 4 , v e 4 v e 5 , v ee=(x,y)v1e,,v5eexv1ev1ev2ev1ev3ev3ev4ev4ev5e.v3ey

Để giải mã, mỗi lá (đỉnh cấp 1) có hàng xóm có độ 2 phải là  cho một số cạnh e = ( x , y ) ; hàng xóm của nó là  v e 4 và hàng xóm khác của  v e 4 là  v e 3 . v e 3  có một hàng xóm duy nhất có cả độ 3 và liền kề với một chiếc lá: hàng xóm là  v e 1 và lá của nó là  v e 2 (nếu v e 1v5ee=(x,y)v4ev4ev3ev3ev1ev2ev1ecó hai lá lân cận, chọn một lá tùy ý để được ). Hàng xóm khác của v e 1 là  x và hàng xóm khác của v e 3 là  y . Khôi phục các cạnh đạo ( x , y ) và xóa các đỉnh v e 1 , ... , v đ 5 .v2ev1exv3ey(x,y)v1e,,v5e


7

Câu trả lời của David Richerby (đã được chấp nhận) là tốt.

Tôi đã làm theo hướng dẫn của anh ấy trên một ví dụ đơn giản, và hy vọng nó sẽ giúp được ai đó.

sơ đồ a <-> b, c -> a, b -> c

(Tôi đã đăng bài này dưới dạng nhận xét về câu trả lời của David, nhưng tôi không có điểm danh tiếng cần thiết.)


1
Các đại diện đồ họa là một cải tiến lớn so với câu trả lời ban đầu. Cảm ơn bạn đã đăng nó như là một câu trả lời không phải là một bình luận.
OrangeSherbet

1
Tôi luôn cảm thấy choáng ngợp khi nhìn vào một lời giải thích hoặc công thức chính thức trong một bài báo toán học. Tôi chỉ cần vượt qua sự lo lắng đó, và nhìn từng câu từ từ - nhìn mọi thứ tôi không quen khi tôi đi cùng. Sau đó, tôi viết nguệch ngoạc một ví dụ như thế này để chắc chắn tôi hiểu. Cuối cùng, tôi luôn chết lặng vì đơn giản là tất cả đều dài và kinh hoàng về việc tôi đã mất bao nhiêu nỗ lực để hiểu nó. Cảm giác như tôi đến từ một hành tinh khác. Rất vui vì tôi có thể giúp bạn hiểu nó nhanh hơn. Một khi bạn nhìn thấy nó, nó là dễ dàng.
William

2

Để chuyển đổi một đồ thị có hướng thành một đồ thị vô hướng G, người ta làm như sau:DG

  1. Đánh số các nút của D
  2. G DGD
  3. Với mọi cạnh , trong thêm cạnh vào nếu , mặt khác thêm cạnh vàov D G ' u < v G "uvDGu<vG
  4. G là liên hiệp rời rạc của vàG "GG

Khi thực hiện liên minh rời rạc, người ta phải chăm sóc để làm cho nó đảo ngược.

Thí dụ


Đây là một nỗ lực tốt và nó dọc theo dòng tôi đã có trong đầu để tìm câu trả lời nhưng nó không hoạt động vì nghịch đảo không phải là duy nhất. Ví dụ: biểu đồ O <-> OOO sẽ được chuyển đổi thành biểu đồ OO OO OO OO nhưng sau đó biểu đồ này cũng có thể đến từ biểu đồ có hướng O-> O O-> OOO, vì vậy quá trình này không thể đảo ngược.
Heterotic

Tôi đã thêm một hình ảnh để làm cho nó rõ ràng hơn.
adrianN

-1

Còn chức năng nhận dạng thì sao? Tức là mọi sơ đồ có thể được xem như là một biểu đồ lưỡng cực, không có giới hạn với các phân vùng có kích thước bằng nhau và ngược lại.


G=(V,E)(V×{0,1},{(u,0,v,1)(u,v)E})GGGG

-1

Đây là một cú đâm vào đây:

Thay thế thông tin hướng bằng các đỉnh bổ sung trong biểu đồ vô hướng. Nói cách khác, sử dụng các đỉnh bổ sung trong biểu đồ vô hướng để "mã hóa" thông tin hướng. Ví dụ: đối với mỗi đỉnh được định hướng có ít nhất một cạnh, hãy thêm một số đỉnh không bị chặn bằng 1 + số cạnh "đến". Các đỉnh có cạnh không thay đổi.

Để thực hiện hướng ngược lại, tạo một đỉnh có hướng cho mỗi đỉnh có 0 hoặc nhiều hơn 1 cạnh. (Các đỉnh có chính xác một cạnh là các đỉnh "mã hóa hướng"). Mỗi cạnh kết nối một đỉnh đa sắc khác là một kết nối trong biểu đồ có hướng. Bây giờ là phần khó khăn mà tôi không thể giải thích một thuật toán cho (nhưng tôi nghĩ rằng nó tồn tại): Bạn phải suy ra hướng của các mũi tên chỉ với số lượng mũi tên đến cho mỗi đỉnh.

Tôi nghĩ rằng phần khó khăn giống như chơi trò quét mìn :-) Tìm hiểu nơi các quả bom (các cạnh đến) được đưa ra số lượng bom liền kề cho mỗi ô vuông (đỉnh).


xx

Theo "đỉnh có hướng", ý tôi là một đỉnh trong đồ thị có hướng (trái ngược với đồ thị không có hướng tương đương). Bạn có thể phân biệt các cạnh "thực" với các cạnh "mã hóa độ" vì chỉ các đỉnh "mã hóa độ" có một cạnh duy nhất. Đó là lý do cho "1 +" trong mô tả của tôi. Tôi sẽ nói với bạn về "phần khó khăn" của tàu quét mìn. Tôi không biết rằng nó hoàn toàn tương đương với máy quét mìn, nhưng tôi có thể tin rằng tôi chỉ có thể đá cái xô xuống đường :-)
Aaron

Ngoài ra, tôi không hiểu lắm về giải pháp của bạn khi tôi đọc nó lần đầu tiên, nhưng tôi thấy nó hoạt động như thế nào bây giờ. Tài giỏi!
Aaron

xx

(x,y)(x0,x),(x,y),(y,y0)(y,y1)xy(x,y)
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.