- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
我在室内地图中有一个位置的无向图。当给定一组顶点时,我想找到覆盖所有这些顶点的最短路径。图包含 52 个顶点和 150 - 250 条边。
什么是我可以用来找到最短路径的最佳算法。请不要混淆这是一个旅行商问题。它不必覆盖所有节点。仅覆盖给定的节点集。
câu trả lời hay nhất
正如我所说,这是一个难题,所以不要指望多项式时间算法。
但是如果您正在寻找一种算法,您可以在可接受的时间内针对您提到的问题实例进行计算,那么这可能会奏效:
Let G(V,E) be the original graph, let N be the set of nodes that must be visited.
1. Compute the shortest-path matrix M for the entire graph (|V|x|V| matrix that contains
the length of the shortest path between each two nodes).
2. Generate a new graph G`, containing N alone, with the distances between each
two nodes taken from the shortest-path matrix M.
3. Solve the Minimum Weight Hamiltonian Path Problem on G`.
请注意,这里“最难”的部分是第三部分,它需要指数时间。但是如果组 N
不是太大,你就可以解决它:
N
包含大约 11 个节点的问题(O(|N|!)
复杂度)N
包含大约 20 个节点的问题(O(2^|N|*|N|^2)
复杂度。你基本上可以将任何求解最小权重哈密顿路径问题的算法应用到第三部分,这些算法通常等同于TSP算法(这些问题之间的唯一区别是在TSP中你访问后返回源节点所有其他节点)。
关于algorithm - 无向图中访问顶点集的最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877225/
Tôi muốn sử dụng mê cung được hiển thị trong hình để tìm đường dẫn từ nút bắt đầu đến mục tiêu bằng cách sử dụng tìm kiếm đầu tiên theo độ sâu lặp lại. Nó là một tệp văn bản chỉ chứa một cặp số, chẳng hạn như kết nối theo cặp, còn được gọi là cạnh/cung. Như thế này: 11 3 2 3 0 3 1 4 5 4 5 7 6 7
Bài toán: Bạn có đồ thị vô hướng G = (V, E) (V = đỉnh, E = cạnh) và bạn phải đi thăm mọi đỉnh và đi qua mọi cạnh theo cả hai hướng. Các thuật toán đồ thị duy nhất mà tôi biết là DFS, BFS và một số MST (Kruskal, v.v.) Thật không may
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. Nhưng điều gì sẽ xảy ra nếu chúng ta chỉ nhắm tới các đỉnh nằm trên ít nhất một đường đi đơn giản giữa hai đỉnh cuối? Nghĩa là: cho một đồ thị vô hướng và hai đồ thị khác nhau
Tôi đang phát triển một trò chơi opengl đơn giản để tìm hiểu thêm về nó. Nhưng vì lý do nào đó khi tôi cố gắng xoay khối lập phương của mình theo thời gian, nó bị giãn ra. Bạn có thể thấy nó trong ảnh: Tôi nghĩ nó có liên quan đến ma trận mô hình của tôi nhưng tôi không chắc
Tôi đã tìm kiếm trên Google trong một thời gian dài nhưng tôi không thể tìm thấy bất cứ điều gì. Làm cách nào để vẽ biểu đồ không có đỉnh được kết nối bằng Graphviz? Câu trả lời hay nhất là như thế này: chữ ghép g { SingleNode } đơn giản là không xác định được
Tôi hiện đang thực hiện một số phân tích mạng xã hội bằng gói "igraph" trong R và tôi tự hỏi liệu có cách nào để cá nhân hóa vị trí các nút trong mạng xã hội hay không. Ví dụ: sử dụng mã đồ chơi sau: Library(igraph) edg
Tôi có hình dạng đa giác trong Box2D. Hình dạng là một hình tam giác và tôi muốn nó có 3 đỉnh. Trong thực tế, tất cả các hình dạng tôi tạo ra đều có 8 đỉnh. Tại sao lại thế này? Nếu tôi xuất ra số đỉnh thì đó luôn là số chính xác. Tôi không muốn hiển thị những dòng không cần thiết, nhưng
Từ hướng dẫn sử dụng Lớp CGAL Surface_mesh: cấu trúc dữ liệu sử dụng các chỉ số nguyên làm mô tả cho chiều dọc
Tôi đang cố gắng tìm cách tham chiếu chỉ mục lưới ARFaceGeometry để đặt đồ họa lên các phần cụ thể của khuôn mặt bằng ARKit. Tôi đã thấy nhiều ví dụ trong đó các hàm được liên kết với một số số chỉ mục nhưng tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về danh sách này. Hình như có hơn 12
Apache TomCat (không xác định phiên bản) Đối tượng kinh doanh 4.1 Capstone 4.4.3 Trên một máy chủ, chúng tôi có TomCat và Đối tượng kinh doanh. APEX cũng sử dụng TomCat. đến của chúng tôi
Tôi đang thực hiện một số công việc bằng cách sử dụng MX Graph để giúp xác định các đường dẫn nội dung quan trọng trong trang web. Tôi thiết lập nó sao cho mỗi đỉnh đại diện cho một trang trên trang web và mỗi cạnh đại diện cho một nhóm khách truy cập từ trang A đến trang B. Mọi thứ đều hoạt động tốt ngoại trừ các cạnh quá nhiều và tôi
Tôi đang cố gắng vẽ một mặt phẳng bằng các dải hình tam giác. Tôi hiểu cách thực hiện việc này một cách thủ công, nhưng tôi thực sự gặp khó khăn khi thực hiện việc đó bằng vòng lặp for. Mã dưới đây vẽ hai hình tam giác cho đến nay. // các đỉnh của trian
Mình muốn lấy tên đỉnh theo id thì dùng hàm này: VAS(g, "name",id) Nhưng nếu muốn ngược lại thì lấy id theo tên thì phải làm thế nào? Câu trả lời hay nhất: bản thân igraph không cung cấp khả năng tìm các đỉnh theo tên.
Tôi có một hình tam giác có các đỉnh tùy ý nằm trong không gian 3D. Tôi biết rất dễ tìm được trọng tâm của một tam giác như vậy bằng cách: float centroid[3] = { 0, 0, 0 }; for (int i = 0; i =
Tôi có một loạt các điểm. Mỗi điểm có một vị trí (x, y, z) và một vectơ (xn, yn, zn), tổng cộng có 6 nhân đôi. Có tính đến dung sai dấu phẩy động, tôi cần tìm các phần tử duy nhất trong mảng này và loại bỏ các mục trùng lặp. Cách đơn giản để đạt được nó là
Tôi có một danh sách các cạnh (E) được kết nối với nhau, làm cách nào để tìm đường đi ngắn nhất nối đỉnh này với đỉnh khác? Tôi đã nghĩ đến việc sử dụng tổ tiên chung thấp nhất nhưng các cạnh không có gốc được xác định rõ ràng nên tôi không nghĩ giải pháp đó sẽ hiệu quả
Tôi hiện đang phát triển một hệ thống hạt bằng cách sử dụng các trình đổ bóng máy tính. Tôi đặt tất cả các hạt vào bộ đệm lưu trữ shader. Một hạt chứa hai đỉnh, vị trí hiện tại và vị trí trước đó. hạt cấu trúc{ glm::vec4 _currPo
Tôi cắt các đỉnh của mình trên các cạnh như minh họa trong album này: http://imgur.com/a/VkCrJ Khi kích thước địa hình của tôi là 400 x 400, tôi bị cắt, nhưng ở 40x40 hoặc nhỏ hơn, tôi không bị cắt xén. Đây là
Thực hiện các phép tính khó trong trình đổ bóng đỉnh có phải luôn tốt hơn là trình đổ bóng phân đoạn không? Ngay cả một mô hình lưới cao với hơn 100.000 đa giác (giả sử có nhiều đỉnh duy nhất)? CÂU TRẢ LỜI HAY NHẤT Không, không phải lúc nào cũng tốt hơn. Cách tốt nhất để chọn vị trí tính toán phù hợp là
Tôi muốn chỉnh sửa 1 đỉnh trên khối lập phương nhưng tôi không biết thực hiện như thế nào. Tôi đã thử tìm kiếm tính năng này ở mọi nơi nhưng không thể tìm ra giải pháp. Đây là hình ảnh về những gì tôi muốn đạt được: Câu trả lời hay nhất http://answers.unity3d.com/ques
Tôi là một lập trình viên xuất sắc, rất giỏi!