Tầm quan trọng của các cạnh trọng lượng âm trong biểu đồ là gì?


15

Tôi đang làm bài tập lập trình động và tìm thấy thuật toán Floyd-Warshall. Rõ ràng nó tìm thấy các đường dẫn ngắn nhất của tất cả các cặp cho một biểu đồ có thể có các cạnh trọng số âm, nhưng không có chu kỳ âm.

Vì vậy, tôi tự hỏi ý nghĩa thế giới thực của các cạnh trọng lượng âm là gì? Một lời giải thích bằng tiếng Anh đơn giản sẽ hữu ích.


3
Trọng số của các cạnh có thể đại diện cho mọi thứ trong thế giới thực, ví dụ: số tiền được chuyển từ tài khoản này sang tài khoản khác có thể là dương hoặc âm, ví dụ: nếu bạn muốn làm gì đó có nghĩa là bạn phải đi từ a-> b trong biểu đồ của mình với mất càng thấp càng tốt tiền (đường ngắn nhất), sau đó bạn có thể xem xét một trọng lượng tiêu cực .... ví dụ như xem chương này cuốn sách, trong đó có một số mẫu: informit.com/articles/article.aspx?p=169575&seqNum=8

vì vậy nếu một ---- (2) ----> b ---- (- 2) ----> c và a ----- (1) ----> c và đi từ a đến c, tôi có nên chọn đường dẫn abc vì tổng chi phí là 0 không? bởi vì đó là con đường ngắn nhất đúng nếu tôi đã sai lầm !
c2h5oh

ví dụ: giả sử nếu bạn làm công việc để đi từ tiểu bang a đến b tốn 2 đô la (ví dụ: công việc là mua sách có giá 2 đô la ), sau đó bạn có thể thực hiện một số dự án (bạn kiếm được 2 đô la , có nghĩa là hàm chi phí là - 2), sau đó bạn đạt được mục đích của mình (chuyên nghiệp hoặc c), sau đó tổng chi phí là 0 và bạn ở trong trạng thái của mình. a - (+ 2) -> b - (- 2) -> c: +2 - 2 = 0 (tổng chi phí từ a: newbie, đến c: chuyên nghiệp). e(mộtb)mộtb2$$$

Vì vậy, giả định của tôi là đúng, ngay cả khi chúng tôi phải đi thêm 1 cạnh nữa, chúng tôi sẽ chọn abc thay vì ac.am tôi phải không?
c2h5oh

Vâng chính xác, giả định của bạn là đúng. Lưu ý rằng bạn có thể đọc thêm một số (như liên kết tôi cung cấp cho bạn) hoặc bằng thảo luận của chúng tôi, bạn có thể trả lời câu hỏi của riêng mình và đánh dấu nó là câu trả lời được chấp nhận.

Câu trả lời:


16

Saeed Amiri đã đưa ra một ví dụ tuyệt vời trong một nhận xét: trọng số trên các cạnh có thể đại diện cho bất cứ điều gì trong thế giới thực, ví dụ, số tiền được chuyển từ tài khoản này sang tài khoản khác. Các số tiền có thể là tích cực hoặc tiêu cực. Ví dụ: nếu bạn muốn đi từ đến b trong biểu đồ của mình trong khi mất càng ít tiền càng tốt (đường dẫn ngắn nhất), thì bạn có thể xem xét các trọng số âm. Để biết thêm, xemmộtb chương sách này .

Ngoài ra, còn nhiều ứng dụng khác. Các trọng số âm phụ thuộc vào những gì bạn mô hình hóa nó. Ví dụ, hãy xem xét biểu đồ này

nhập mô tả hình ảnh ở đây

  • Hóa học: Các trọng lượng có thể được sử dụng để biểu diễn nhiệt sinh ra trong phản ứng hóa học. (Chế độ: hợp chất, cạnh : nếu có thể thu được hợp chất v ("giảm hóa học") từ u . Trong biểu đồ này: bạn tạo ra 4 kJ để chuyển đổi s - a2 kJ để chuyển đổi a thành t . Bạn cần 5 kJ để lấy lại s từ t .ebạnvvbạn4S-một2mộtt5St

  • Cuộc sống thực: Hãy nghĩ về một người lái xe, người được trả tiền để lái xe cho chủ nhân của anh ta từ đến t nhưng anh ta trả tiền giữa ab (nói rằng đi du lịch giữa nhà và nơi làm việc của anh ta).Stmộtb

  • Trò chơi: Giả sử bạn chơi trò cắt kéo giấy đá để kiếm tiền. Nút: đá, giấy, kéo. Edges: bất kỳ mối quan hệ (clique). Trọng lượng: cá cược. Trong biểu đồ này: (quên ), ở đây, nhịp đập một , một nhịp đập tt nhịp s , và thắng 4,2, -5 tương ứng.bSmộtmộtttS


Xin chào, cảm ơn trả lời của bạn. Ai đó có thể giải thích ví dụ cắt giấy đá? Làm thế nào bạn đưa ra trọng lượng 4, 2, -5 cho họ?
Saurabh Goyalty

3

Tôi không phải là một người hóa học nhưng tôi vẫn nghĩ rằng ví dụ này sẽ có giá trị để giúp bạn nghĩ ra bộ xử lý, lý thuyết mạng và những thứ liên quan ..

Hãy xem xét một biểu đồ mô phỏng hành vi của một phân tử trong phản ứng hóa học, tức là đường đi của nó trong quá trình phản ứng và trọng lượng biểu thị năng lượng được hấp thụ hoặc giải phóng trong quá trình chuyển đổi, vì vậy nếu chúng ta muốn năng lượng thoát ra khỏi phản ứng, chúng ta biểu thị năng lượng được giải phóng với + trọng lượng và hấp thụ năng lượng với -ve.


1

nhập mô tả hình ảnh ở đây

Một cạnh âm chỉ đơn giản là một cạnh có trọng lượng âm. Nó có thể là trong bất kỳ bối cảnh nào liên quan đến biểu đồ và các cạnh của nó đề cập đến điều gì. Ví dụ, CD cạnh trong biểu đồ trên là cạnh âm. Floyd-Warshall hoạt động bằng cách giảm thiểu trọng lượng giữa mỗi cặp đồ thị, nếu có thể. Vì vậy, đối với trọng lượng âm, bạn có thể thực hiện phép tính như bạn đã làm đối với các cạnh trọng số dương.

Vấn đề phát sinh khi có một chu kỳ tiêu cực. Hãy nhìn vào biểu đồ trên. Và hãy tự hỏi mình câu hỏi - con đường ngắn nhất giữa A và E là gì? Ban đầu bạn có thể cảm thấy như thể ABCE của nó có giá 6 (2 + 1 + 3). Nhưng thực ra, nhìn sâu hơn, bạn sẽ quan sát thấy một chu kỳ tiêu cực, đó là BCD. Trọng lượng của BCD là 1 + (- 4) +2 = (-1). Trong khi di chuyển từ A đến E, tôi có thể tiếp tục đạp xe quanh BCD để giảm chi phí 1 lần mỗi lần. Giống như, đường dẫn A (BCD) BCE có giá 5 (2 + (- 1) + 1 + 3). Bây giờ lặp lại chu kỳ vô hạn sẽ tiếp tục giảm chi phí 1 lần mỗi lần. Tôi có thể đạt được một con đường ngắn nhất vô hạn tiêu cực giữa A và E.

Vấn đề là rõ ràng cho bất kỳ chu kỳ tiêu cực trong một biểu đồ. Do đó, bất cứ khi nào có chu kỳ âm, trọng lượng tối thiểu không được xác định hoặc là vô cực âm, do đó Floyd-Warshall không thể hoạt động trong trường hợp như vậy.

Ngoài ra, bạn có thể muốn xem Thuật toán Bellman-Ford để phát hiện xem biểu đồ có chu kỳ âm hay không và trả về đường đi ngắn nhất giữa hai nút.


4
Tôi không nghĩ rằng điều này trả lời câu hỏi. Câu hỏi không phải là "tại sao một chu kỳ tiêu cực là một vấn đề", mà là "tại sao người ta sẽ có những cạnh có trọng lượng tiêu cực trong cuộc sống thực".
Juho

0

Ví dụ, hãy tưởng tượng một mạng logistic trong đó trọng số w (i, j) của cạnh ij là chi phí để đi từ đỉnh i đến đỉnh j. Nếu bạn đã thỏa thuận kinh doanh với các công ty khác để vận chuyển sản phẩm của họ, w (i, j) sẽ là lợi nhuận thay vì chi phí, vì vậy bạn có thể hiểu trọng số này là chi phí âm.


-2

Tắc nghẽn giao thông trên bản đồ:

Một ví dụ khác trong thế giới thực về việc liên kết các trọng số với một cạnh có thể là các trọng số thể hiện các điều kiện giao thông trong bản đồ (tiêu cực hơn, bất lợi hơn) - sau đó chúng ta có thể sử dụng biểu diễn này để tính khoảng cách tối ưu.

Chúng ta thực sự có thể sử dụng phép ẩn dụ "trọng số" để biểu thị bất cứ thứ gì có giá trị dương / âm giữa hai điểm bất kỳ trong biểu đồ


Chào mừng đến với trang web! Tôi không nghĩ đây là một ví dụ hay. Trong trường hợp tắc nghẽn giao thông, có vẻ tự nhiên hơn đối với các cạnh trọng lượng trên bản đồ theo thời gian di chuyển dọc theo con đường, do đó tắc nghẽn cao sẽ dẫn đến trọng lượng cao. Rốt cuộc, mục tiêu thường là đến đích nhanh chóng và người ta thường thích đi một con đường ngắn nhưng tắc nghẽn hơn là một con đường dài hơn không bị tắc nghẽn. Ngoài ra, chúng tôi thường muốn sử dụng chi phí tối thiểu làm số liệu: hoạt động tốt với trọng số tôi đã đề xuất và rất tệ với chỉ số mà bạn đề xuất.
David Richerby
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.