Witam,
Mam do rozwiązania problem za pomocą programowania dynamicznego, w którym to...
Startuję z miejsca (0,0) i mam dojść do miejsca (a,b), gdzie a=b, czyli np. do miejsca (2,2) lub (3,3) lub (4,4) lub (5,5) itd...
Moje ruchy są zdefiniowane poprzez określone przez użytkownika n dowolnych wektorów np. dla n=3 mam:
v1 = (1,3)
v2 = (2,1)
v3 = (3,1)
Każdy wektor ruchy może być wykorzystany dowolną ilość razy byle osiągnąć punkt (a,b) - dokładnie punkt (a,b) !
I przykładowo aby dojść do punktu (4,4) muszę wykonać następujące ruchy wektorami v1 i v3, bo
Startuję z (0,0). Przemieszczam się o wektor v1 i jestem w (1,3). Przemieszczam się o wektor v3 i jestem w (4,4) czyli w miejscu oczekiwanym.
Algorytm może zwrócić brak rozwiązania jeżeli nie można dojść do celu przy pomocy dostępnych wektorów ruchu. Algorytm ma zwrócić możliwie najkrótszą drogę i ilość możliwych dojść do celu.
Znalazłem w sieci podobne algorytmy, ale żaden nie pasował do tego problemu. Sam próbowałem to rozwiązać, ale nawet nie wyszło mi ułożenie tablicy stosowanej w programowaniu dynamicznym, gdzie o definicji rekurencyjnej nawet nie wspomnę, proszę o nakierowanie mnie w odpowiednim kierunku...
Dziękuje i pozdrawiam,
Michał Zabielski