new AlphaBetaTreeAdapter()
- Description:
Alpha-Beta Tree Adapter - Visualisierung mit Pruning
Extends MinimaxTreeAdapter mit Alpha-Beta Pruning Features:
- Pruned-Node Visualisierung und Tracking
- Alpha/Beta Threshold Anzeige
- Performance-Verbesserungen durch Cut-Off-Highlighting
- Source:
- Version:
- 2.3
Extends
Methods
_buildResult(rootId) → {Object}
- Description:
Erzeugt ein Standard-Resultat für die UI.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
rootId |
number |
Returns:
- Type
- Object
_countEvaluatedStoredNodes(nodeId, leafOnlyopt) → {number}
- Description:
Zählt bereits evaluierte Knoten im aktuell materialisierten Teilbaum.
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
nodeId |
number | |||
leafOnly |
boolean |
<optional> |
false
|
Returns:
- Type
- number
_createChildMetadata()
- Description:
Override metadata creation to include Alpha/Beta from parent
- Source:
- Overrides:
_createChildStructure()
- Description:
Helper to create additional tree structure data. Can be overridden.
- Source:
- Overrides:
_estimateNewlyPrunedCount(nodeId) → {number}
- Description:
Ermittelt neue Pruning-Knotenanzahl auf Basis des vollständigen Potenzial-Teilbaums.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number |
Returns:
- Type
- number
_estimatePotentialSubtreeSize(nodeId, leafOnlyopt) → {number}
- Description:
Schätzt die Anzahl potenziell prunbarer Knoten eines Teilbaums. Nutzt vorhandene Utility-Funktion, inkl. Option für Blattknoten-Zählung.
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
nodeId |
number | |||
leafOnly |
boolean |
<optional> |
false
|
Returns:
- Type
- number
_evaluateTerminalState(state) → {Object}
- Description:
Bewertet einen terminalen Knoten relativ zum Root-Spieler.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
state |
GameState |
Returns:
- Type
- Object
_expandPrunedNodeChildren(nodeId, state)
- Description:
Expandiert Kinder eines geprunten Knotens rein zur Visualisierung. Die erzeugten Kinder bleiben PRUNED und sind nicht bewertbar.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | |
state |
GameState |
_getEdgeColorForValue(value) → {string}
- Description:
Liefert Kantenfarbe entsprechend Gewinnerfarbe (statt Vorzeichenfarbe).
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
value |
number |
Returns:
- Type
- string
(protected) _getHighlightEdgeStyle(bestValue) → {Object}
- Description:
Liefert Farbe und Breite für Best-Edge-Highlighting (wertabhängig).
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
bestValue |
number |
Returns:
- Type
- Object
_getInitialBounds() → {Object}
- Description:
Liefert Initialwerte für Alpha/Beta.
- Source:
Returns:
- Type
- Object
_getNextOpenChild(parent) → {number|null}
- Description:
Liefert den nächsten offenen Kindknoten eines Elternknotens.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
parent |
Object |
Returns:
- Type
- number | null
_getValueStatuses(value) → {Array.<string>}
- Description:
Liefert zusätzliche Visualisierungs-Status anhand des Werts.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
value |
number |
Returns:
- Type
- Array.<string>
_isAllowedByOrder(nodeId) → {boolean}
- Description:
Optional: Prüft erzwungene Evaluationsreihenfolge.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number |
Returns:
- Type
- boolean
(protected) _isLeafTerminal(nodeId, data) → {boolean}
- Description:
Prüft ob ein Blattknoten terminal ist (spielbasiert). Überschreibt BaseTreeAdapter._isLeafTerminal für Game-State-Prüfung.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | |
data |
Object |
Returns:
- Type
- boolean
_isStrictOrderEnabled() → {boolean}
Returns:
- Type
- boolean
_isTerminalState(state) → {boolean}
- Description:
Prüft, ob ein Zustand terminal ist.
- Source:
- Inherited From:
Parameters:
| Name | Type | Description |
|---|---|---|
state |
GameState |
Returns:
- Type
- boolean
_orderMoves(validMoves, state) → {Array}
- Description:
Sortiert Züge optional in günstiger AB-Reihenfolge. Aktuell mit generischer Heuristik + TTT-3x3-Spezialfall (Center -> Ecken -> Kanten).
- Source:
- Overrides:
Parameters:
| Name | Type | Description |
|---|---|---|
validMoves |
Array | |
state |
GameState |
Returns:
- Type
- Array
_pruneSubtree(nodeId, parentId) → {number}
- Description:
Markiert einen gesamten Teilbaum rekursiv als PRUNED. Bereits EVALUATED Knoten behalten ihren Status (Priorität: manuell evaluiert).
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | |
parentId |
number | null |
Returns:
Anzahl neu geprunter Knoten
- Type
- number
_recomputeNodeBounds(nodeId, evaluatedChildIdopt)
- Description:
Rechnet Alpha/Beta eines Nodes aus seinen ausgewerteten Kindern neu. Visualisiert den AB-Informationsfluss über farbkodierte Kanten:
- Rot: α-Update (MAX-Knoten aktualisiert Alpha)
- Blau: β-Update (MIN-Knoten aktualisiert Beta)
- Propagation nach unten an offene Kinder in gleicher Farbe
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
nodeId |
number | |||
evaluatedChildId |
number |
<optional> |
null
|
Kind das gerade evaluiert wurde |
_resolveConstants() → {Object}
- Description:
Lädt zentrale Konstanten mit robusten Fallbacks.
- Source:
- Inherited From:
Returns:
- Type
- Object
_syncStrictOrderingForParent(parentId)
- Description:
Synchronisiert strikte Evaluationsreihenfolge pro Elternknoten.
- Nur der nächste offene Kindknoten bleibt READY.
- Andere offene READY-Kinder werden auf WAIT gesetzt.
- Der nächste offene Kindknoten erhält Marker
NEXT_TO_EVALUATE.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
parentId |
number |
checkNodeStatus(nodeId)
- Description:
Erweiterte Statusprüfung mit Debug für READY-Übergänge.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number |
checkParentPruning(parentId, evaluatedChildIdopt)
- Description:
Checks if the parent can prune its remaining children based on the new value.
- Source:
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
parentId |
number | |||
evaluatedChildId |
number |
<optional> |
null
|
Kind das gerade evaluiert wurde (für Edge-Highlighting) |
evaluateNode()
- Description:
Führt die Bewertung eines Knotens durch.
- Source:
- Overrides:
expandNodeChildren(nodeId, state)
- Description:
Erweitert Knoten; geprunte Knoten werden visualisierend erweitert.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
nodeId |
number | |
state |
GameState |
(async) visualizeSearch()
- Description:
Startet die Visualisierung (Aufbauphase).
- Source:
- Overrides: