To jest po prostu coś, co wymyśliłem sam, ale wydaje się, że jest to zabawny problem i to mnie zaskoczyło.Najszybsza ścieżka z przyspieszeniem w punktach
Masz zestaw punktów w przestrzeni dwuwymiarowej, z jednym punktem oznaczonym "Start" i jednym "Koniec". Każdy punkt ma współrzędne (w metrach od początku), ale także "numer przyspieszenia" (w metrach/sekundę delta-V). Po osiągnięciu punktu (łącznie z początkiem) możesz przyspieszyć do tego punktu liczbę przyspieszeń w dowolnym kierunku. Koszt krawędzi zależy od aktualnej prędkości, ale musisz też poruszać się we właściwym kierunku.
Czy istnieje skuteczny algorytm znajdowania najszybszej ścieżki do punktu końcowego? Nie wymyśliłem niczego lepszego niż "Wypróbuj każdą ścieżkę i sprawdź wyniki". Djikstry i inne proste algorytmy nie działają, ponieważ nie można łatwo powiedzieć, że jedna ścieżka do punktu pośredniego jest lepsza lub gorsza od innej, jeśli przybyliście z różnymi prędkościami początkowymi.
Jeśli to zbyt łatwe, a co jeśli dodasz wymóg, aby zatrzymać się w punkcie końcowym? (to znaczy, musisz mieć mniej niż wartość przyspieszenia, gdy osiągniesz koniec).
EDYCJA: Aby było jasne, kierunek ma znaczenie. Utrzymujesz wektor prędkości podczas przemierzania wykresu, a przyspieszanie oznacza dodawanie do niego wektora, którego wielkość jest ograniczona do liczby przyspieszenia tego punktu. Oznacza to, że są sytuacje, w których budowanie ogromnej prędkości jest szkodliwe, ponieważ będziesz jechać zbyt szybko, aby "sterować" w kierunku innych cennych punktów/miejsca docelowego.
Będziesz musiał podać więcej szczegółów. Jak działałaby Twoja koncepcja "przyspieszenia"? Czy redukuje wszystkie koszty krawędzi wzdłuż ścieżki o "numer przyspieszenia"? Co się stanie, jeśli zgromadzisz "liczbę przyspieszeń" znacznie przewyższającą koszty krawędzi? Wprowadzenie pojęcia "przyspieszenie" sugeruje, że dobrze byłoby wprowadzić odpowiednią koncepcję tarcia/oporu, w przeciwnym razie można by otrzymać "niezaprawioną prędkość". Do tej pory nie sądzę, aby twoje pytanie było wystarczająco jasne, abyśmy mogli sformułować odpowiednie rozwiązanie, ale myślę, że jest to bardzo interesujące. – lightalchemist
Wątpię, czy istnieje analityczne rozwiązanie tego problemu. Zacznę od rozwiązania znacznie prostszego problemu: najszybszej trasy, która przyjmuje punkty w określonej kolejności. (Ta przestrzeń poszukiwań ma wiele wymiarów równą liczbie punktów pośrednich i nie widzę lepszego podejścia niż wyżarzanie.) Po uzyskaniu tej metody możesz stworzyć zmodyfikowaną Dijkstrę. – Beta
@lightalchemist Przez "Acceleration" mam na myśli "Zmiana prędkości". (Tak więc, koszt krawędzi = odległość/prędkość euklidesowa, ale dozwolone tylko, jeśli podróżujesz we właściwym kierunku ... tak) Niezaznaczona prędkość jest w porządku (to ma być układanka matematyki, a nie symulacja ... chociaż ja Początkowo wyobrazimy sobie, że jest to statek kosmiczny zbierający skrzynie z paliwem, więc tarcie nadal nie byłoby rzeczą.) –