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ć?
Odpowiedzi:
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.
źródło
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
źródło
Oto doskonałe odniesienie do kierowania AI: Zachowania sterujące dla postaci autonomicznych . Wysłano tutaj w celach informacyjnych dla wszystkich. Na początek jest mnóstwo informacji, ale także dużo informacji, więc nie zagłębiaj się w szczegóły.
źródło