Da un insieme di regole, ne derivano le implicazioni? [chiuso]

2

Mi sono appena interessato a questo dominio, quindi scusa se non sto utilizzando i termini corretti.

Quello che voglio è il seguente: Dire che ho un insieme di regole (o vincoli), voglio ricavare alcune implicazioni di quelle regole.

Ad esempio, in Conway's Game of Life , ci sono 4 regole base. Da queste regole, possiamo vedere alcuni modelli emergere. Voglio un sistema in cui posso inserire le regole (in un linguaggio formale) e produrrebbe almeno alcuni di questi pattern. Inoltre, se apporto una modifica a qualsiasi regola, o aggiungo una nuova regola, dovrebbe mostrarmi le implicazioni di questo cambiamento (o dovrei essere in grado di derivare me stesso dal confronto dei due output).

Questo dovrebbe idealmente applicarsi a qualsiasi gioco che abbia una serie di regole. Per esempio negli scacchi, dovrebbe dire che il cavaliere può muovere due quadrati di fronte eseguendo due mosse L. Nelle pedine potrebbe essere che avere un pezzo dietro l'altro impedisce all'altro di giocare prendendo quel pezzo.

È mai stato realizzato qualcosa del genere? È anche fattibile? Potete consigliare corsi o libri in cui potrei iniziare la (ri) ricerca?

Tutto quello che ho trovato finora sono Automated Theorem Provers, ma da quello che posso dire finora sono troppo generici e orientati matematicamente (mirano a risolvere qualsiasi teoria in matematica, che ha un sacco di regole, io lo voglio solo per giochi semplici con un piccolo numero di regole).

    
posta Nini Michaels 05.01.2016 - 10:50
fonte

2 risposte

7

Considera Gioco generale che gioca . L'idea è di scrivere un programma che funzioni bene giocando a qualsiasi gioco che possa essere descritto formalmente. Quindi non creare un programma tic-tac-toe o un programma di pedine o un programma Reversi. Crei un programma / agente in grado di riprodurre tutti questi giochi con le migliori prestazioni generali.

I passaggi di una sessione GGP sono:

  1. Il server di gioco fornisce una descrizione formale del gioco. Ciò include il numero di giocatori, lo stato iniziale e le regole valide.
  2. Ogni giocatore ha un po 'di tempo per elaborare le regole.
  3. Inizia il gioco. Il server di gioco richiede uno spostamento da ciascun giocatore nell'ordine di turno appropriato.
  4. Mentre i giocatori inviano le mosse, il server di gioco convalida che le mosse sono legali e le accetta o le respinge.
  5. Il gioco continua fino a quando un giocatore vince.

Ovviamente, questo non si applica direttamente al problema che descrivi, ma i principi di base sono gli stessi. Dato un certo insieme di regole e uno stato iniziale, decidere le transizioni valide da stato a stato a stato. Michael Genesereth e Michael Thielscher entrano nei dettagli nel loro gioco generale che gioca sul libro online.

Il tuo esempio di Game of Life di Conway potrebbe essere descritto come un gioco single player che non ha uno stato vincente. Funziona per sempre. Dovresti decidere quando smettere di "giocare". Chess si adatta molto bene al modello GGP, anche se ovviamente è un gioco con grande spazio statale. Dai un'occhiata alla lista di giochi di Tiltyard per farti un'idea della varietà di giochi che la comunità GGP gioca.

C'è anche un gioco generale che gioca a Stanford e un online community che include kit di avvio per lo sviluppo di giocatori e un Generale Gioco Riproduzione server .

    
risposta data 05.01.2016 - 13:51
fonte
2

Per me sembra che tu abbia uno stato di un sistema (una scacchiera, un gioco di bordo di vita), un insieme di trasformazioni di stato (dato stato A, stato B è un risultato). Quindi hai uno stato (scacchiera di partenza) e vuoi ottenere tutti gli stati seguenti per ogni trasformazione di stato, eventualmente per più passaggi.

Il bruteforcing è primitivo. Ma la quantità di stati che ottieni come output diventa estremamente veloce, quindi non riesco a vedere nessuna applicazione utile.

L'intelligenza artificiale per quei giochi di solito riguarda ricerca nello spazio degli stati .

    
risposta data 05.01.2016 - 12:55
fonte

Leggi altre domande sui tag