Zaktualizuj 'route-planning.md'

This commit is contained in:
Aleksandra Jonas 2020-04-28 23:26:08 +00:00
parent 4a18cc04b9
commit b98debe89c

View File

@ -21,19 +21,13 @@ Drugim zadaniem dotyczącym projektu jest zastosowanie strategii przeszukiwania
```
def hscore(self, s, f):
if f > s:
a_h = (f - s) // 5
else:
a_h = (s - f) // 5
if f % 5 >= s % 5:
b_h = f % 5 - s % 5
else:
b_h = s % 5 - f % 5 + 1
return 2 * m.sqrt(a_h * 2 + b_h * 2)
a_h = m.fabs(s - f) // 5
b_h = m.fabs(f % 5 - s % 5)
return 2 * m.sqrt(a_h ** 2 + b_h ** 2)
```
Wpierw obliczamy wysokość trójkąta, jaki tworzą obecne i końcowe pole, w celu wyznaczenia przeciwprostokątnej — odległość między s i f.
Wpierw obliczamy przyprostokątne trójkąta, jaki tworzą obecne i końcowe pole, w celu wyznaczenia przeciwprostokątnej — odległość między s i f.
## Funkcja następnika
@ -89,7 +83,7 @@ Jeżeli to pole odpowiada temu, do którego chcemy dojść — wywołujemy funkc
```
Usuwamy x z open_set i wrzucamy do closed_set, aby upewnić się, że nie będziemy go ponownie sprawdzać.
Usuwamy x z open_set i wrzucamy do closed_set
```
@ -106,16 +100,7 @@ Następnie sprawdzamy sąsiadów:
```
To tutaj chcieliśmy mieć pewność, że nie trafimy ponownie na x.
```
if y in closed_set:
continue
```
Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to nie istnieje krótsze przejście z pola startowego przez inne pole na y, niż bezpośrednio na pole y.
Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to czy przejście z poprzednika przez x do y nie okaże się krótszym przejściem niż z poprzednika do y.
```
@ -128,7 +113,7 @@ Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to nie istnieje
```
Wyliczamy g i f — przewidywany dystans od startu do celu, dla y.
Obliczamy g — koszt przejścia od pola początkowego do pola końcowego, zgodnie ze ścieżką wygenerowaną, aby się tam dostać, oraz f — sumę g i h.
```
@ -140,6 +125,8 @@ Wyliczamy g i f — przewidywany dystans od startu do celu, dla y.
## Tworzenie ścieżki
Przechodzimy po tablicy poprzedników, aż dojdziemy do początku — pola, które nie ma poprzednika.