Kilka dni temu, Ktoś zapytał mnie, czy w naszym środowisku znajdują się agenci i chcą przejść ze swoich źródeł do miejsc docelowych, w jaki sposób możemy znaleźć najkrótszą ścieżkę dla wszystkich takie, że nie powinny mieć konfliktu podczas spaceru.Jak znaleźć najkrótszą ścieżkę w dynamicznej sytuacji
Problem polega na tym, że wszyscy agenci jednocześnie chodzą w środowisku (co może być modelowane przez nieukierunkowany wykres ważony) i nie powinniśmy mieć kolizji. Myślałem o tym, ale nie mogłem znaleźć optymalnej ścieżki dla nich wszystkich. Ale na pewno jest zbyt wiele heurystycznych pomysłów na ten problem.
Załóżmy wejście jest wykresem G (V, E), środki m, które są w: s , S , ..., S m węzły wykresie na starcie i powinien przejść do węzłów D , ... D m na końcu. Również może być tam jest konflikt w węzłach S i lub D i ... ale konflikty te nie są ważne, nie powinny one mieć konflikt, gdy są one w ich wewnętrznych węzłów swojej drodze.
Jeśli ich ścieżka nie powinna mieć tego samego węzła wewnętrznego, będzie to pewnego rodzaju problem z k-disjoint paths
, który jest NPC, ale w tym przypadku ścieżki mogą mieć te same węzły, ale agent nie powinien znajdować się w tym samym węźle w tym samym czasie. Nie wiem, czy mogę podać dokładny opis problemu, czy nie. Jeśli jest mylące, powiedz mi w komentarzach, aby go edytować.
Czy istnieje optymalny i szybki algorytm (optymalnie, mam na myśli, że suma długości wszystkich ścieżek jest możliwie najmniejsza, a przez szybki mam na myśli dobry algorytm wielomianowy).
Czy agenci mogą pozostać w danym węźle? Czy oni muszą chodzić w każdej iteracji? (Możesz wymodelować koszt pozostania, tworząc krawędź przechodzącą do samego węzła) – Zeta
@Zeta, Faktycznie Tak, ale nie powiedziałem tego, ponieważ myślałem, że będzie to bardziej skomplikowane. Ale jeśli masz na to rozwiązanie, byłoby miło. –
Nie mam rozwiązania (jeszcze), przepraszam, ale zmieni to najlepsze możliwe rozwiązania: [Przykład] (http://i.imgur.com/I6vAP.png). Jeśli oczekiwanie nie jest dozwolone, wówczas minimalna suma wszystkich długości wynosi '100 + 100 + 2 = 202'. Jeśli czekanie jest dozwolone i kosztuje mniej niż 66 (np. 40), wówczas minimalna suma wszystkich długości wynosi '40 + 1 + 1 + 40 + 40 + 1 + 1 + 2 = 42 + 82 + 2 = 126'. – Zeta