A che cosa servono i valori minimi sugli alberi minimax?


8

Considera un albero minimax per un problema di ricerca contraddittoria. Ad esempio, in questa immagine (potatura alfa-beta):

inserisci qui la descrizione dell'immagine

Quando si contrassegna l'albero con [min,max]valori dal basso verso l'alto, prima attraversiamo il nodo 3 e assegniamo B.max=3 . Quindi attraversiamo 12 e 8 in questo ordine, assicureremo che B.max=3 .

Ma perché è B.min=3 ? A che serve questo valore?


Da dove viene l'immagine? È un esempio artificiale?
uli

Sì, è solo un esempio di caso speciale, modifico anche l'immagine per aggiungere il testo di min e max. Se appare qualche errore, sentiti libero di dire. Grazie ~
sam

1
Dall'articolo (orribile) di Wikipedia, l'albero che dai non sembra essere un albero min-max. In particolare, dovrebbe essere ; , d'altra parte, sembra completamente giusto. Quindi qual è la domanda qui, davvero? Sei confuso dall'esempio o vuoi applicazioni di alberi min-max? In ogni caso, includi una definizione precisa (!) Di alberi min-max e / o un riferimento a uno. B.max12B.min
Raffaello

1
Si prega di includere un riferimento per l'immagine; Ho motivo di credere che tu non l'abbia creato. Le diapositive collegate possono anche rispondere ad alcune tue domande; sembrano usare alberi diversi da te.
Raffaello

1
L'immagine sembra ingannevole ..
Strin

Risposte:


7

Questa cifra (che in realtà è corretta) viene utilizzata nella spiegazione dell'algoritmo di potatura alfa-beta su un albero minimax. La potatura alfa-beta è un metodo utilizzato per potare parti dell'albero minimox in un problema di ricerca contraddittoria. Nel contesto di un gioco tic-tac-toe, gli alberi minimax sono pensati per consentire al computer di cercare attraverso lo spazio di tutte le possibili schede di gioco (configurazioni di x e o) presupponendo che le mosse del giocatore siano ottimali. Ciò consente al computer di elaborare una mossa che fornisce il miglior risultato (ecco perché il gioco Connect-Four sul tuo computer è così incredibilmente difficile da battere!). Per una descrizione più completa, consiglio vivamente "AI a Modern Approach" di Stuart e Norvig (pag. 162-170 ish nella seconda edizione).

Ora che abbiamo chiarito un po 'di confusione sull'algoritmo. La potatura alfa-beta cerca di evitare di espandere i sottotitoli in base al funzionamento dell'algoritmo minimax. Sappiamo che il nodo massimo al livello superiore prenderà il valore più grande di tutti i suoi figli. Quindi, il nodo trova il valore , e finora questo è il valore massimo che è disposto a passare al suo genitore, quindi inserisce questo valore nello slot MAX. Quindi trova . Ricorda che è un nodo MIN, quindi vuole minimizzare il valore che passa al suo genitore, quindi mantiene il valore nello slot MAX. Ancora per . Quando ha cercato tutti i suoi figli, conosce il limite inferiore massimo (B312B38Bα) e la soluzione del limite superiore minimo ( ) della sua sottostruttura e mantiene tali valori in MIN ( ) e MAX ( ) (come [3, 3]).βαβ

Nota: min e max indicati nella figura NON sono i valori minimo e massimo della sottostruttura! Sono (etichettati in modo abbastanza confuso) i limiti alfa-beta delle soluzioni del sottostruttura (ricordate che si tratta di un problema di ricerca contraddittoria).

Dopo passiamo al nodo . Qui troviamo un in prima posizione. Il nodo , che desidera selezionare il valore più basso dalla sua sottostruttura ora CONOSCE che il suo genitore non sceglierà il suo valore poiché il nodo trovato un valore più grande. Pertanto, siamo in grado di potare il resto della sottostruttura e proseguire per .C2CBD

Infine, per rispondere alla domanda specifica: perché .min = 3? Un valore per (il limite inferiore massimo di soluzioni su questo nodo) e (il limite superiore minimo di soluzioni su questo nodo) viene mantenuto su ciascun nodo per eseguire la potatura. Questi valori vincolano i possibili casi in cui il valore di un nodo (o della sua sottostruttura) può far parte della soluzione.Bαβ

In questo esempio, non sembra avere un ruolo, tuttavia, prova a guardare esempi più complicati (ad esempio alberi con un'altezza> 3) come questo e vedere se riesci a dargli un senso.

Non posso rendere giustizia alla potatura minimax o alfa-beta qui (principalmente perché non li uso da anni), quindi se ti piacerebbe davvero capirlo, dai un'occhiata a un libro sull'intelligenza artificiale come quello di Stuart e Norvig (il la pagina di Wikipedia sorprendentemente non ha neanche visualizzazione).


Sì, come hai detto, penso che tu sia totalmente d'accordo sulla correttezza dell'immagine, giusto? Grazie per aver condiviso il processo così dettagliato di sollecitazione AlphaBeta e la mia domanda è: a che serve il valore minimo? I valori minimi sono sempre gli stessi con i valori massimi? In questo caso è il primo 3 di [3,3].
sam,

@sam, sì, l'immagine è decisamente corretta. Ho modificato la mia risposta per rispondere (parzialmente) alla tua domanda specifica. Spero che sia di aiuto.
Nick,

"Quando B ha cercato tutti i suoi figli, conosce i valori minimo e massimo della sua sottostruttura e mantiene tali valori in MIN e MAX (come [3, 3])" - ma questo non è ovviamente ciò che accade (dovrebbe essere , quindi). La tua spiegazione in seguito ha più senso. [3,12]
Raffaello

@Raphael, avrei dovuto essere più chiaro. Questi non sono i valori minimo e massimo della sottostruttura, sono il limite inferiore massimo e il limite superiore minimo che il nodo può propagare al suo genitore.
Nick,

@Nick: è così che ho capito anche minimax. Dato che l'OP ha confuso inizialmente minimax e min-max, dovresti forse renderlo molto chiaro nella tua risposta e includere un esempio non banale (diverso da quello collegato).
Raffaello
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.