Suggerimenti per la creazione di un'intelligenza artificiale per un gioco di corse 2D


10

Ho un progetto scolastico per costruire un'intelligenza artificiale per un gioco di corse 2D in cui competerà con diverse altre IA ( nessuna collisione ).

Ci viene data un'immagine bitmap in bianco e nero della pista da corsa, ci è permesso di scegliere le statistiche di base per la nostra auto (gestione, accelerazione, velocità massima e freni) dopo aver ricevuto la mappa. L'intelligenza artificiale si collega al server del gioco e gli assegna più volte un secondo numero per l'accelerazione e lo sterzo attuali. A proposito, la lingua che ho scelto è C ++. Le domande sono:

Qual è la migliore strategia o algoritmo (dal momento che voglio provare a vincere)? Al momento ho in mente alcune idee trovate in rete e una o due delle mie, ma vorrei prima di iniziare a scrivere che la mia prospettiva è una delle migliori. Quali buoni libri ci sono in merito? A quali siti devo fare riferimento?

2d  c++  ai  racing 

1
Dipenderebbe dall'accuratezza della simulazione fisica. Se non c'è fisica, andrei sempre a tutta velocità ... altrimenti, inizierei a rallentare prima di ogni turno e accelererei 2/3 durante il turno.
Nate,

Risposte:


2

Imposta un'intelligenza artificiale di base, quindi imposta un'API per gestire la tua auto. Se riesci a batterlo, dovresti impostare un algoritmo di registrazione che può quindi rafforzare positivamente la tua IA. Questa potrebbe essere una rete neurale per modificare le azioni della tua IA. Come frenare gradualmente in un angolo ecc.

Ti è permesso usare librerie esterne nel tuo progetto? Se è così, ti suggerisco di guardare FANN . È una libreria di rete neurale veloce; per salvarti scrivendo il tuo. Se hai bisogno del codice sorgente, puoi sempre scriverlo da solo, ma può richiedere del tempo.


1
Mi sembra eccessivo.
o0 '.

2
@ Lo'oris Sicuramente, soprattutto perché questo è probabilmente un progetto scolastico abbastanza semplice con un tempo limitato per creare una soluzione, non penso che l'apprendimento supervisionato sia la strada da percorrere, solo per motivi di praticità.
Ray Dey,

Non è così difficile da impostare e, a seconda del livello del soggetto che l'OP sta facendo, questo approccio potrebbe non essere necessariamente eccessivo. È ciò che vorrei (e ho fatto), è divertente e può essere abbastanza semplice ottenere risultati efficaci. La parte più difficile è determinare cosa dovrebbe essere fatto nella pre-elaborazione ...
deceleratedcaviar

2

Se è possibile preelaborare la mappa prima di eseguire l'IA, è sufficiente calcolare le migliori linee di corsa attraverso i segmenti della mappa.

Questo post su GameDev.net contiene numerosi suggerimenti.

I libri di AI Wisdom contengono MOLTI articoli sull'AI da corsa. Li consiglio vivamente, in particolare il primo che contiene articoli che descrivono come rappresentare la mappa come struttura di dati all'interno della propria IA.

Un altro metodo che ho visto è l'apprendimento di rinforzo semplice (Q-learning), che probabilmente richiederà alcune migliaia di iterazioni per ottenere il percorso ottimale. È descritto in questo documento: http://www.cs.ubc.ca/~zhijin/540report.pdf


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.