Wskazówki dotyczące budowania sztucznej inteligencji w grze wyścigowej 2D


10

Mam szkolny projekt budowy AI dla gry wyścigowej 2D, w której będzie konkurować z kilkoma innymi AI ( bez kolizji ).

Otrzymujemy czarno-białą mapę bitową toru wyścigowego, po wybraniu mapy możemy wybrać podstawowe statystyki dla naszego samochodu (prowadzenie, przyspieszenie, maksymalna prędkość i hamulce). AI łączy się z serwerem gry i daje mu kilka razy drugą liczbę dla aktualnego przyspieszenia i sterowania. Nawiasem mówiąc, wybrałem język C ++. Pytania są następujące:

Jaka jest najlepsza strategia lub algorytm (skoro chcę spróbować wygrać)? Mam na myśli kilka pomysłów znalezionych w sieci i jeden lub dwa własne, ale chciałbym, zanim zacznę kodować, że moja perspektywa jest jedna z najlepszych. Jakie są dobre książki na ten temat? Do jakich stron mam się odwoływać?

2d  c++  ai  racing 

1
Zależy to od dokładności symulacji fizyki. Jeśli nie ma fizyki, cały czas robiłbym pełną prędkość ... w przeciwnym razie zaczynam zwalniać przed każdym zakrętem i przyspieszam 2/3 przez zakręt.
Nate

Odpowiedzi:


2

Skonfiguruj podstawową sztuczną inteligencję, a następnie skonfiguruj interfejs API do obsługi własnego samochodu. Jeśli możesz go pokonać, powinieneś skonfigurować algorytm nagrywania, który może pozytywnie wzmocnić twoją sztuczną inteligencję. Może to być sieć neuronowa do ulepszania działań AI. Takie jak stopniowe hamowanie w zakręcie itp.

Czy możesz używać bibliotek zewnętrznych w swoim projekcie? Jeśli tak, proponuję spojrzeć na FANN . Jest to szybka biblioteka sieci neuronowej; aby zaoszczędzić ci pisania własnych. Jeśli potrzebujesz kodu źródłowego, zawsze możesz go napisać samodzielnie, jednak może to zająć trochę czasu.


1
Wydaje mi się, że to przesada.
o0 ”.

2
@ Lo'oris Zdecydowanie, zwłaszcza że jest to prawdopodobnie dość prosty projekt szkolny z ograniczoną ilością czasu na stworzenie rozwiązania, nie sądzę, że nadzorowane uczenie się jest dobrym sposobem na osiągnięcie tego, tylko ze względu na praktyczność.
Ray Dey,

Nie jest to trudne do skonfigurowania, a w zależności od poziomu tematu PO, podejście to niekoniecznie musi być przesadą. To jest to, co bym (i zrobił), jego zabawa i może być bardzo prosty do osiągnięcia skutecznych rezultatów. Najtrudniejsze jest ustalenie, co należy zrobić w procesie wstępnego przetwarzania ...
deceleratedcaviar

2

Jeśli możesz wstępnie przetworzyć mapę przed uruchomieniem sztucznej inteligencji, po prostu obliczyć najlepsze linie wyścigowe przez segmenty mapy.

Ten post na GameDev.net ma wiele sugestii.

W AI Wisdom książki mają wiele artykułów o wyścigach AI. Zdecydowanie poleciłbym je, szczególnie ten pierwszy, który zawiera artykuły opisujące, jak możesz przedstawić mapę jako strukturę danych w swojej sztucznej inteligencji.

Inną metodą, którą widziałem, jest proste uczenie się wzmacniające (Q-learning), które prawdopodobnie zajmie kilka tysięcy iteracji, aby uzyskać optymalną ścieżkę. Jest to opisane w tym dokumencie: http://www.cs.ubc.ca/~zhijin/540report.pdf


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.