cuốn sách gpt4 ai đã làm

android - Tìm tất cả *đỉnh* trên tất cả các đường đơn giản giữa hai đỉnh trong đồ thị vô hướng

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:25:34 26 4
mua khóa gpt4 Nike

Việc liệt kê tất cả các đường đi đơn giản giữa hai đỉnh trong một đồ thị tùy ý thường mất thời gian theo cấp số nhân vì có thể có một số mũ các đường đi đơn giản giữa các đỉnh. Tuy nhiên, nếu chỉ xem xétđỉnhphải làm gì?

即:Cho một đồ thị vô hướng và hai đỉnh phân biệt, có thuật toán thời gian đa thức nào có thể tìm thấy mọi đỉnh nằm trên ít nhất một đường đơn giữa hai đỉnh không?Điều này không giống như kết nối; ngõ cụt và ngõ cụt bị loại trừ. Tuy nhiên, các đường dẫn phân nhánh và nối được cho phép.

Tôi thấy rất dễ dàng để viết một thuật toán dường như có thể giải quyết được vấn đề này, nhưng lại thất bại trong một số trường hợp hoặc mất thời gian chạy theo cấp số nhân trong các trường hợp bệnh lý.

Tổng quát hơn:Cho hai tập hợp đỉnh rời nhau trong một đồ thị, liệu có thuật toán thời gian đa thức nào có thể tìm thấy tất cả các đỉnh nằm trên một đường đi đơn giản từ tập hợp đỉnh này đến tập hợp đỉnh khác không?

(Hãy tha thứ cho tôi nếu có một giải pháp rất rõ ràng. Có vẻ như nên có.)

câu trả lời hay nhất

Đây là một giải pháp xác định thời gian tuyến tính.Chèn một cạnh vào giữa hai điểm cuối của bạn (hãy gọi chúng là a và b), nếu cạnh đó không tồn tại, bài toán của bạn sẽ chuyển sang dạng tìm giá trị lớn nhất nằm trên bất kỳ chu trình đơn nào đi qua a và b. Bài toán với tập đỉnh v. Bạn có thể tự thuyết phục mình rằng tập hợp như vậy tương ứng với đồ thị con lớn nhất chứa a và b và không thể bị ngắt kết nối bằng cách loại bỏ bất kỳ nút nào của nó (còn gọi là các thành phần được kết nối hai chiều). Trang nàyCác khái niệm của Hopcroft và Tarjan và thuật toán thời gian tuyến tính cổ điển (dựa trên DFS) được mô tả để xác định tất cả các thành phần được kết nối hai chiều (bạn chỉ cần các thành phần chứa a và b).

Bài toán thứ hai về đường đi đơn giản giữa hai tập hợp (hãy gọi chúng là A và B) có thể được rút gọn thành bài toán đầu tiên bằng cách tạo một đỉnh a mới với các cạnh tới tất cả các đỉnh trong A và A đỉnh b, các cạnh đến tất cả các đỉnh B, sau đó giải quyết vấn đề đầu tiên của bạn a và b.

Về thuật toán - tìm tất cả các đỉnh trên tất cả các đường dẫn đơn giản giữa hai đỉnh trong đồ thị vô hướng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10825249/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress