Come creare un'intelligenza artificiale ragionevole?


11

Sto creando un gioco di logica basato sul gioco Fox and Hounds. Il giocatore gioca la volpe e AI gioca i segugi. (per quanto posso vedere) sono riuscito a rendere l'IA perfetta, quindi non perde mai. Lasciarlo in quanto tale non sarebbe molto divertente per i giocatori umani.

Ora, devo smorzare l'intelligenza artificiale in modo che gli umani possano vincere, ma non sono sicuro di come. L'attuale logica dell'IA si basa sul pattern matching: se introduco mosse casuali che fanno andare la tavola fuori dallo spazio del pattern, l'IA molto probabilmente giocherebbe in sordina fino alla fine del gioco.

Qualche idea su come smorzare l'intelligenza artificiale in modo tale che non passi da "genio" a "completamente stupido" in una sola mossa?


Quindi hai trovato e implementato la strategia ottimale, sempre vincente. Perché non passare a giochi leggermente più complicati ora? Oppure, che dire di una sfida: attuare una strategia che perde sempre , qualunque cosa faccia l'altro giocatore. Vedi anche: Perdere gli scacchi / Antichess
Martin Sojka il

Forse ti piacerebbe dare un'occhiata alla mia risposta su quest'altra domanda: gamedev.stackexchange.com/questions/12858/…
Tyn

Fox e segugi non sono così complessi come gli scacchi. Una mossa sbagliata e l'IA perde di sicuro. È molto facile rendere stupida l'IA. Il fatto che l'ho risolto usando carta e penna e ore di pensiero strategico, non significa che i miei giocatori faranno lo stesso.
Milano Babuškov,

Risposte:


7

Molte implementazioni possono portare a una probabilità ponderata casuale per le mosse - diciamo, una possibilità di fare una mossa ottimale e una possibilità di fare una mossa non ottimale. Determinare quanto sia subottimale una mossa potrebbe essere un problema molto complicato, ma porterà anche la tua IA a prendere decisioni molto più apparentemente intelligenti.

Nota importante: Indipendentemente dall'impostazione della difficoltà, sarebbe probabilmente una cattiva idea far passare l'IA alla possibilità di vincere immediatamente la partita. Se c'è la possibilità di fare una mossa che finisca la partita in quel turno, dovrebbe sempre essere presa. Altrimenti, distruggerà assolutamente l'impressione del giocatore di come agisce l'IA.


Grazie. Ho deciso di lasciarlo giocare in modo intelligente per tutti i semplici schemi. Esistono due schemi complessi in cui il percorso verso la libertà del giocatore non è facilmente visibile, quindi ho creato schemi aggiuntivi che fanno perdere l'IA giocando mosse che assomigliano a un giocatore umano alle prime armi in tale posizione. All'inizio del gioco, cambio casualmente il modello vincente perdendo uno per tali posizioni.
Milan Babuškov,

10

Dal momento che questo sembra essere un gioco "risolto", l'unica risposta è che il computer deve compiere mosse intenzionalmente sbagliate.

Una soluzione rapida potrebbe essere quella di calcolare la mossa migliore, quindi calcolare anche un'altra mossa legale che potrebbe non essere così buona. Il grado di difficoltà dell'IA verrebbe misurato nella probabilità percentuale che scegli l'altra mossa non così buona, rispetto alla mossa perfetta.

  • Difficile: mosse buone al 90%
  • Difficile: mosse buone al 70%
  • Normale: mosse buone al 50%
  • Semplice - 20% buone mosse
  • È stato lasciato cadere da bambino - <5% buone mosse
  • Hot dog - Tutto casuale

10
Questa è probabilmente una buona idea, ma finiresti con un'intelligenza artificiale ritardata se prende intenzionalmente mosse sbagliate. Dalla parte superiore della mia testa, prima farei un passaggio per le mosse "legali", quindi applicherei pesi a ciascuna mossa e le ordinerei in base al peso, il peso più alto è la mossa migliore. È quindi possibile far convergere un RNG verso mosse migliori a seconda della difficoltà.
Jonathan Connell,

4
Sono d'accordo con @Jonathan Connell. Considerare: nascondersi dietro casse contro nascondersi dietro barili esplosivi vs nascondersi tra casse e una granata attiva. L'intelligenza artificiale dovrebbe valutare quanto sia negativa la mossa, con una migliore intelligenza artificiale che fa mosse migliori più spesso. Un'intelligenza artificiale non sarà eccezionale o difficile se il 70% delle volte ti spara e il 30% delle volte si fa esplodere. Sarà semplicemente divertente.
doppelgreener,

2
@Adrian Seeley Il tuo ultimo commento tocca davvero il problema più grande; per me un essere umano che gioca contro l'IA troverà sempre istintivamente un ragionamento dietro le sue scelte, anche se teoricamente sono completamente casuali. In un gioco da tavolo, ad esempio, questo può essere contrastato limitando il numero di iterazioni nella previsione delle mosse, quindi forse questa potrebbe essere una buona soluzione in un gioco risolvibile?
Jonathan Connell,

2
Sono d'accordo con entrambi Jonathans, ma sto dando questa risposta +1 per "Was Dropped as a Child" e "Hotdog"
thedaian

2
@Jonathan Connell: dovresti pubblicare la tua proposta / soluzione come risposta. Meriterebbe alcuni voti.
Bummzack,
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.