Zoekalgoritmen: ongeïnformeerd en geïnformeerd zoeken

Leer hoe een AI-agent een weg naar zijn doel vindt als er veel te veel mogelijkheden zijn om ze allemaal uit te proberen. Zet een probleem om in een toestandsruimte en vergelijk vervolgens breedte-eerst zoeken, zoeken op oplopende padkosten, diepte-eerst zoeken en zoeken met iteratieve verdieping op hun garanties en kosten. Gebruik heuristische schattingen om slimmer te zoeken met gulzig beste-eerst zoeken en A*, ontwerp heuristieken die A* optimaal houden en los enorme optimalisatieproblemen op met heuvelklimmen, gesimuleerd afkoelen en genetische algoritmen. Uitgewerkte voorbeelden doorlopen de belangrijkste algoritmen op kleine wegenkaarten, schuifpuzzels en borden voor het n-damesprobleem; de andere methoden worden uitgelegd aan de hand van hun werkwijze en onderlinge vergelijkingen.

GemiddeldLes 2 van 10 in Cursus Kunstmatige intelligentie

Wat je leert

  1. Zet een probleem om in een toestandsruimte die een algoritme kan doorzoeken, volg hoe de algemene zoekprocedure een zoekboom opbouwt en vergelijk algoritmen op volledigheid, kostenoptimaliteit, tijd en geheugengebruik.
    • Beschrijf een zoekprobleem en de bijbehorende toestandsruimte
      Noem de onderdelen van een zoekprobleem, stel je de toestandsruimte voor als een graaf, kies een bruikbaar abstractieniveau en schat hoe groot de ruimte is.
    • Bouw een zoekboom op met het algemene zoekalgoritme
      Gebruik knopen, het zoekfront en de verzameling bereikte toestanden om uit te leggen hoe een zoekalgoritme een zoekboom uitbouwt, herhaald werk voorkomt en het oplossingspad reconstrueert.
    • Meet en vergelijk de prestaties van zoekalgoritmen
      Beoordeel een zoekalgoritme op volledigheid, kostenoptimaliteit, tijd en ruimte, druk de kosten uit met de parameters b, d, m, C* en ε en zie waarom exponentiële groei ongeïnformeerd zoeken beperkt.
  2. Voer breedte-eerst zoeken, zoeken op oplopende padkosten, diepte-eerst zoeken en zoeken met iteratieve verdieping met de hand uit, leg de garanties en kosten van elk uit en kies de juiste strategie voor een probleem.
    • Voer breedte-eerst zoeken uit
      Doorzoek een toestandsruimte laag voor laag met een FIFO-wachtrij, doorloop de stappen op een kleine kaart en geef aan wanneer de methode volledig en kostenoptimaal is.
    • Vind het goedkoopste pad door op oplopende padkosten te zoeken
      Expandeer knopen in volgorde van padkosten met een prioriteitswachtrij, doorloop de stappen van het algoritme en leg uit waarom het kostenoptimaal is en wat het kost.
    • Bespaar geheugen met diepte-eerst zoeken en zoeken met iteratieve verdieping
      Doorloop de stappen van diepte-eerst zoeken, gebruik een dieptelimiet en leg uit hoe zoeken met iteratieve verdieping het geheugengebruik van diepte-eerst zoeken combineert met de garanties van breedte-eerst zoeken.
    • Vergelijk ongeïnformeerde zoekstrategieën en kies er een
      Vergelijk de ongeïnformeerde strategieën naast elkaar, voeg bidirectioneel zoeken toe en kies een geschikte strategie voor een gegeven probleem.
  3. Gebruik een heuristische schatting om het zoeken te sturen, doorloop gulzig beste-eerst zoeken en A*, bewijs wanneer A* optimaal is en gebruik varianten die optimaliteit afwegen tegen snelheid of geheugengebruik.
    • Gebruik een heuristiek bij gulzig beste-eerst zoeken
      Definieer een heuristische functie, doorloop gulzig beste-eerst zoeken en leg uit waarom het snel is maar een slechte oplossing kan teruggeven.
    • Vind optimale paden met A*-zoeken
      Doorloop A* met f = g + h, leg uit waarom een toelaatbare heuristiek het kostenoptimaal maakt en zie hoe een betere heuristiek het zoeken snoeit.
    • Weeg optimaliteit af tegen snelheid of geheugengebruik
      Gebruik gewogen A*, bundelzoeken en versies van A* met een geheugenlimiet zoals IDA* als gewoon A* te langzaam is of te veel geheugen nodig heeft, en geef aan wat elke methode opgeeft.
  4. Toets een heuristiek op toelaatbaarheid en consistentie, ontwikkel toelaatbare heuristieken op basis van gerelaxeerde problemen en deelproblemen en vergelijk heuristieken op basis van dominantie en de effectieve vertakkingsfactor.
    • Toets heuristieken op toelaatbaarheid en consistentie
      Controleer of een heuristiek nooit overschat en voldoet aan de driehoeksongelijkheid, en leg uit waarom beide eigenschappen van belang zijn voor A*.
    • Ontwikkel toelaatbare heuristieken op basis van gerelaxeerde problemen
      Leid heuristieken af door beperkingen uit een probleem weg te nemen, bereken ze voor de 8-puzzel en bouw sterkere heuristieken op basis van deelproblemen en door heuristieken te combineren.
    • Vergelijk heuristieken op basis van dominantie en de effectieve vertakkingsfactor
      Bepaal met dominantie welke van twee heuristieken beter is, meet een heuristiek met de effectieve vertakkingsfactor en weeg nauwkeurigheid af tegen de berekeningskosten.
  5. Los optimalisatieproblemen op door je door een landschap van volledige toestanden te bewegen, gebruik heuvelklimmen en varianten daarvan en ontsnap aan lokale optima met gesimuleerd afkoelen en populatiemethoden.
    • Beschrijf lokaal zoeken en het landschap van de toestandsruimte
      Leg uit wanneer het pad er niet toe doet, formuleer een probleem met volledige toestanden en beschrijf de landschapskenmerken die lokaal zoeken moeilijk maken.
    • Zoek met heuvelklimmen naar betere toestanden
      Voer heuvelklimmen met de steilste stijging uit, herken waar het vastloopt en verbeter het met zijwaartse stappen, willekeurige keuzes, willekeurige herstarts en lokaal bundelzoeken.
    • Ontsnap aan lokale optima met gesimuleerd afkoelen en genetische algoritmen
      Accepteer sommige slechtere stappen met een kans die afneemt als de temperatuur daalt, ontwerp een afkoelschema en gebruik populaties met kruising en mutatie.

Zoekalgoritmen: uitleg

5 hoofdstukken

1

Formuleer problemen als zoekproblemen en beoordeel zoekalgoritmen

Een zoekalgoritme heeft een nauwkeurige beschrijving nodig van wat kan gebeuren en wat als succes geldt. Een wegenkaart en een schuifpuzzel zien er verschillend uit, maar beide kun je beschrijven met toestanden, acties, doelen en kosten. Het zoeken bouwt vervolgens paden door die ruimte. Het onderscheid tussen een toestand en een zoekknoop maakt duidelijk hoe je duplicaten afhandelt; het onderscheid tussen volledigheid en kostenoptimaliteit maakt vergelijkingen tussen algoritmen zinvol.

1.1 Beschrijf een zoekprobleem en de bijbehorende toestandsruimte

Een zoekprobleem beschrijft keuzes voordat een algoritme die begint te maken. De formulering bepaalt zowel wat een oplossing betekent als hoeveel mogelijkheden het algoritme moet overwegen.

Definieer het probleem

Er zijn zes onderdelen:

  • Toestanden beschrijven de mogelijke situaties.
  • De begintoestand is waar het zoeken begint.
  • Acties zijn de beschikbare keuzes in een toestand.
  • Het overgangsmodel, RESULTAAT(s,a), geeft de toestand na actie a.
  • De doeltest herkent een aanvaardbare toestand.
  • De actiekostenfunctie, c(s,a,s′), kent kosten toe aan elke stap.

Alle actiekosten zijn hier positief. Een oplossing van een probleem waarin je een pad zoekt, is een actiereeks die naar een doel leidt. Tel de actiekosten op om de padkosten te krijgen. Een kostenoptimale oplossing minimaliseert die som. Alleen de bestemming noemen vertelt een agent niet hoe hij die moet bereiken.

Formuleer de 8-puzzel

Een bord bevat acht genummerde tegels en een lege plek. Leg alle negen posities vast als de toestand. De begintoestand is de gegeven indeling; het doel is “1 2 3 / 4 5 6 / 7 8 leeg”. Een actie verplaatst de lege plek naar links, rechts, boven of beneden als die zet binnen het bord blijft. De overgang verwisselt de lege plek met de aangrenzende tegel en elke zet kost 1. In een hoek zijn twee acties mogelijk; in het midden vier.

Een oplossing is een reeks zoals “Links, boven, rechts”, als die zetten zijn toegestaan en het doel bereiken. Omdat elke zet evenveel kost, betekent kosten minimaliseren dat je het aantal zetten minimaliseert.

Kies de toestandsruimte

Beschouw toestanden als hoekpunten in een gerichte graaf en acties als kanten met de kosten erbij. Een weg in beide richtingen levert twee gerichte kanten op. Bij het zoeken naar een route kan een toestand de huidige plaats zijn en kunnen de stapkosten de wegafstand in kilometers zijn.

Abstractie laat irrelevante details weg. De muziek in een auto hoeft geen onderdeel te zijn van een routetoestand. Een abstracte oplossing moet nog steeds uitvoerbaar zijn. Als je een detail weglaat dat verandert welke acties zijn toegestaan, verander je het probleem in plaats van alleen de beschrijving te vereenvoudigen.

De formulering kan meer werk besparen dan een snellere wachtrij. Acht dames op willekeurige lege velden plaatsen geeft 64×63×⋯×57≈1,8×1014 mogelijke geordende plaatsingsreeksen. Als je elke volgende dame in de meest linkse lege kolom op een niet-aangevallen veld plaatst, blijven 2.057 bereikbare toestanden over. Dit zijn verschillende constructies met dezelfde doelvoorwaarde.

Genereer mogelijkheden wanneer nodig

De 8-puzzel heeft 9!/2=181.440 bereikbare toestanden vanuit een vaste begintoestand. De 15-puzzel heeft er 16!/2≈1,05×1013. Een volledige representatie van het 8-damesprobleem met één dame per kolom heeft 88=16.777.216 toestanden.

Zulke ruimten worden meestal impliciet aangeleverd: het zoekalgoritme krijgt een begintoestand en procedures voor acties en overgangen. Het genereert tijdens de uitvoering het relevante deel. Bewaar bij een padprobleem de actiereeks. Bij een optimalisatieprobleem zoals het plaatsen van dames kan de uiteindelijke opstelling zelf het antwoord zijn.

Belangrijkste punten

  • Een zoekprobleem specificeert toestanden, een begintoestand, acties, overgangen, een doeltest en actiekosten.
  • Een oplossing van een padprobleem is een actiereeks; de kosten zijn de som van de stapkosten.
  • Een abstractie moet ervoor zorgen dat de oplossingen uitvoerbaar blijven.
  • Een impliciete toestandsruimte wordt wanneer nodig gegenereerd uit acties en overgangen.
  • De formulering kan het aantal beschouwde toestanden of paden sterk verminderen.

1.2 Bouw een zoekboom op met het algemene zoekalgoritme

De toestandsruimte beschrijft wat mogelijk is. De zoekboom legt de paden vast die het algoritme heeft geprobeerd. Meerdere knopen kunnen dezelfde toestand beschrijven omdat ze die via verschillende paden hebben bereikt.

Bewaar een pad in een knoop

Een knoop bewaart een toestand, zijn ouderknoop, de actie vanuit die ouder en de padkosten g(n). Ook de diepte kan worden opgeslagen. De wortel heeft geen ouder en heeft padkosten 0. Als je een knoop expandeert, pas je elke toegestane actie toe op zijn toestand en genereer je zijn kinderen.

Op een kaart met wegen in beide richtingen eindigen de paden “S, A” en “S, B, C, A” in dezelfde toestand, maar leveren ze verschillende knopen op. Zelfs een eindige kaart kan een oneindige zoekboom genereren: “S, A, S, A, …” blijft langere paden opleveren.

Het zoekfront, ook wel de grensverzameling genoemd, bevat gegenereerde knopen die op expansie wachten. De verzameling bereikte toestanden legt gegenereerde toestanden en de beste knoop die voor elk is gevonden vast. Ze bevat zowel toestanden die nog op het zoekfront staan als toestanden die al zijn geëxpandeerd. Een gesloten of onderzochte verzameling verwijst meestal alleen naar geëxpandeerde toestanden.

Voer de algemene beste-eerstprocedure uit
  1. Plaats de wortel in het zoekfront en de tabel met bereikte toestanden.
  2. Meld dat er geen oplossing is als het zoekfront leeg is.
  3. Verwijder de knoop met de laagste evaluatiewaarde f(n).
  4. Geef die knoop terug als zijn toestand een doel is.
  5. Expandeer hem. Voeg elke nieuwe toestand toe; vervang bij een eerder bereikte toestand de opgeslagen knoop alleen als het nieuwe pad goedkoper is.
  6. Herhaal vanaf stap 2.

Een goedkoper pad naar een al geëxpandeerde toestand kan vereisen dat je die heropent. Terugkeer tegen gelijke kosten levert geen verbetering op. Bij een heap kan een oude invoer fysiek aanwezig blijven; die moet als verouderd worden herkend en bij verwijdering worden overgeslagen.

De regel voor het zoekfront bepaalt de strategie. Een FIFO-wachtrij selecteert knopen met een kleine diepte voor BFS. Een LIFO-stapel selecteert diepe knopen voor DFS. Prioriteitswachtrijen geordend op g, h en g+h geven zoeken op oplopende padkosten, gulzig beste-eerst zoeken en A*-zoeken.

Volg de knopen op de wegenkaart

Gebruik deze wegen in beide richtingen, met afstanden in kilometers: S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2. Begin bij S en zoek G. Handel gelijke waarden alfabetisch af.

Het expanderen van S genereert A met kosten 2, B met kosten 3 en D met kosten 9. Elk heeft ouder S. Het zoekfront bevat A, B en D; de tabel met bereikte toestanden bevat ook S. Later kan C via A worden bereikt tegen kosten 6 of via B tegen kosten 4. Dat zijn twee knopen voor één toestand en de goedkopere moet C vertegenwoordigen.

Om een oplossing te reconstrueren, volg je de ouderverwijzingen van de teruggegeven doelknoop achterwaarts en keer je de acties om. Als je de kosten bijwerkt zonder de ouder bij te werken, blijft een pad over dat niet overeenkomt met de vermelde kosten.

Bepaal wat je onthoudt

Graafzoeken onthoudt bereikte toestanden om herhaald werk te voorkomen. Boomzoeken heeft geen globale tabel met bereikte toestanden; het wijst mogelijk alleen cycli op het huidige pad af. Het bespaart geheugen maar kan dezelfde toestand via veel paden genereren.

De algemene procedure test doelen bij verwijdering. BFS kan bij het genereren testen omdat het genereren de volgorde van diepte volgt. Zoeken op basis van kosten moet wachten tot verwijdering: het eerste gegenereerde doel kan een duurder pad hebben dan een later gevonden doel.

Belangrijkste punten

  • Een toestand is een situatie; een knoop vertegenwoordigt een pad naar een toestand.
  • Het zoekfront bevat gegenereerde, niet-geëxpandeerde knopen; de tabel met bereikte toestanden onthoudt ook geëxpandeerde toestanden.
  • Bewaar een goedkoper pad naar een toestand, inclusief de bijbehorende ouderverwijzing.
  • Graafzoeken bespaart herhaald werk; boomzoeken bespaart geheugen.
  • UCS en A* testen een doel wanneer het uit het zoekfront wordt verwijderd.
  • Met ouderverwijzingen reconstrueer je de actiereeks vanaf de teruggegeven doelknoop.

1.3 Meet en vergelijk de prestaties van zoekalgoritmen

Een algoritme kan betrouwbaar zijn maar toch te duur om uit te voeren. Beoordeel de garanties afzonderlijk van het gebruik van tijd en geheugen en controleer vervolgens of die garanties passen bij het probleem dat je daadwerkelijk moet oplossen.

Stel vier verschillende vragen

Volledigheid betekent dat het algoritme een oplossing vindt wanneer die bestaat. In een eindige bereikbare ruimte kan het uitputten van alle mogelijkheden ook bewijzen dat er geen oplossing is. Een oneindige ruimte zonder oplossing kan eindeloos worden doorzocht, zelfs door een volledig algoritme.

Kostenoptimaliteit betekent dat het algoritme een oplossing met de laagste padkosten teruggeeft. Het zegt niets over hoe snel het algoritme werkt. Een methode kan betrouwbaar een oplossing vinden en toch een dure route teruggeven.

Tijdcomplexiteit telt gegenereerde of geëxpandeerde knopen. Vermeld bij het vergelijken van metingen welke telling wordt gebruikt. Ruimtecomplexiteit meet het maximale aantal knopen dat tegelijk wordt bewaard, inclusief het zoekfront en opgeslagen zoekinformatie.

Bepaal de parameters

Gebruik voor een impliciete zoekruimte:

SymboolBetekenis
bMaximale vertakkingsfactor: opvolgers per knoop
dDiepte van een oplossing met de kleinste diepte
mMaximale paddiepte, mogelijk oneindig
C∗Kosten van een optimale oplossing
ϵPositieve ondergrens voor de actiekosten

Voor een expliciete graaf die al in het geheugen staat, zijn aantallen hoekpunten en kanten meestal nuttiger. Een grens voor een doorloop in ∣V∣ en ∣E∣ beantwoordt een andere vraag dan een grens voor het genereren van een nog onbekende boom.

Zie waarom diepte duur is

Een volledige boom tot en met diepte d bevat

1+b+b2+⋯+bd=bd+1−1b−1

knopen voor b≠1. Met vertakkingsfactor 10 en diepte 5 zijn dat 111.111 knopen inclusief de wortel. Als je de diepte met één vergroot, voeg je een laag toe met tien keer zoveel knopen als de vorige laag.

Bij één miljoen knopen per seconde en 1 kilobyte per knoop verandert de schaal snel:

DiepteAantal knopen bij benaderingTijdGeheugen
61,1 miljoen1 seconde1,1 GB
8111 miljoen2 minuten111 GB
1011 miljard3 uur11 TB
121,1 biljoen13 dagen1,1 PB

Dit zijn decimale opslageenheden: 1 GB is 109 bytes. Het geheugen kan een zoekopdracht onmogelijk maken lang voordat de rekentijd onredelijk lijkt.

Lees garanties met hun voorwaarden

BFS bereikt uiteindelijk elke eindige diepte als de vertakking eindig is. DFS kan eindeloos op één oneindige tak blijven en nooit een nabijgelegen doel proberen. Dat verschil verklaart hun resultaten voor volledigheid.

BFS vindt een pad met de minste acties. Als een route van twee stappen 11 km kost en een route van drie stappen 9 km, is de route met de kleinste diepte niet kostenoptimaal. Bij gelijke stapkosten komen diepte en kosten overeen; bij verschillende kosten kunnen ze uiteenlopen.

Een grote-O-grens voor het slechtste geval voorspelt niet elke uitvoering. Twee methoden met dezelfde grens kunnen verschillen in constanten, de afhandeling van duplicaten en het aantal bruikbare takken. Een heuristiek kan een gebruikelijke uitvoering sterk verbeteren zonder het exponentiële slechtste geval weg te nemen.

Belangrijkste punten

  • Volledigheid gaat over het vinden van een oplossing; kostenoptimaliteit over de kosten van de teruggegeven oplossing.
  • Een oneindige ruimte zonder oplossing hoeft niet te leiden tot een melding dat er geen oplossing is.
  • Vertakkingsfactor en diepte verklaren de exponentiële groei van impliciete zoekbomen.
  • Meet zowel het maximale geheugengebruik als het aantal knopen; opslag vormt vaak als eerste de beperking.
2

Zoek zonder domeinkennis

Zonder heuristiek moet een zoekmethode op basis van de diepte of de al gemaakte kosten kiezen wat ze onderzoekt. Een wachtrij, een stapel en een op kosten geordende prioriteitswachtrij kunnen daardoor op dezelfde kaart heel verschillende routes opleveren. Volg de veranderingen in hun zoekfront om te zien waarom hun garanties verschillen. Iteratieve verdieping bespaart geheugen door werk op kleine diepte te herhalen, terwijl bidirectioneel zoeken de diepte kan verminderen als het doel en omgekeerde acties beschikbaar zijn.

2.1 Voer breedte-eerst zoeken uit

Breedte-eerst zoeken onderzoekt de ruimte in lagen. De volgende expansie betreft de wachtende knoop met de kleinste diepte, zodat elk pad van één actie wordt overwogen voordat een pad van twee acties wordt geëxpandeerd.

Houd de wachtrij op volgorde

Het zoekfront werkt volgens wie het eerst komt, gaat het eerst: verwijder vooraan en voeg kinderen achteraan toe. Leg toestanden vast wanneer ze worden gegenereerd. Als een kindtoestand al is bereikt, sla je die over; anders zouden twee verschillende ouders dezelfde toestand in de wachtrij kunnen plaatsen.

Test de begintoestand vóór het zoeken. Voor latere knopen kan BFS een vroege doeltest gebruiken bij het genereren. Het eerste gegenereerde doel heeft de kleinste diepte omdat het algoritme kinderen laag voor laag genereert. De volgorde binnen een laag kan bepalen welke van even diepe oplossingen wordt gekozen, maar kan er niet voor zorgen dat een diepere oplossing als eerste verschijnt.

Doorloop de voorbeeldkaart

De wegen in beide richtingen zijn S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2 km. Begin bij S, zoek G en genereer buren alfabetisch. In de tabel staat de volgende te verwijderen knoop links.

Geëxpandeerde knoopNieuw bereikte toestandenWachtrij daarna
SA, B, DA, B, D
ACB, D, C
BGeenD, C
DG, dat voldoet aan de doeltestZoeken stopt

Als B wordt geëxpandeerd, zijn C en D al bereikt. Ze krijgen geen nieuwe positie in de wachtrij. Als D G genereert, is de ouderketen G–D–S. Keer die om om S–D–G te reconstrueren, met twee wegen en een totale afstand van 9+2=11 km.

C is al gegenereerd, maar nog niet geëxpandeerd. De route van C naar G zou drie wegen hebben. BFS kan stoppen zonder die te onderzoeken omdat drie wegen het aantal acties in een oplossing met twee wegen niet kunnen verbeteren.

Weet wat het resultaat minimaliseert

BFS is volledig bij eindige vertakking, zelfs als de ruimte oneindig is: elke eindige laag wordt vóór de volgende verwerkt. Het is kostenoptimaal als alle acties evenveel kosten. In een schuifpuzzel met kosten 1 per zet is een oplossing met de kleinste diepte ook een goedkoopste oplossing.

Op deze wegenkaart kost S–B–C–G 3+1+5=9 km. BFS geeft de route van 11 km terug omdat afstand niet de ordeningsregel is. “Kortste pad” heeft daarom een eenheid nodig: het kleinste aantal wegen en het kleinste aantal kilometers zijn verschillende doelen.

Houd rekening met geheugen

Met een vroege doeltest gebruikt BFS O(bd) tijd en ruimte. Het kan vrijwel elke knoop tot en met de doeldiepte genereren en het zoekfront plus informatie over bereikte toestanden bewaren. Als doelen pas bij verwijdering worden getest, kan het expanderen van andere knopen op diepte d knopen op diepte d+1 genereren. Dit geeft de gebruikelijke grens O(bd+1) voor die versie.

Bij vertakkingsfactor 10 en 1 kilobyte per knoop kost het opslaan van een boom tot en met diepte 10 ongeveer 11 TB. BFS is bruikbaar voor problemen met oplossingen op kleine diepte en gelijke kosten als er genoeg geheugen beschikbaar is, zoals netwerkpaden met de minste verbindingen of puzzels met de minste zetten. Een FIFO-wachtrij gebruikt de numerieke kantkosten niet, zelfs niet als die op de graaf staan.

Belangrijkste punten

  • BFS expandeert de knoop met de kleinste diepte met behulp van een FIFO-wachtrij.
  • Leg bereikte toestanden vast bij het genereren om dubbele vermeldingen in de wachtrij te voorkomen.
  • Het eerste gegenereerde doel heeft de minste acties.
  • Gelijke actiekosten maken BFS kostenoptimaal.
  • Met een vroege doeltest zijn tijd en ruimte O(bd).

2.2 Vind het goedkoopste pad door op oplopende padkosten te zoeken

Zoeken op oplopende padkosten ordent paden op de al gemaakte kosten. Het kan een nabijgelegen maar dure bestemming voorbijgaan terwijl het langere routes met goedkope stappen onderzoekt.

Verwijder het goedkoopste pad

Stel f(n)=g(n) en gebruik een prioriteitswachtrij. Als een expansie een goedkoper pad naar een bereikte toestand vindt, werk je zowel de kosten als de ouder bij. Een pad met gelijke kosten verbetert de opgeslagen gegevens niet. UCS is de zoekvorm van het algoritme van Dijkstra en stopt als het een doel verwijdert.

De late doeltest is essentieel. Een doel genereren bewijst dat er een route bestaat. Dat doel als goedkoopste knoop uit het zoekfront verwijderen bewijst dat geen onvoltooide goedkopere route beter kan zijn, gegeven positieve actiekosten.

Doorloop de voorbeeldkaart

Gebruik de wegen in beide richtingen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2 km. Handel gelijke kosten alfabetisch af. De vermeldingen in het zoekfront hieronder tonen de toestand en de padkosten.

Verwijderde knoopBijwerkingZoekfront daarna
S, 0Bereik A, B, DA 2; B 3; D 9
A, 2Bereik C via AB 3; C 6; D 9
B, 3Verbeter C via BC 4; D 9
C, 4Bereik GD 9; G 9
D, 9G via D kost 11; behoud 9G 9
G, 9Doeltest slaagtGeef terug

De vervanging van C is doorslaggevend: 3+1=4 is beter dan 2+4=6. De ouder van G is C, de ouder van C is B en de ouder van B is S. De teruggegeven route S–B–C–G kost 9 km. D wordt alleen vóór G verwijderd omdat de keuzeregel bij gelijke waarden alfabetisch is.

Als een directe weg S–G van 12 km werd toegevoegd, zou S meteen een doel genereren. Een vroege test zou 12 km teruggeven voordat de route van 9 km wordt ontdekt. De prioriteitswachtrij kan optimaliteit niet beschermen als de stopregel die omzeilt.

Leg de garantie uit

Bij eindige vertakking en actiekosten die allemaal minstens een bepaalde ϵ>0 bedragen, passen slechts eindig veel stappen van een pad onder een vaste kostengrens. UCS verwijdert daarom uiteindelijk een doel wanneer dat bestaat. Positieve kosten zorgen ervoor dat een pad niet goedkoper kan worden door het te verlengen, wat het optimaliteitsbewijs ondersteunt.

Kosten van nul vragen aandacht. Boomzoeken kan een cyclus met kosten nul blijven doorlopen. Graafzoeken wijst terugkeer naar dezelfde toestand tegen gelijke kosten af, maar een oneindige keten van verschillende toestanden met begrensde opgetelde kosten kan een doel nog steeds eindeloos uitstellen. Negatieve stapkosten ondermijnen het gebruikelijke optimaliteitsargument voor UCS.

Begrijp de kosten

De standaardgrens voor tijd en ruimte in het slechtste geval is O(b1+⌊C∗/ϵ⌋). Op deze kaart zijn C∗=9 en ϵ=1, wat O(b10) geeft. Dit is een ruime grens, niet het werkelijke aantal expansies op de kaart met zes toestanden.

Veel goedkope doodlopende paden kunnen UCS dwingen veel werk te doen voordat het één dure nuttige actie neemt. Als alle stapkosten gelijk zijn, geeft de late doeltest de bekende grens O(bd+1). A* met h=0 maakt precies dezelfde prioriteitsvergelijkingen als UCS.

Belangrijkste punten

  • UCS ordent het zoekfront op de opgetelde padkosten g.
  • Geef een doel terug bij verwijdering, wanneer het het goedkoopste wachtende pad is.
  • Vervang een duurdere route naar een bereikte toestand, inclusief de ouder.
  • Eindige vertakking en een positieve ondergrens voor stapkosten geven volledigheid.
  • UCS is kostenoptimaal onder het model met positieve kosten.

2.3 Bespaar geheugen met diepte-eerst zoeken en zoeken met iteratieve verdieping

Diepte-eerst zoeken volgt eerst één tak voordat het alternatieven probeert. Die keuze kan veel geheugen besparen, maar een ongunstige tak kan alle andere mogelijkheden uitstellen.

Volg een diepe tak

DFS gebruikt een stapel volgens wat er als laatste in gaat, komt er als eerste uit. In een versie met boomzoeken wijs je toestanden af die al op het huidige pad liggen om te voorkomen dat je meteen een cyclus doorloopt. Bewaar het huidige pad en de niet-geëxpandeerde zusterknopen langs dat pad. Om opvolgers met een stapel alfabetisch te proberen, plaats je ze in omgekeerde alfabetische volgorde op de stapel.

Begin op de kaart met wegen in beide richtingen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2 km bij S en zoek G. Als je buren alfabetisch probeert en doelen bij verwijdering test, krijg je S, A, C, B, D, G. Bij C is B de eerste buur die nog niet op het pad ligt. De teruggegeven route S–A–C–B–D–G kost 2+4+1+6+2=15 km.

DFS is niet kostenoptimaal. Het is volledig in een eindige ruimte met cycluscontrole op het pad, maar kan eindeloos een oneindige tak volgen. De tijdcomplexiteit in het slechtste geval is O(bm) en de opgeslagen paden en zusterknopen hebben O(bm) ruimte nodig. Backtracking die steeds één kind genereert, vermindert de benodigde opslag tot O(m). Bij vertakkingsfactor 10 en maximale diepte 12 kost opslag van het pad en de zusterknopen ongeveer 120 knopen, tegenover ongeveer een biljoen voor BFS tot en met diepte 12. Een globale tabel met bereikte toestanden zou extra geheugen gebruiken.

Begrens de diepte

Zoeken met een dieptelimiet stopt met expanderen op diepte ℓ. Een doel daar kan nog steeds worden herkend. Het onderscheidt drie uitkomsten:

  • Er is een oplossing gevonden.
  • Afbreking op de dieptelimiet: de dieptelimiet verhinderde een volledige zoekopdracht.
  • Geen oplossing: de relevante mogelijkheden zijn uitgeput zonder doel of afbreking op de dieptelimiet.

Een afbreking op de dieptelimiet bewijst niet dat er geen oplossing bestaat. Als het doel met de kleinste diepte op diepte 7 ligt, kan een limiet van 5 het niet bereiken. Tijd en ruimte zijn in het slechtste geval O(bℓ) en O(bℓ).

Verhoog de limiet geleidelijk

Zoeken met iteratieve verdieping, of IDS, voert zoekopdrachten met een dieptelimiet uit met limieten 0, 1, 2 enzovoort. Het vindt een oplossing met de kleinste diepte zonder een zoekfront voor breedte-eerst zoeken op te slaan. Bij eindige vertakking is het volledig; bij gelijke actiekosten is het kostenoptimaal. De tijdcomplexiteit is O(bd) en de ruimtecomplexiteit O(bd).

De meeste knopen van een brede boom zitten in de laatste laag, dus het herhalen van de bovenste lagen is vaak goedkoop. Tel voor b=10 en d=5 de gegenereerde knopen onder de wortel:

5(10)+4(100)+3(1.000)+2(10.000)+100.000=123.450.

BFS genereert 111.110 van zulke knopen tot en met diepte 5. IDS genereert ongeveer 11% meer, terwijl het alleen de opslag van diepte-eerst zoeken nodig heeft. De herhaalde bezoeken aan de wortel zijn in beide tellingen niet meegerekend.

Voor vertakkingsfactoren groter dan 1 nadert het extra werk bij een brede boom de factor b/(b−1). Dit voordeel is kleiner bij een smalle keten, waar herhaalde beginstukken overheersen. IDS is een bruikbare ongeïnformeerde keuze als de oplossingsdiepte onbekend is en een volledig zoekfront niet past. In ruimten met veel routes naar dezelfde toestand kan het ontbreken van een globale verzameling bereikte toestanden ertoe leiden dat veel opnieuw wordt gegenereerd.

Belangrijkste punten

  • DFS heeft weinig opslagruimte voor paden nodig, maar kan een doel op een oneindige tak eindeloos missen.
  • Cycluscontrole op het pad voorkomt terugkeer naar voorouders zonder een globale tabel met bereikte toestanden.
  • Een afbreking op de dieptelimiet betekent dat de limiet verder zoeken verhinderde, niet dat het probleem geen oplossing heeft.
  • IDS verhoogt de dieptelimiet totdat een oplossing met de kleinste diepte is gevonden.
  • IDS is volledig bij eindige vertakking en kostenoptimaal bij gelijke stapkosten.
  • IDS ruilt herhaald genereren in voor O(bd) ruimte.

2.4 Vergelijk ongeïnformeerde zoekstrategieën en kies er een

Een bruikbare strategie past bij het gewenste resultaat en de beschikbare middelen. Ongeïnformeerd zoeken gebruikt de probleemdefinitie zonder schatting van de resterende afstand. Het kan nog steeds systematisch en zorgvuldig geordend zijn.

Vergelijk dezelfde uitgangspunten

Ga uit van eindige vertakking en de voorwaarden voor positieve kosten bij UCS. De rij voor BFS gebruikt een vroege doeltest; de rij voor DFS gebruikt cycluscontrole op het pad en geen globale tabel met bereikte toestanden.

StrategieVolledig?Kostenoptimaal?TijdRuimte
BFSJaBij gelijke stapkostenO(bd)O(bd)
UCSJa, bij kosten met een positieve ondergrens ϵJaO(b1+⌊C∗/ϵ⌋)Gelijk aan tijd
DFSIn eindige ruimtenNeeO(bm)O(bm)
Met dieptelimietAls de limiet een doeldiepte bereiktNeeO(bℓ)O(bℓ)
IDSJaBij gelijke stapkostenO(bd)O(bd)

BFS en IDS minimaliseren ook de kosten als die een niet-dalende functie van alleen de diepte zijn. Het woord “alleen” is van belang: alle paden met een bepaalde diepte moeten dezelfde kosten hebben om aan deze ruimere voorwaarde te voldoen. Positieve kantkosten op zichzelf maken BFS niet kostenoptimaal.

Zoek vanaf beide uiteinden

Bidirectioneel zoeken werkt voorwaarts vanaf de start en achterwaarts vanaf het doel. Als de zoekopdrachten elkaar ongeveer in het midden ontmoeten, bereikt elk ongeveer diepte d/2. Het werk is dan ongeveer 2bd/2 in plaats van bd. Bij vertakkingsfactor 10 en oplossingsdiepte 6 is de vergelijking van de grootste lagen ongeveer 2.000 tegenover 1.000.000 knopen.

Hiervoor zijn een expliciete doeltoestand en een manier om voorgangers te genereren nodig. Omkeerbare wegen in beide richtingen maken achterwaartse expansie eenvoudig. Een doeleigenschap zoals “alle dames staan veilig” kan te veel doeltoestanden beschrijven om een handig achterwaarts startpunt te bieden.

Met breedte-eerst zoeken of zoeken op basis van kosten kunnen geschikte regels voor ontmoeting en beëindiging volledigheid en optimaliteit behouden. Stop op een kaart met gewichten pas als geen goedkopere verbinding meer mogelijk is. De eerste overlap tussen de twee zoekopdrachten hoeft niet de goedkoopste verbinding te zijn.

Kies op basis van het probleem

Voor de minste zetten in een kleine schuifpuzzel maken gelijke zetkosten BFS geschikt als er voldoende geheugen is. Kies UCS voor de kortste reisafstand bij ongelijke weglengten en zonder heuristiek. Voor een enorme puzzel met gelijke kosten en onbekende oplossingsdiepte voorkomt IDS een enorm zoekfront. In een eindige ruimte met veel diepe doelen waarbij elke oplossing aanvaardbaar is, kan DFS praktisch zijn. Een bekende start en een bekend doel met omkeerbare acties maken bidirectioneel zoeken het overwegen waard.

Het geheugengebruik moet alles omvatten wat de gekozen versie opslaat. DFS met een globale tabel met bereikte toestanden heeft niet meer hetzelfde opslagprofiel als DFS met boomzoeken. Een uitwerking van BFS met een late doeltest mag je niet vergelijken met een complexiteitsgrens voor een vroege doeltest alsof de versies identiek zijn.

Zelfs de beste ongeïnformeerde keuze kan met exponentiële groei te maken krijgen. Als bruikbare domeinkennis beschikbaar is, kan een heuristiek onnodige exploratie verminderen. Als alleen een uiteindelijke configuratie van belang is, kan lokaal zoeken voorkomen dat een zoekboom moet worden bewaard.

Belangrijkste punten

  • Kies een strategie op basis van het gewenste doel, de kostenstructuur, het geheugen en de oplossingsdiepte.
  • Bidirectioneel zoeken heeft een doel nodig om vanaf te beginnen en een manier om voorgangers te genereren.
  • Een vroege ontmoeting is geen betrouwbare stopregel bij zoeken met gewichten.
  • Bij gelijke actiekosten komt het pad met de minste acties overeen met het goedkoopste pad.
3

Zoek met heuristieken: gulzig beste-eerst zoeken en A*

Een heuristiek schat hoeveel werk nog nodig is om een doel te bereiken. Gulzig zoeken volgt die schatting rechtstreeks; A* combineert de schatting met de al gemaakte kosten. Een vergelijking van hun stappen laat zien waarom sturing expansies kan besparen en waarom een verkeerde schatting een goedkope route kan verbergen. Als gewoon A* te veel tijd of geheugen nodig heeft, maken varianten verschillende afwegingen tussen oplossingskwaliteit, opslag en herhaald werk.

3.1 Gebruik een heuristiek bij gulzig beste-eerst zoeken

Een heuristiek kent aan een toestand een schatting toe van de laagste resterende kosten naar een doel. Schrijf die als h(n) voor de toestand in knoop n. Ze hangt af van de toestand, niet van het pad waarlangs die is bereikt, en is nul in een doel.

Schat wat resteert

De hemelsbrede afstand schat de resterende wegafstand. Op een rooster met horizontale en verticale stappen van één eenheid telt de Manhattanafstand de coördinaatverschillen op:

h=∣x1−x2∣+∣y1−y2∣.

Van cel (1,1) naar (4,5) geeft dit 3+4=7 stappen. De hemelsbrede afstand tussen dezelfde coördinaten is 32+42=5. De schattingen beantwoorden verschillende vragen over gerelaxeerde beweging. Een heuristiek moet passen bij de eenheden van de kosten die ze schat; kilometers schatten de reistijd niet rechtstreeks zonder een geschikt omzettingsmodel.

Geïnformeerd zoeken gebruikt een schatting om de expansie te sturen. De schatting hoeft het algoritme niet te vertellen welke actie het moet nemen. Ze beoordeelt de toestanden die de toegestane acties opleveren en de regel voor het zoekfront bepaalt welk wachtend pad vervolgens wordt onderzocht.

Volg de kleinste schatting

Gulzig beste-eerst zoeken stelt f(n)=h(n). De prioriteitswachtrij verwijdert de toestand die het dichtst bij het doel lijkt en negeert de al gemaakte kosten.

Gebruik de wegen in beide richtingen S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2 km. De heuristische schattingen naar G zijn S 8, A 7, B 5, C 4, D 2 en G 0 km.

  1. Expandeer S. Het zoekfront bevat A met schatting 7, B met 5 en D met 2.
  2. Verwijder D omdat 2 het kleinst is. Expansie van D genereert G met schatting 0. De padkosten naar G zijn 9+2=11 km.
  3. Verwijder G en geef S–D–G terug.

Alleen S en D zijn geëxpandeerd. De route S–B–C–G van 9 km was beschikbaar, maar de schatting 5 voor B leek slechter dan de 2 voor D. Gulzig zoeken nam de 9 km die al was afgelegd om D te bereiken nooit mee in de vergelijking.

Onderscheid sturing van garanties

Zelfs een heuristiek die nooit overschat, maakt gulzig zoeken niet kostenoptimaal. De schattingen in het voorbeeld zijn toelaatbaar, maar toch is de teruggegeven route te duur. Gulzig zoeken gebruikt alleen de resterende schatting en kan dus te veel kosten maken voordat het een veelbelovende toestand bereikt.

Graafzoeken is volledig in een eindige toestandsruimte als het duplicaten goed afhandelt. Gulzig boomzoeken kan blijven rondgaan tussen aantrekkelijke herhaalde toestanden, en een oneindige ruimte kan steeds misleidende lage schattingen blijven bieden. Tijd en ruimte zijn in het slechtste geval O(bm), hoewel een bruikbare schatting een daadwerkelijke uitvoering kort kan maken.

Een plaats kan hemelsbreed dicht bij een bestemming liggen maar een lange omweg om een rivier vereisen. Kleine heuristische waarden garanderen geen goede totale routes. Het berekenen van de heuristiek kost ook tijd: minder expansies helpen alleen als het berekenen van die schattingen de besparing niet opslokt.

Belangrijkste punten

  • Een heuristiek schat de resterende kosten en hangt af van de toestand.
  • Gulzig beste-eerst zoeken ordent op h en negeert de opgetelde kosten.
  • Zelfs een toelaatbare heuristiek maakt gulzig zoeken niet kostenoptimaal.
  • Graafzoeken in een eindige ruimte handelt duplicaten af; gulzig boomzoeken kan blijven rondgaan.

3.2 Vind optimale paden met A*-zoeken

A* beoordeelt de hele voorgestelde reis: de al gemaakte kosten plus een schatting van wat resteert. De prioriteit is

f(n)=g(n)+h(n).

Gebruik een prioriteitswachtrij, vervang duurdere paden en test een doel wanneer het wordt verwijderd. In een doel is h=0, dus is de prioriteit gelijk aan de werkelijke padkosten.

Doorloop de regel van kosten plus schatting

De wegen in beide richtingen zijn S–A 2, S–B 3, S–D 9, A–C 4, B–C 1, B–D 6, C–G 5 en D–G 2 km. Heuristische schattingen naar G zijn S 8, A 7, B 5, C 4, D 2 en G 0. Handel gelijke waarden alfabetisch af.

Verwijderde knoopWat verandert
S, f=8Voeg B toe met 3+5=8, A met 2+7=9 en D met 9+2=11
B, f=8Voeg C toe met 4+4=8; D via B is niet goedkoper
C, f=8Voeg G toe met 9+0=9
A, f=9C via A kost 6, slechter dan de opgeslagen 4
G, f=9Geef S–B–C–G terug, kosten 9 km

A wordt vóór G verwijderd vanwege de keuzeregel bij gelijke waarden. A* expandeert vier knopen die geen doel zijn en expandeert D nooit. UCS op dezelfde kaart expandeert D ook. Als je elke heuristische schatting op nul zet, valt deze sturing weg en krijg je UCS.

Leg uit waarom een optimistische schatting werkt

Een toelaatbare heuristiek is nooit groter dan de werkelijke resterende kosten h∗(n). Voor A* met heropening garandeert toelaatbaarheid kostenoptimaliteit; A* als boomzoeken heeft dezelfde garantie onder de zoekvoorwaarden met positieve kosten.

Stel dat een slechter doel met kosten C>C∗ op het punt staat te worden verwijderd. Een knoop op een optimaal pad moet nog wachten. Voor het beginstuk van dat optimale pad geldt:

f(n)=g(n)+h(n)≤g(n)+h∗(n)=C∗<C.

De wachtrij moet die knoop vóór het slechtere doel kiezen. Dit is in tegenspraak met het voorgestelde stoppunt. Heropening is van belang omdat een later ontdekt goedkoper beginstuk moet kunnen doorgaan via een toestand die al is geëxpandeerd.

Een consistente heuristiek maakt f niet-dalend langs paden. Ze zorgt ervoor dat de eerste expansie van een toestand een goedkoopste pad ernaartoe gebruikt. A* kan geëxpandeerde toestanden dan permanent sluiten. Met alleen toelaatbaarheid kan een permanente gesloten verzameling een essentiële verbetering weggooien.

Begrijp snoeien en de beperkingen ervan

Bij consistentie expandeert A* elke relevante knoop waarvoor f<C∗, kan het knopen expanderen die gelijk zijn aan C∗ en expandeert het vóór het teruggeven geen knopen boven die waarde. De prioriteit 11 van D is groter dan de oplossingskosten 9, dus blijft D ongeëxpandeerd. Binnen de klasse van algoritmen die voorwaarts paden opbouwen met dezelfde heuristische informatie is A* optimaal efficiënt, afgezien van gelijke waarden. Dit is een vergelijking van noodzakelijke expansies, geen bewering dat de code altijd het snelst draait.

Overschatting kan het argument ondermijnen. Verander de schatting voor B in 9 hoewel de werkelijke resterende kosten 6 zijn. B heeft nu prioriteit 12. A* volgt S, A, C en D en geeft S–A–C–G terug tegen kosten 11 terwijl B nog wacht.

A* heeft in het slechtste geval nog steeds exponentiële complexiteit en slaat gegenereerde zoekinformatie op.

Belangrijkste punten

  • A* rangschikt paden op g+h en test doelen bij verwijdering.
  • Toelaatbaarheid garandeert kostenoptimaliteit voor A* dat verbeterde toestanden heropent.
  • Consistentie maakt permanente sluiting na de eerste expansie van een toestand mogelijk.
  • Overschatting kan de optimale route uitstellen tot nadat een slechter doel is teruggegeven.
  • Gelijke waarden bij de optimale kosten kunnen het aantal expansies beïnvloeden.
  • A* met een heuristiek van nul is UCS; gewoon A* kan veel geheugen nodig hebben.

3.3 Weeg optimaliteit af tegen snelheid of geheugengebruik

Als het zoekfront niet meer past of een antwoord te langzaam komt, kies je welke middelen of garantie je wilt inruilen. Varianten gericht op snelheid veranderen prioriteiten of gooien kandidaten weg. Varianten gericht op geheugen genereren paden opnieuw die ze niet konden bewaren.

Geef de schatting meer gewicht

Gewogen A* gebruikt f=g+Wh met W>1. Het geeft meestal meer voorkeur aan voortgang naar een doel. Met een toelaatbare heuristiek en de bijwerkingen voor het beste pad en heropening uit de algemene procedure zijn de teruggegeven kosten maximaal WC∗. Die grens staat een slechtere oplossing toe, maar vereist die niet.

Gebruik op de voorbeeldwegenkaart de schattingen S 8, A 7, B 5, C 4, D 2 en G 0, en gewicht 2. Vanuit S zijn de prioriteiten B 13, D 13 en A 16. Bij gelijke waarden wordt alfabetisch B gekozen. Het kind C heeft 4+2(4)=12; C genereert vervolgens G met prioriteit 9. De route met kosten 9 wordt teruggegeven na drie expansies van knopen die geen doel zijn. De garantie staat maximaal 18 km toe, hoewel deze uitvoering de optimale oplossing vindt.

In dezelfde formule geeft gewicht 0 UCS en gewicht 1 A*. Naarmate het gewicht groter wordt, gaat de schatting de vergelijkingen steeds meer overheersen en nadert het gedrag dat van gulzig zoeken.

Bundelzoeken bewaart alleen de beste k wachtende knopen en gooit de rest weg. Het bewaarde zoekfront is begrensd, maar een weggegooide kandidaat kan de enige oplossing bevatten. De methode biedt daarom noch volledigheid noch een optimaliteitsgarantie.

Verdiep op basis van een grens voor geschatte kosten

IDA* voert diepte-eerst zoeken uit met een grens voor f=g+h. De eerste grens is de waarde van de wortel. Snoei elke knoop boven die grens weg en noteer de kleinste overschreden waarde. Die waarde wordt de volgende grens; die is niet noodzakelijk de oude grens plus 1. Gebruik cycluscontrole op het pad.

Voor de voorbeeldkaart is de eerste grens 8. A met 9 en D met 11 worden weggesnoeid; B en C met 8 worden onderzocht, maar G met 9 wordt weggesnoeid. De volgende grens is 9. In die iteratie levert het pad via A een C met 10 op en wordt het weggesnoeid. Het pad S–B–C–G blijft binnen 9 en slaagt.

Bij toelaatbaarheid behoudt IDA* kostenoptimaliteit en heeft het alleen de padopslag van diepte-eerst zoeken nodig. De herhaalde doorlopen kunnen duur zijn als de kosten veel verschillende grenswaarden opleveren. Kleine gehele kosten maken het aantal grenswaarden vaak beter beheersbaar.

Gebruik begrensd geheugen selectiever

Recursief beste-eerst zoeken (RBFS) slaat op elk niveau de beste alternatieve prioriteit op. Het volgt de meest veelbelovende tak totdat dat alternatief beter wordt en keert dan terug. Het gebruikt lineair geheugen maar kan vergeten takken opnieuw genereren.

SMA* gebruikt het beschikbare geheugen, verwijdert het slechtste blad van het zoekfront als het geheugen vol is en geeft de waarde terug aan de ouder. Met deze informatie kan het blad later opnieuw worden gegenereerd. Met een toelaatbare heuristiek is het kostenoptimaal als een optimaal oplossingspad in het geheugen past. Anders kan het een slechtere oplossing teruggeven of geen oplossing vinden als geen oplossingspad past.

Kies A* voor een optimaal antwoord als de opslagruimte volstaat. Kies IDA* of een geschikte variant met geheugenlimiet als optimaliteit van belang is maar het zoekfront niet past. Gewogen A* biedt een numerieke kwaliteitsgrens; bundelzoeken biedt sterke snoei zonder die grens.

Belangrijkste punten

  • Gewogen A* gebruikt g+Wh en kan onder de garantie van een toelaatbare heuristiek een oplossing teruggeven die maximaal WC∗ kost.
  • Bundelzoeken gooit kandidaten weg en kan de enige oplossing verliezen.
  • IDA* verhoogt zijn grens tot de kleinste overschreden f-waarde.
  • RBFS en SMA* kunnen vergeten werk opnieuw genereren om het geheugengebruik te beperken.
  • SMA* heeft genoeg geheugen nodig voor een optimaal oplossingspad om optimaliteit te garanderen.
4

Ontwerp en beoordeel heuristieken

Een bruikbare heuristiek moet passen bij zowel het probleem als de garantie die je nodig hebt. Toelaatbaarheid vergelijkt de schatting met de werkelijke resterende kosten; consistentie vergelijkt aangrenzende schattingen over elke actie. Het wegnemen van beperkingen biedt een praktische manier om deze eigenschappen te bewijzen zonder het oorspronkelijke probleem op te lossen. Dominantie en de effectieve vertakkingsfactor helpen vervolgens de sturing te vergelijken, terwijl tijdmetingen de berekeningskosten zichtbaar maken.

4.1 Toets heuristieken op toelaatbaarheid en consistentie

Een heuristiek kan over het geheel genomen optimistisch zijn en toch te sterk veranderen tussen aangrenzende toestanden. Toelaatbaarheid en consistentie leggen deze verschillende controles vast en elk ondersteunt een andere versie van A*.

Vergelijk schattingen met werkelijke kosten

Een toelaatbare heuristiek voldoet in elke toestand aan 0≤h(n)≤h∗(n). In een doel zijn de werkelijke resterende kosten nul, dus moet ook de schatting nul zijn. Toelaatbaar betekent niet nauwkeurig: overal nul is veilig maar geeft geen richting.

Op de voorbeeldwegenkaart zijn de schattingen en exacte laagste resterende afstanden naar G:

ToestandSchattingWerkelijke resterende kosten
S89
A79
B56
C45
D22
G00

Elke schatting is hoogstens gelijk aan de werkelijke kosten. Bij een groot probleem kan het berekenen van deze exacte kosten even moeilijk zijn als de oorspronkelijke zoekopdracht. Een bewijs op basis van de structuur van het probleem is dan nuttiger dan een uitputtende tabel.

Controleer elke actie

Consistentie, ook wel monotoniciteit genoemd, vereist h(n)≤c(n,a,n′)+h(n′) voor elke actie, en nul in doelen. De huidige schatting mag niet groter zijn dan de kosten van één stap plus de schatting van de opvolger.

Op de wegenkaart geeft A→C 7≤4+4, C→B geeft 4≤1+5 en D→G geeft 2≤2+0. Wegen in beide richtingen vereisen controle van beide richtingen. Alle 16 gerichte controles slagen voor deze schattingen.

Als je de ongelijkheden langs een pad naar een doel optelt, vallen de tussengelegen schattingen weg. Op een optimaal pad geeft dit h(n)≤h∗(n), dus impliceert consistentie toelaatbaarheid. Het geeft ook

f(n′)=g(n)+c(n,a,n′)+h(n′)≥g(n)+h(n)=f(n).

Prioriteiten kunnen niet dalen langs een pad. De eerste expansie van een toestand vindt daarom plaats via een goedkoopste pad, ook als die toestand eerst via een duurder pad werd gegenereerd.

Zie waarom alleen toelaatbaarheid heropening vereist

Bekijk de wegen in beide richtingen S–A 1, A–C 1, S–B 1, B–C 2 en C–G 3. Laat de schattingen S 0, A 4, B 1, C 1 en G 0 zijn. Ze zijn niet groter dan de werkelijke kosten S 5, A 4, B 5, C 3 en G 0, dus zijn ze toelaatbaar. Maar A→C schendt de consistentie: 4>1+1.

A* expandeert S, dan B met prioriteit 2, dan C bereikt tegen kosten 3 met prioriteit 4. Daarna expandeert het A met prioriteit 5 en ontdekt het een goedkoper pad naar C met kosten 2. Als C permanent wordt afgewezen omdat die gesloten is, blijft een doel met kosten 6 over. Heropening van C geeft de verbetering door en levert de optimale oplossing met kosten 5 op.

Stem af op het bewegingsmodel

De Manhattanafstand is toelaatbaar en consistent voor horizontale en verticale stappen van één eenheid. Als diagonale stappen ook 1 kosten, zijn voor de reis van (0,0) naar (3,3) slechts drie stappen nodig, terwijl de Manhattanafstand 6 aangeeft. Voor dat bewegingsmodel geeft max⁡(∣Δx∣,∣Δy∣) de afstand zonder obstakels. De garantie van een heuristiek hoort bij een bepaald actiemodel.

Belangrijkste punten

  • Toelaatbaarheid begrenst een schatting door de werkelijke resterende kosten.
  • Consistentie controleert elke gerichte actie en vereist nul in doelen.
  • Consistentie impliceert toelaatbaarheid; toelaatbaarheid impliceert geen consistentie.
  • Consistente heuristieken maken f niet-dalend langs een pad.
  • Toelaatbare maar inconsistente heuristieken vereisen heropening voor de algemene garantie van A*.
  • Een verandering in de toegestane zetten kan een heuristiek ongeldig maken.

4.2 Ontwikkel toelaatbare heuristieken op basis van gerelaxeerde problemen

Los een eenvoudigere versie van het probleem op om een veilige schatting te ontwerpen. Een gerelaxeerd probleem neemt beperkingen op acties weg, zodat elke oorspronkelijke oplossing beschikbaar blijft. De laagste kosten ervan kunnen niet hoger zijn dan de oorspronkelijke laagste kosten.

Neem gericht beperkingen weg

Exacte gerelaxeerde kosten vormen een toelaatbare heuristiek. Die is ook consistent als de oorspronkelijke acties met hun kosten beschikbaar blijven: een oorspronkelijke stap nemen en daarna een optimale gerelaxeerde route volgen is één mogelijke gerelaxeerde route, dus het gerelaxeerde optimum kan niet meer kosten.

In de 8-puzzel kan een tegel alleen naar een aangrenzend veld bewegen als dat veld leeg is. Neem de eis van een leeg veld weg en tegels mogen door bezette velden bewegen. Elke genummerde tegel heeft dan minstens zijn horizontale plus verticale afstand tot het doel nodig. Optellen geeft de Manhattanafstand, h2.

Neem ook de eis van aangrenzende velden weg en elke verkeerd geplaatste tegel kan in één zet rechtstreeks naar zijn doel springen. De resulterende kosten zijn het aantal verkeerd geplaatste tegels, h1. Beide zijn eenvoudig te berekenen zonder de oorspronkelijke puzzel te doorzoeken.

Werk beide schattingen uit

Bekijk voor doel “1 2 3 / 4 5 6 / 7 8 leeg” de toestand “5 1 3 / 4 leeg 2 / 7 8 6”. Nummer rijen en kolommen vanaf 1.

TegelHuidige positieDoelpositieAfstand
5(1,1)(2,2)2
1(1,2)(1,1)1
2(2,3)(1,2)2
6(3,3)(2,3)1

De andere genummerde tegels liggen al goed. Vier liggen verkeerd, dus h1=4. Hun afstanden tellen op tot 2+1+2+1=6, dus h2=6. De optimale oplossing kost 12 zetten; de relaxaties negeren interacties die extra werk veroorzaken.

Tel de lege plek niet mee. Op één zet van het doel zijn een genummerde tegel en de lege plek allebei verplaatst. Beide meetellen zou 2 geven terwijl de werkelijke kosten 1 zijn. De lege plek maakt zetten mogelijk; het is geen extra tegel waarvoor je kosten rekent.

Sla opgeloste deelproblemen op

Een patroondatabase legt exacte kosten vast voor een gekozen deelprobleem, zoals tegels 1 tot en met 4 goed plaatsen terwijl de andere tegels als onderling uitwisselbaar worden behandeld. Bouw de tabel één keer op door achterwaarts vanaf het doel te zoeken. Gebruik tijdens een nieuwe zoekopdracht een opzoeking in plaats van het deelprobleem opnieuw op te lossen.

Het deelprobleem heeft niet meer werk nodig dan het volledige probleem en geeft daarmee een ondergrens. Maar als je twee gewone patroonkosten optelt, kun je dezelfde werkelijke zet tweemaal in rekening brengen. Optellen is veilig voor disjuncte patronen als elke database alleen zetten van de eigen tegels telt. Verschillende tegelbenamingen op zichzelf leggen die regel voor kostentoerekening niet vast.

Combineer veilige schattingen

Het maximum van toelaatbare schattingen is toelaatbaar:

h(n)=max⁡{h1(n),…,hk(n)}.

Elke kandidaat blijft onder de werkelijke resterende kosten, dus hun maximum ook. Het is minstens zo informatief als elke afzonderlijke schatting. Een gewone som heeft deze bescherming niet.

Een heuristiek die uit opgeloste voorbeelden is geleerd, kan de resterende kosten gemiddeld goed voorspellen. Gemiddelde nauwkeurigheid bewijst geen ondergrens voor elke toestand. De heuristiek behoudt de garantie van A* voor een toelaatbare heuristiek alleen als wordt aangetoond dat haar schattingen nooit overschatten.

Belangrijkste punten

  • De exacte kosten van een gerelaxeerd probleem zijn een ondergrens voor de oorspronkelijke kosten.
  • Verkeerd geplaatste tegels en de Manhattanafstand komen voort uit verschillende relaxaties van de 8-puzzel.
  • Tel de lege plek bij geen van beide puzzelheuristieken mee.
  • Patroondatabases ruilen voorafgaande berekening en tabelopslag in voor snelle opzoekingen.
  • Tel patroonkosten alleen op met een kostentoerekening die voorkomt dat zetten dubbel worden geteld.
  • Het maximum van toelaatbare heuristieken is toelaatbaar.
  • Het leren van een heuristiek bewijst op zichzelf geen toelaatbaarheid.

4.3 Vergelijk heuristieken op basis van dominantie en de effectieve vertakkingsfactor

Een schatting die dichter bij de werkelijke waarde ligt, kan exploratie verminderen, maar een dure schatting kan het zoeken toch vertragen. Vergelijk zowel de geboden informatie als de totale benodigde berekening.

Stel dominantie vast voor elke toestand

Een toelaatbare heuristiek h2 domineert de toelaatbare h1 als overal h2(n)≥h1(n) geldt. Eén gunstig bord is niet genoeg om deze verhouding te bewijzen.

De Manhattanafstand domineert het aantal verkeerd geplaatste tegels in de 8-puzzel. Elke verkeerd geplaatste tegel moet minstens één veld afleggen, dus is zijn bijdrage aan de Manhattanafstand minstens de 1 die de zwakkere heuristiek telt. Een goed geplaatste tegel draagt bij beide nul bij.

Met consistente schattingen moet A* paden expanderen waarvoor g+h<C∗. Als je een veilige schatting verhoogt, vallen sommige paden buiten dit verplichte gebied. Een dominerende consistente heuristiek expandeert niet meer knopen, afgezien van verschillen bij gelijke waarden. Een ontoelaatbare schatting kan nog groter zijn, maar verliest de optimaliteitsgarantie en komt niet in aanmerking voor deze vergelijking op dominantie.

Vat de zoekinspanning samen

De effectieve vertakkingsfactor, b∗, beschrijft de breedte van een equivalente uniforme boom. Tel N gegenereerde knopen onder de wortel en laat de oplossingsdiepte d zijn. Los op:

N+1=1+b∗+(b∗)2+⋯+(b∗)d.

De extra 1 staat voor de wortel. Consistent tellen is belangrijk: als een meting de wortel al omvat, tel die dan niet tweemaal mee.

Voor 52 gegenereerde knopen onder de wortel en oplossingsdiepte 5 is het totaal 53 en b∗≈1,92. Voor 1.000 gegenereerde knopen en diepte 8 is b∗≈2,20. Bepaal deze waarden numeriek door een proefwaarde te verhogen of te verlagen totdat de meetkundige som overeenkomt met het totale aantal knopen.

Een waarde dicht bij 1 wijst op een smalle zoekopdracht. Vergelijk resultaten voor representatieve instanties met dezelfde telregel en vergelijkbare oplossingsdiepten. De effectieve vertakkingsfactor kan helpen de schaalbaarheid te schatten, maar een ongewoon eenvoudige instantie is geen betrouwbare voorspelling voor een hele probleemfamilie.

Meet de tijd van de hele berekening

Stel dat een knoop 10 microseconden kost, inclusief 1 microseconde om de oude heuristiek te berekenen. Een vervanger halveert het aantal knopen maar kost 100 microseconden per berekening. Het werk buiten de heuristiek kost nog steeds 9 microseconden, dus zijn de nieuwe totale kosten per knoop 109. De verhouding tussen de totale tijden is

0,5×10910=5,45.

Het zoeken is ongeveer 5,5 keer zo langzaam ondanks het kleinere aantal bezochte knopen. Als de nieuwe berekening slechts 2 microseconden kost, worden de totale kosten per knoop 11 en is de tijdverhouding 0,5×11/10=0,55. Dat is ongeveer 1,8 keer zo snel.

Een patroondatabase heeft ook opbouwkosten. Veel zoekopdrachten met hetzelfde doel kunnen die investering delen; één kleine zoekopdracht verdient die mogelijk niet terug. Meet voorbewerking, opzoektijd, gegenereerde knopen en geheugen afzonderlijk, zodat je minder expansies niet verwart met een automatische snelheidsverbetering.

Belangrijkste punten

  • Dominantie vereist twee toelaatbare heuristieken en een ongelijkheid die in elke toestand geldt.
  • Een dominerende consistente heuristiek vermindert de noodzakelijke A*-expansies, afgezien van gelijke waarden.
  • De effectieve vertakkingsfactor past een uniforme boom aan het aantal knopen en de oplossingsdiepte aan.
  • Tel de wortel één keer mee bij gebruik van de vergelijking voor de meetkundige som.
  • De totale rekentijd omvat het berekenen van de heuristiek en eventuele voorafgaande berekeningen.
5

Gebruik lokaal zoeken voor zeer grote toestandsruimten

Sommige problemen vragen om een goede opstelling, niet om een route ernaartoe. Lokaal zoeken werkt rechtstreeks met volledige kandidaten en slaat weinig zoekgeschiedenis op. De uitdaging verschuift van het beheren van een zoekfront naar het bewegen door een landschap met lokale optima, vlakke gebieden en bergkammen. Heuvelklimmen, herstarts, gesimuleerd afkoelen en populatiemethoden verschillen in de manier waarop ze voortgang blijven boeken als een onmiddellijke verbetering ontbreekt.

5.1 Beschrijf lokaal zoeken en het landschap van de toestandsruimte

Lokaal zoeken verandert herhaaldelijk een volledig kandidaatantwoord. Het past bij taken waarbij de uiteindelijke configuratie van belang is en de reeks stappen om die te vinden kan worden weggegooid.

Geef een volledige kandidaat weer

Plaats voor het 8-damesprobleem één dame in elke kolom. Geef de toestand weer met de acht rijnummers, waarbij je de kolommen van links naar rechts leest. Elke toestand bevat alle acht dames, ook toestanden met conflicten. Bij een stap naar een buurtoestand gaat één dame naar een andere rij in haar eigen kolom.

Er zijn 88=16.777.216 toestanden en 8×7=56 buurtoestanden per toestand. Een vast aantal huidige toestanden vervangt het grote zoekfront en de oudergegevens van zoeken naar een pad. De benodigde opslag hangt nog steeds af van de omvang van een toestand; één tuple met acht elementen bewaren kost minder ruimte dan één enorm rooster bewaren.

Roosters maken, chips ontwerpen en een volledige rondreis langs steden kiezen hebben hetzelfde algemene patroon: elke toestand is een volledig voorstel. Een rondreis is zelf een kandidaatopstelling, ook al beschrijft de inhoud een reis. Lokaal zoeken hoeft de reeks wijzigingen waarmee die rondreis is verbeterd niet te bewaren.

Bepaal wat beter betekent

Een doelfunctie geeft elke toestand een score die je wilt maximaliseren. Je kunt ook kosten definiëren die je wilt minimaliseren. Laat voor het n-damesprobleem h paren dames tellen die elkaar aanvallen. Tel elk paar één keer, inclusief aanvallen langs rijen of diagonalen wanneer er een andere dame tussen staat. Een oplossing heeft h=0.

Voor vier kolommen plaatst de tuple (1,2,3,4) alle dames op één diagonaal. Alle (42)=6 paren vallen elkaar aan. De tuple (2,1,3,4) heeft twee aanvallende paren, terwijl (2,4,1,3) er geen heeft. Hier zijn lagere waarden beter; de letter h staat voor de te minimaliseren kosten, niet voor een schatting van de resterende padkosten zoals bij A*.

Lees het landschap

Stel je de kwaliteit van een toestand voor als hoogte. Bij maximalisatie geldt:

  • Een globaal maximum heeft de beste waarde in de hele ruimte.
  • Een lokaal maximum is beter dan zijn buurtoestanden maar kan slechter zijn dan een verder gelegen toestand.
  • Een plateau is een aaneengesloten vlak gebied. Het kan een vlak lokaal maximum zonder uitgang omhoog zijn, of een schouder vanwaar zijwaartse stappen een uitgang omhoog kunnen bereiken.
  • Een bergkam kan stijgen in een richting die de beschikbare afzonderlijke stappen niet kunnen volgen. Elke onmiddellijke keuze kan slechter lijken.

Bij het minimaliseren van kosten keer je de hoogte om: het zoeken richt zich op minima en dalen. Een lokaal minimum bewijst niet dat elders geen toestand met lagere kosten bestaat. De buurt bepaalt welke toestanden in één stap kunnen worden vergeleken, dus een andere toegestane wijziging kan veranderen waar het zoeken vastloopt.

Controleer of je het pad kunt negeren

Een agent die een route zoekt, moet toegestane acties teruggeven vanaf zijn werkelijke start. Een goede bestemming alleen is onvoldoende. Lokaal zoeken geeft meestal alleen de kandidaattoestand terug, zonder ouderketen langs alle eerdere wijzigingen.

Een volledige lokale zoekmethode zou een doel vinden wanneer dat bestaat; een optimale methode zou het globale beste vinden. Elementaire lokale methoden bieden geen van beide garanties in het algemeen. Hun aantrekkingskracht is dat ze snel goede kandidaten kunnen bereiken wanneer het opslaan van een systematische zoekboom onpraktisch is.

Belangrijkste punten

  • Lokaal zoeken wijzigt volledige kandidaatoplossingen en gooit het pad van wijzigingen meestal weg.
  • Een doelfunctie bepaalt welke buurtoestanden beter zijn.
  • Een lokaal optimum kan slechter zijn dan een verder gelegen globaal optimum.
  • Een schouder heeft een uitgang omhoog die via stappen met gelijke waarde bereikbaar is.
  • De buurt beïnvloedt zowel het zoeklandschap als de plaats waar de voortgang stopt.

5.2 Zoek met heuvelklimmen naar betere toestanden

Heuvelklimmen maakt de beste onmiddellijke verbetering die het kan vinden. Voor een te maximaliseren score kiest de steilste stijging de buurtoestand met de hoogste score. Voor te minimaliseren kosten kiest de methode de buurtoestand met de laagste kosten. Ze stopt als er geen strikte verbetering bestaat.

Volg een uitvoering voor vier dames

Laat een toestand de rij van de dame in elke kolom vermelden en laat h aanvallende paren tellen. Begin met (1,2,3,4), met kosten 6.

  1. Beoordeel de zetten met één dame. Een beste buurtoestand is (2,2,3,4), met kosten 4.
  2. Van daaruit is een beste buurtoestand (2,1,3,4), met kosten 2.
  3. Geen buurtoestand door een zet met één dame heeft kosten onder 2. Strikt heuvelklimmen stopt.

De opstelling (2,4,1,3) met kosten nul bestaat, maar kan vanuit de toestand waarin het zoeken stopte niet met één onmiddellijk verbeterende stap worden bereikt. Dit is een gevolg van de lokale regel, geen bewijs dat het programma conflicten verkeerd heeft geteld.

Sta nuttige zijwaartse beweging toe

Een zijwaartse stap behoudt dezelfde score. Die kan een schouder oversteken naar een uitgang die verbetering oplevert, maar kan ook rondzwerven op een vlak lokaal optimum. Beperk opeenvolgende zijwaartse stappen om eindeloze cycli te voorkomen.

In het door Russell en Norvig beschreven experiment met het 8-damesprobleem slaagt de steilste stijging vanuit willekeurige begintoestanden ongeveer 14% van de keren, met ongeveer 4 stappen bij succes en 3 bij vastlopen. Als maximaal 100 opeenvolgende zijwaartse stappen worden toegestaan, stijgt het gemelde succes naar ongeveer 94%, met ongeveer 21 stappen per succes en 64 per mislukking. Dit zijn resultaten van dat experiment, geen universele slagingspercentages voor heuvelklimmen.

Verander hoe een buurtoestand wordt gekozen

Stochastisch heuvelklimmen kiest willekeurig een verbeterende buurtoestand, eventueel met een voorkeur voor grotere verbeteringen. Heuvelklimmen met de eerste verbetering trekt steeds één buurtoestand en neemt de eerste verbetering. Zo hoeft de methode niet vóór elke stap een enorme buurt te beoordelen. Beide wijzen slechtere stappen nog steeds af.

Heuvelklimmen met willekeurige herstarts begint na een mislukte poging een nieuwe poging vanuit een nieuw getrokken toestand. Bij onafhankelijke pogingen met slagingskans p is het verwachte aantal pogingen tot en met het eerste succes 1/p. Voor p=0,14 zijn dat ongeveer 7 pogingen. Met de gemelde aantallen stappen is het verwachte totale aantal stappen

4+0,860,14×3≈22.

De mislukte pogingen leveren ook werk op. Bij een positieve slagingskans en onafhankelijke herstarts nadert de kans om uiteindelijk te slagen 1 naarmate het aantal pogingen groeit.

Laat meerdere kandidaten ontdekkingen delen

Lokaal bundelzoeken bewaart k toestanden, genereert hun buurtoestanden gezamenlijk en behoudt de beste k uit die samengevoegde verzameling. Een veelbelovende ouder kan meerdere overblijvende toestanden leveren, terwijl een andere er geen levert. Dit delen onderscheidt de methode van onafhankelijke herstarts.

Samenvoegen kan er ook voor zorgen dat alle kandidaten zich in één gebied concentreren. Stochastisch bundelzoeken trekt overblijvende toestanden met een kans die toeneemt met de kwaliteit om meer variatie te behouden. De keuze tussen zijwaartse stappen, herstarts en variatie in de populatie hangt af van de reden waarom de voortgang stokt: een nabijgelegen brug van gelijke waarden, een slecht begingebied of te veel kandidaten die hetzelfde gebied verkennen.

Belangrijkste punten

  • Heuvelklimmen met de steilste stijging accepteert de beste strikte verbetering en stopt anders.
  • Zijwaartse stappen kunnen schouders oversteken maar hebben op vlakke gebieden een limiet nodig.
  • Heuvelklimmen met de eerste verbetering blijft buurtoestanden trekken totdat het een verbetering vindt.
  • Onafhankelijke herstarts met slagingskans p kosten gemiddeld 1/p pogingen.
  • Lokaal bundelzoeken kiest uit samengevoegde buurtoestanden, zodat kandidaten voortgang delen.
  • Concentratie van de populatie kan exploratie verminderen, zelfs als meerdere toestanden worden behouden.

5.3 Ontsnap aan lokale optima met gesimuleerd afkoelen en genetische algoritmen

In sommige landschappen is tijdelijk verlies nodig voordat een betere toestand bereikbaar wordt. Gesimuleerd afkoelen staat zulke stappen toe met een beheerste kans. Genetische algoritmen verkennen de ruimte door volledige kandidaten te selecteren en te combineren.

Accepteer soms een slechtere stap

Gesimuleerd afkoelen trekt één willekeurige buurtoestand. Accepteer een verbeterende stap. Schrijf voor een te maximaliseren doelfunctie de verandering als ΔE. Als ΔE<0, accepteer je de slechtere stap met kans

P=eΔE/T,T>0.

Laat bij het minimaliseren van kosten Δ de toename van de kosten zijn. Een slechtere stap heeft dan Δ>0 en acceptatiekans e−Δ/T. Stappen met gelijke waarde hebben volgens beide formules kans 1. Temperatuur en veranderingen in de doelfunctie moeten een passende numerieke schaal gebruiken.

Een scoredaling van 2 wordt geaccepteerd met kans ongeveer 0,819 bij temperatuur 10, 0,135 bij temperatuur 1 en 0,018 bij temperatuur 0,5. Bij temperatuur 10 heeft een grotere daling van 5 een kans van ongeveer 0,607. De temperatuur bepaalt dus de tolerantie, terwijl de omvang van het verlies bij dezelfde temperatuur van belang blijft.

Verlaag de temperatuur

Een afkoelschema bepaalt de temperatuur in de loop van de tijd. Meetkundig afkoelen gebruikt Tk+1=αTk met een factor dicht bij 1, zoals 0,95. Bij hoge temperatuur worden veel slechtere stappen geaccepteerd en lijkt de exploratie op een willekeurige wandeling. Dicht bij nul worden slechtere stappen zeldzaam en lijkt het gedrag op heuvelklimmen.

Te snel afkoelen kan het zoeken laten vastlopen voordat het een slecht gebied heeft verlaten. Zeer langzaam afkoelen vergroot de hoeveelheid rekenwerk. Het asymptotische resultaat voor het globale optimum vereist voldoende langzaam afkoelen en de gebruikelijke mogelijkheid om toestanden via de buurt te bereiken; een gewone eindige meetkundige uitvoering biedt geen zekerheid op globaal succes. De methode wordt sinds de jaren 1980 gebruikt voor chipontwerp en planning en ontleent haar naam aan het verhitten en langzaam afkoelen van metaal, zodat het een structuur met lagere energie aanneemt.

Bouw een nieuwe populatie op

Een genetisch algoritme geeft kandidaten weer als tekenreeksen. Elke generatie beoordeelt het hun fitness, selecteert het ouders met een voorkeur voor hogere fitness, maakt het kinderen door kruising en past het af en toe mutaties toe.

Voor het 8-damesprobleem beschrijven acht rijcijfers één dame per kolom. Fitness kan paren tellen die elkaar niet aanvallen, met 28 als maximum. Splits de ouderreeksen “64751517” en “64278273” na het vierde cijfer. Het combineren van tegenoverliggende helften geeft “64758273” en “64271517”.

De ouders hebben fitness 23 en 24; de kinderen hebben fitness 27 en 21. Eén kind is beter dan beide ouders, terwijl het andere slechter is. Kruising biedt nieuwe combinaties, geen garantie op verbetering. Ze is nuttig als goede bouwstenen bij combinatie meestal hun waarde behouden. Mutatie verandert af en toe een positie en helpt variatie toe te voegen buiten die combinaties.

Selectie, kruising en mutatie hebben verschillende rollen: selectie geeft voorkeur aan bruikbare kandidaten, kruising combineert ze opnieuw en mutatie verandert afzonderlijke posities. Net als stochastisch bundelzoeken houdt de methode een populatie bij, maar nieuwe kandidaten kunnen materiaal uit twee ouders putten. Noch een ouder met hoge fitness, noch een lage eindtemperatuur bewijst op zichzelf dat het globale optimum is gevonden.

Belangrijkste punten

  • Gesimuleerd afkoelen trekt een buurtoestand en accepteert slechtere stappen met een temperatuurafhankelijke kans.
  • Voor een kostentoename Δ>0 is de acceptatiekans e−Δ/T.
  • Afkoelen vermindert exploratie; te snel afkoelen kan het zoeken laten vastlopen in een lokaal optimum.
  • Genetische algoritmen combineren selectie op basis van fitness, kruising en mutatie.
  • Kruising kan zowel betere als slechtere kinderen opleveren.

Zoekalgoritmen: voorbeelden

5 Walkthroughs

1

Zet een probleem om in een zoekprobleem

13 stappen
Formuleer een puzzel, onderscheid toestanden van paden en meet de omvang van een zoekopdracht.
  1. 1
    IntroductieVan keuzes naar een oplossing

    Een zoekalgoritme krijgt geen opdracht zoals “los dit op de een of andere manier op”. Het krijgt een model van mogelijke situaties (toestanden) en toegestane acties.

    Gebruik een schuifpuzzel om dat model op te bouwen en volg vervolgens de zoekgegevens die het oplevert, knopen genoemd. Het model beschrijft de wereld; de gegevens beschrijven de paden die worden overwogen. Dat onderscheid verklaart waarom twee knopen in één toestand kunnen eindigen en waarom elk mogelijk pad opslaan duur kan worden.

  2. 2
    VoorbeeldSpecificeer de puzzel

    Voor de 8-puzzel vermeldt een toestand de posities van acht genummerde tegels en de lege plek. De begintoestand is het gegeven bord.

    De doelindeling is “1 2 3 / 4 5 6 / 7 8 leeg”. Toegestane acties verplaatsen de lege plek naar links, rechts, boven of beneden zonder het bord te verlaten. De overgang verwisselt de lege plek met een aangrenzende tegel. Elke actie kost 1. Deze keuzes specificeren het probleem voordat het zoeken begint.

  3. 3
    UitlegGeef acties terug, niet alleen een bestemming

    De doeltest herkent een succesvol bord. Een oplossing van een padprobleem heeft nog steeds de toegestane zetten nodig die het doel vanaf het beginbord bereiken.

    Als elke zet 1 kost, kost een pad van zes zetten 6. Bij ongelijke wegkosten tel je de kantkosten op in plaats van de acties te tellen. Een doeltoestand vertelt waar je wilt eindigen; de oplossing vertelt hoe je daar komt en de padkosten vertellen wat die reis kost.

  4. 4
    UitdagingBehoud het detail dat acties verandert

    Een routeplanner modelleert een robot aan de hand van zijn huidige kamer. Voor sommige deuren is een sleutel nodig die de robot bij zich kan dragen. Kan de planner veilig weglaten of de robot de sleutel heeft?

    ---reveal---

    Nee. Het bezit van de sleutel verandert de toegestane acties vanuit dezelfde kamer. De toestand moet dit vastleggen, anders kan een abstracte route een doorgang door een deur bevatten die de robot niet kan nemen. De verfkleur van de robot kan worden weggelaten als die noch acties noch kosten verandert.

  5. 5
    KernpuntGenereer een grote ruimte wanneer nodig

    Een impliciete ruimte is een recept voor opvolgers, geen opgeslagen lijst van elke toestand. Dit is zelfs van belang voor klein ogende puzzels: de 8-puzzel heeft 181.440 bereikbare toestanden, terwijl de 15-puzzel er ongeveer 1,05×1013 heeft.

    Het zoeken genereert het deel dat nodig is. Een betere representatie kiezen kan dat deel ook verkleinen: als je elke dame alleen in de volgende lege kolom plaatst, verdwijnen veel overbodige plaatsingsvolgorden.

  6. 6
    UitlegBewaar een pad in elke knoop

    Een toestand is een situatie. Een knoop legt een pad vast en bevat die toestand, zijn ouder, de inkomende actie en de opgetelde kosten g.

    De routes “S, A, C” en “S, B, C” leveren verschillende knopen op die in C eindigen. De kaart bevat één C, maar de zoekboom kan beide aankomsten bevatten. Door ouderverwijzingen vanaf een teruggegeven doel te volgen en de acties om te keren, reconstrueer je de bijbehorende route.

  7. 7
    VoorbeeldOnderscheid wachtende en bereikte gegevens

    Op de kaart met wegen in beide richtingen heeft S wegen naar A voor 2 km, B voor 3 km en D voor 9 km. Expansie van S genereert drie knopen met ouder S.

    Het zoekfront bevat nu A, B en D, die op selectie wachten. De tabel met bereikte toestanden bevat naast die drie toestanden ook S. Ze onthoudt gegenereerde toestanden, niet alleen geëxpandeerde, zodat een andere route niet ongemerkt een onnodig duplicaat van een wachtende toestand kan toevoegen.

  8. 8
    UitlegGeef een verbetering door

    Stel dat C eerst via A wordt bereikt tegen kosten 6. Later biedt B een route naar C met kosten 4. Vervang de beste gegevens van C, inclusief de ouder, zodat latere routes het goedkopere beginstuk overnemen.

    Als C al is geëxpandeerd, moeten sommige algoritmen die heropenen om de verbetering door te geven. Als een heap nog de oude invoer met kosten 6 bevat, sla die verouderde invoer dan over wanneer die wordt verwijderd; die vertegenwoordigt niet langer het beste pad naar C.

  9. 9
    UitdagingReconstrueer de juiste route

    Een doelknoop Z heeft ouder M. De beste knoop van M heeft ouder K en de ouder van K is de wortel R. Een oudere knoop voor M had ouder P. Welke route moet worden teruggegeven?

    ---reveal---

    Geef R–K–M–Z terug door de werkelijke ouderketen van de teruggegeven knoop achterwaarts te volgen en die vervolgens om te keren. De oudere knoop van M beschrijft een ander pad. Als je de ouder daarvan combineert met de verbeterde kosten, komt de vermelde route niet overeen met de eigen zoekgegevens.

  10. 10
    UitlegStel vier afzonderlijke vragen

    Volledig betekent een oplossing vinden wanneer die bestaat. Kostenoptimaal betekent de goedkoopste oplossing teruggeven. Een onoplosbare oneindige ruimte hoeft niet tot een afsluitende melding te leiden dat er geen oplossing is.

    Tijd meet gegenereerde of geëxpandeerde knopen; ruimte meet de maximale hoeveelheid bewaarde informatie. Een methode kan volledig zijn en toch een dure route teruggeven, of de goedkoopste route teruggeven terwijl ze te veel geheugen gebruikt om op een grotere instantie praktisch te zijn.

  11. 11
    VoorbeeldZie de lagen groeien

    Bij vertakkingsfactor 10 bevatten de lagen tot en met diepte 5 achtereenvolgens 1, 10, 100, 1.000, 10.000 en 100.000 knopen. Samen bevatten ze 111.111 knopen.

    De meeste zitten in de laatste laag. Daarom maakt een extra diepteniveau zoveel uit: het voegt nog eens 1.000.000 paden toe vóór controle op duplicaten. Bij 1 kilobyte per knoop kan brede exploratie een opslaggrens bereiken, ook als het genereren van knopen zelf snel is.

  12. 12
    UitdagingVerwar een kort pad niet met een goedkoop pad

    Een volledig algoritme geeft altijd een route van twee acties terug die 17 eenheden kost, hoewel een route van vier acties 10 kost. Is het kostenoptimaal en beantwoordt de claim van volledigheid die vraag?

    ---reveal---

    Het is niet kostenoptimaal omdat een goedkopere oplossing bestaat. Volledigheid stelt vast dat het een oplossing vindt, niet welke oplossing het kiest. De extra acties maken de route van vier acties niet slechter als de totale kosten het doel zijn.

  13. 13
    SamenvattingLees een uitwerking van een zoekopdracht gericht

    Houd drie lagen afzonderlijk: de toestanden en acties van het probleem, de paden die als knopen zijn opgeslagen en de regel die de volgende knoop uit het zoekfront kiest. Vraag vervolgens of het teruggegeven pad aan het gewenste doel voldoet.

    Bepaal voor vergelijkingen van middelen de vertakkingsfactor, oplossingsdiepte en maximale diepte. Controleer wat wordt opgeslagen en wat wordt geëxpandeerd; twee strategieën kunnen hetzelfde doel zoeken met zeer verschillende geheugenvereisten.

2

Doorloop ongeïnformeerd zoeken op één kaart

16 stappen
Vergelijk ordening met een wachtrij, op kosten en met een stapel, en kies vervolgens een strategie binnen beperkingen van geheugen en omkeerbaarheid.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieEén kaart, meerdere zoekvolgorden
  2. 2
    VoorbeeldBegin de wachtrij voor breedte-eerst zoeken
  3. 3
    VoorbeeldLaat het eerste doel verschijnen
  4. 4
    UitdagingInterpreteer het resultaat van BFS
  5. 5
    TipGebruik de bijpassende grens voor BFS
  6. 6
    VoorbeeldOrden op al gemaakte kosten
  7. 7
    VoorbeeldVerwijder het doel tegen minimale kosten
  8. 8
    UitdagingWacht op de goedkopere onvoltooide route
  9. 9
    KernpuntBegrens de kosten van eindeloze diepte
  10. 10
    VoorbeeldVolg de tak met diepte-eerst zoeken
  11. 11
    UitlegOnderscheid een grens van het ontbreken van een oplossing
  12. 12
    VoorbeeldBetaal een kleine prijs voor minder geheugen
  13. 13
    UitdagingKies een dieptestrategie
  14. 14
    UitlegOntmoet een zoekopdracht vanaf het doel
  15. 15
    UitdagingKies op basis van kosten en achterwaartse toegang
  16. 16
    SamenvattingStem de garantie af op de taak
3

Stuur een zoekopdracht met schattingen

15 stappen
Doorloop gulzig zoeken en A* en bekijk vervolgens de afwegingen tussen snelheid en geheugen bij veelgebruikte varianten.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieSchat de onvoltooide reis
  2. 2
    UitlegGeef de schatting betekenis
  3. 3
    VoorbeeldLaat schijnbare nabijheid kiezen
  4. 4
    UitdagingKies tussen een goedkoop beginstuk en een kleine schatting
  5. 5
    VoorbeeldTel de twee kostenposten op
  6. 6
    VoorbeeldHandel de laatste gelijke waarde af
  7. 7
    KernpuntHoud een optimale route concurrerend
  8. 8
    UitlegWeet wanneer een gesloten toestand gesloten blijft
  9. 9
    UitdagingStel een ontbrekende verbetering vast
  10. 10
    VoorbeeldBenadruk voortgang naar het doel
  11. 11
    UitlegVerhoog een kostencontour in plaats van een zoekfront te bewaren
  12. 12
    VoorbeeldVerhoog de grens van acht naar negen
  13. 13
    TipBepaal of vergeten paden kunnen terugkeren
  14. 14
    UitdagingKies een garantie bij beperkt geheugen
  15. 15
    SamenvattingOnderscheid ordening, stoppen en geheugen
4

Bouw en controleer een veilige heuristiek

15 stappen
Toets grenzen voor toestanden en kanten, leid schattingen voor puzzels af en vergelijk hun rekenkundige waarde.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieBewijs dat de schatting veilig is
  2. 2
    UitlegControleer de grens van de werkelijke kosten
  3. 3
    VoorbeeldControleer een gerichte stap
  4. 4
    UitdagingOnderscheid een optimistische schatting van een geleidelijk veranderende
  5. 5
    VerbandLaat de zetten de afstand bepalen
  6. 6
    UitlegMaak bewust een eenvoudiger probleem
  7. 7
    VoorbeeldRelaxeer twee beperkingen van de puzzel
  8. 8
    VoorbeeldTel de verplaatste genummerde tegels
  9. 9
    UitdagingVoorkom dat je één zet tweemaal telt
  10. 10
    UitlegBereken ondergrenzen vooraf en combineer ze
  11. 11
    UitlegVergelijk schattingen overal
  12. 12
    VoorbeeldPas een equivalente boom aan
  13. 13
    VoorbeeldReken de berekening van de heuristiek mee
  14. 14
    UitdagingGebruik twee schattingen zonder een dominantieclaim
  15. 15
    SamenvattingBeoordeel veiligheid en bruikbaarheid afzonderlijk
5

Verbeter volledige kandidaten

16 stappen
Volg heuvelklimmen bij het plaatsen van dames en gebruik daarna herstarts, gesimuleerd afkoelen en kruising om verder te zoeken dan onmiddellijke verbetering.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieZoek naar een opstelling
  2. 2
    VoorbeeldNeem elke dame op in de toestand
  3. 3
    VoorbeeldTel aanvallende paren
  4. 4
    UitlegStel je de valkuilen voor
  5. 5
    UitdagingBepaal of de wijzigingsgeschiedenis van belang is
  6. 6
    VoorbeeldVolg de beste onmiddellijke stappen
  7. 7
    UitlegProbeer zijwaartse beweging of een nieuwe start
  8. 8
    UitdagingTel de succesvolle poging mee
  9. 9
    VerbandDeel voortgang zonder elk alternatief te verliezen
  10. 10
    UitlegAccepteer een tijdelijk verlies
  11. 11
    VoorbeeldHoud het verlies gelijk en verlaag de temperatuur
  12. 12
    UitdagingHoud de tekens consistent
  13. 13
    TipKoel in een bruikbaar tempo af
  14. 14
    VoorbeeldCombineer twee ouderreeksen
  15. 15
    UitdagingStel vast waarom een populatie stagneert
  16. 16
    SamenvattingKies een manier om het obstakel te passeren

Zoekalgoritmen: oefenvragen

50 Oefenvragen in 5 sets

Set 1: Toestanden, zoekfronten en ongeïnformeerd zoeken10 Oefenvragen

Vraag 1 van 10

Een routeplanner geeft alleen de naam van de bestemming terug. Wat moet de planner teruggeven om een oplossing van een padprobleem te leveren?
  1. De schatting van de resterende afstand op de bestemming.
  2. De acties die van de start naar de bestemming leiden.
  3. De lijst van elke plaats die de planner tijdens het zoeken genereerde.
  4. De actie met de laagste kosten op de hele kaart.
Toon antwoordVerberg antwoord
Antwoord: B
Een oplossing van een padprobleem is een reeks toegestane acties van de begintoestand naar een doel. De bestemming noemt een succesvolle eindtoestand maar laat de route onbepaald. Alle gegenereerde plaatsen opsommen voldoet ook niet: veel van die plaatsen kunnen bij verlaten takken horen in plaats van bij één aaneengesloten route.

Vraag 2 van 10

Een knoop is gegenereerd en in het zoekfront geplaatst, maar nog niet geëxpandeerd. Waar wordt zijn toestand bij graafzoeken vastgelegd?
  1. Alleen in de gesloten verzameling, vóór expansie.
  2. Pas na expansie in de tabel met bereikte toestanden.
  3. Alleen in de ouderknoop, tot aan de expansie.
  4. Al vóór expansie in de tabel met bereikte toestanden.
Toon antwoordVerberg antwoord
Antwoord: D
De tabel met bereikte toestanden legt toestanden vast wanneer ze worden gegenereerd en bevat dus zowel toestanden in het zoekfront als geëxpandeerde toestanden. Als je tot de expansie wacht, kunnen meerdere ouders dezelfde toestand in de wachtrij plaatsen. Een gesloten verzameling legt meestal geëxpandeerde toestanden vast en heeft daarmee een beperktere rol dan de tabel met bereikte toestanden.

Vraag 3 van 10

Een volledige zoekboom heeft vertakkingsfactor 3 en loopt tot en met diepte 4. Hoeveel knopen bevat de boom, inclusief de wortel?
  1. 121 knopen
  2. 81 knopen
  3. 120 knopen
  4. 364 knopen
Toon antwoordVerberg antwoord
Antwoord: A
Tel elke laag: de wortel draagt 1 bij, daarna dragen de lagen 3, 9, 27 en 81 bij. Hun som is 121. De waarde 81 telt alleen de diepste laag, terwijl 120 alle gegenereerde knopen onder de wortel telt maar de in de vraag gevraagde wortel weglaat.

Vraag 4 van 10

De gerichte kanten zijn R→K, R→M, K→N, M→Z en N→Z. BFS begint bij R en zoekt Z, waarbij buren alfabetisch worden gegenereerd. Welk pad geeft het terug?
  1. R–K–N–Z
  2. R–K–M–Z
  3. R–M–Z
  4. R–M–N–Z
Toon antwoordVerberg antwoord
Antwoord: C
Na expansie van R bevat de wachtrij K en M. Expansie van K voegt N achter M toe; expansie van M genereert vervolgens Z en de vroege doeltest geeft R–M–Z terug. K onmiddellijk via N volgen zou gedrag van diepte-eerst zoeken zijn en de oplossing met kleinere diepte en twee kanten missen.

Vraag 5 van 10

Een gerichte kaart heeft P→Q 5 km, P→R 2 km, R→Q 1 km en Q→Z 4 km. Welke route en kosten geeft UCS terug van P naar Z?
  1. P–Q–Z, 9 km
  2. P–R–Q–Z, 6 km
  3. P–Q–Z, 7 km
  4. P–R–Q–Z, 7 km
Toon antwoordVerberg antwoord
Antwoord: D
UCS expandeert eerst R tegen kosten 2 en verbetert Q van kosten 5 naar kosten 3. Q genereert vervolgens Z tegen kosten 7, wat P–R–Q–Z geeft. Als de eerste aankomst bij Q wordt bewaard, wordt de route met kosten 9 teruggegeven; graafzoeken moet een duurder wachtend pad vervangen wanneer het een goedkoper pad ontdekt.

Vraag 6 van 10

Zoeken met een dieptelimiet eindigt met een afbreking op limiet 6. Wat stelt dat resultaat vast?
  1. De limiet verhinderde dat het zoeken werd uitgeput.
  2. De bereikbare toestandsruimte bevat op geen enkele diepte een doel.
  3. Het doel met de kleinste diepte moet precies zeven acties verwijderd zijn.
  4. De bereikbare toestandsruimte heeft een maximale diepte van zes.
Toon antwoordVerberg antwoord
Antwoord: A
Een afbreking op de dieptelimiet meldt dat de dieptebegrenzing verdere exploratie verhinderde. Zowel een diepere oplossing als het ontbreken van een oplossing blijft mogelijk. De afbreking lokaliseert geen doel op de volgende diepte; alleen verder zoeken kan vaststellen waar een doel bereikbaar is.

Vraag 7 van 10

Een puzzel met eindige vertakking heeft gelijke zetkosten, een onbekende doeldiepte en te weinig geheugen voor een breed zoekfront. Welke ongeïnformeerde methode vindt een oplossing met de kleinste diepte met de opslag van diepte-eerst zoeken?
  1. Zoeken op oplopende padkosten
  2. Zoeken met iteratieve verdieping
  3. Gulzig beste-eerst zoeken
  4. Diepte-eerst zoeken
Toon antwoordVerberg antwoord
Antwoord: B
Zoeken met iteratieve verdieping probeert steeds grotere dieptelimieten, zodat de eerste succesvolle iteratie een oplossing met de kleinste diepte bereikt met de opslag van diepte-eerst zoeken. Gewoon DFS kan bij een diepere oplossing stoppen en biedt die garantie niet. UCS behoudt de garantie op de laagste kosten maar bewaart een mogelijk breed zoekfront met prioriteiten, wat niet past bij de geheugenlimiet.

Vraag 8 van 10

Een systeem kan opvolgers opsommen maar geen voorgangers. Het heeft één expliciet doel. Wat verhindert het gebruikelijke bidirectionele zoeken?
  1. Het voorwaartse zoeken kan de doeltoestand niet herkennen.
  2. De twee richtingen moeten verschillende kantkosten hebben.
  3. Het achterwaartse zoeken kan zijn volgende toestanden niet genereren.
  4. Het doel moet meerdere aanvaardbare toestanden beschrijven.
Toon antwoordVerberg antwoord
Antwoord: C
De achterwaartse helft heeft voorgangers nodig: toestanden die naar de huidige toestand kunnen leiden. Het bekende doel levert het startpunt maar niet die omgekeerde overgangen. Een expliciet doel alleen is daarom onvoldoende; gewone voorwaartse generatie van opvolgers levert niet noodzakelijk een bruikbare achterwaartse zoekmethode op.

Vraag 9 van 10

Een zoekmethode kan in elke toestand kiezen uit eindig veel acties. Eén tak is oneindig en een andere bereikt een doel in vier acties. Wat kun je concluderen over BFS en DFS als boomzoeken met cycluscontrole op het pad?
  1. BFS vindt een doel; DFS kan op de oneindige tak blijven.
  2. Beide vinden een doel omdat elke toestand eindig veel acties heeft.
  3. DFS vindt een doel; BFS kan in een ondiepe oneindige laag blijven.
  4. Geen van beide vindt een doel omdat de toestandsruimte oneindig is.
Toon antwoordVerberg antwoord
Antwoord: A
Eindige vertakking maakt elke laag van BFS eindig, zodat het uiteindelijk diepte vier bereikt. DFS kan de oneindige tak blijven uitbreiden met verschillende toestanden zonder dat de cycluscontrole op het pad ingrijpt. Cycluscontrole verwijdert herhaalde voorouders, maar een oneindige keten van nieuwe toestanden blijft een obstakel voor de volledigheid van DFS.

Vraag 10 van 10

UCS doorzoekt een oneindige graaf met eindige vertakking. Elke stap kost meer dan nul, maar er is geen positieve ondergrens voor de stapkosten. Een oneindige keten heeft opgetelde kosten die 2 naderen, terwijl een direct doel 3 kost. Wat kan gebeuren?
  1. UCS moet het doel teruggeven omdat elke stap positieve kosten heeft.
  2. UCS kan de keten eindeloos expanderen voordat het het doel verwijdert.
  3. UCS moet melden dat er geen oplossing is zodra de keten kosten 2 bereikt.
  4. UCS geeft ergens langs de keten een goedkoper doel terug.
Toon antwoordVerberg antwoord
Antwoord: B
Elk eindig beginstuk van de keten kost minder dan 2 en heeft daarom voorrang op het doel met kosten 3. UCS kan eindeloos een volgende goedkopere knoop in het zoekfront blijven vinden. Strikt positieve afzonderlijke kosten zijn onvoldoende voor dit volledigheidsargument in een oneindige ruimte; een uniforme positieve ondergrens zou oneindig veel stappen onder een vaste kostengrens voorkomen.
Set 2: Heuristieken, A* en geheugenlimieten10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Gulzig beste-eerst zoeken heeft in het zoekfront knoop L met opgetelde kosten 2 en schatting 8, M met kosten 9 en schatting 1, en N met kosten 4 en schatting 3. Wat verwijdert het als volgende?
  1. L
  2. N
  3. M
  4. L en N samen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

A* heeft in het zoekfront knoop J met opgetelde kosten 4 en schatting 6, K met kosten 7 en schatting 2, en L met kosten 2 en schatting 8. Welke knoop heeft de laagste prioriteitswaarde?
  1. K
  2. J
  3. L
  4. J en L samen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een gulzige zoekmethode gebruikt een toelaatbare heuristiek en geeft een route met kosten 18 terug, hoewel een route met kosten 13 bestaat. Waarom past deze uitkomst bij de regel van de methode?
  1. Een toelaatbare schatting moet in elke toestand gelijk zijn aan de resterende kosten.
  2. De methode ordent op opgetelde kosten zonder resterende schattingen te gebruiken.
  3. Een toelaatbare schatting staat toe dat elk doel een positieve schatting heeft.
  4. De methode ordent op resterende schattingen zonder het al afgelegde pad mee te rekenen.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Een gerichte kaart heeft R→T 3, R→U 6, T→Z 9 en U→Z 2. De schattingen zijn R 5, T 4, U 2 en Z 0. Welke doelkosten geeft A* terug?
  1. 12
  2. 8
  3. 7
  4. 11
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Gewogen A* gebruikt een toelaatbare heuristiek, heropening en gewicht 1,5. De optimale kosten zijn 20. Welke bovengrens stelt de garantie aan de teruggegeven kosten?
  1. 20
  2. 30
  3. 21,5
  4. 40
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een iteratie van IDA* gebruikt grens 14. De weggesnoeide waarden boven de grens zijn 17, 19, 17 en 24. Welke grens wordt daarna gebruikt?
  1. 17
  2. 15
  3. 19
  4. 24
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

A* heeft een doel met kosten 16 in het zoekfront en een knoop die geen doel is met prioriteit 14. Wat moet het vervolgens doen als alle andere prioriteiten groter zijn?
  1. De doelknoop teruggeven die al is gegenereerd.
  2. Het doel verwijderen en zijn pad optimaal verklaren.
  3. De knoop die geen doel is met de lagere prioriteit weggooien.
  4. De knoop die geen doel is verwijderen en verder zoeken.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een eindige zoekopdracht heeft een optimaal pad nodig. De heuristiek is toelaatbaar, de kosten hebben slechts enkele gehele waarden en gewoon A* put het geheugen voor het zoekfront uit. Een oplossingspad past gemakkelijk in het geheugen. Welke methode behoudt optimaliteit met doorlopen volgens diepte-eerst zoeken?
  1. Bundelzoeken
  2. Gewogen A* met gewicht 2
  3. IDA*
  4. Gulzig beste-eerst zoeken
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Een gerichte kaart heeft S→A 2, S→B 1, B→A 2 en A→G 4. De schattingen zijn S 0, A 0, B 7 en G 0. A* test doelen bij verwijdering. Welke kosten geeft het terug en welk gebrek heeft de heuristiek?
  1. 6; B overschat, maar de teruggegeven route is toch optimaal.
  2. 7; B overschat en verbergt de goedkopere route via A.
  3. 6; alle schattingen zijn toelaatbaar, dus is optimaliteit gegarandeerd.
  4. 7; A is inconsistent omdat de schatting nul is.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

SMA* heeft een toelaatbare heuristiek. Het geheugen kan een volledig oplossingspad met kosten 25 bevatten, maar elk optimaal pad met kosten 19 heeft meer geheugen nodig dan beschikbaar is. Welke garantie blijft over voor de teruggegeven kosten?
  1. Het moet nog steeds de optimale kosten van 19 teruggeven.
  2. Het moet melden dat er geen oplossing is en geen pad teruggeven.
  3. Het moet kosten van maximaal 1,5 keer 19 teruggeven.
  4. Het kan 25 teruggeven; kosten 19 zijn niet gegarandeerd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 3: Controleer, construeer en vergelijk heuristieken10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

In een toestand met werkelijke laagste resterende kosten 11 geeft een heuristiek 13. Welke eigenschap wordt in deze toestand geschonden?
  1. Volledigheid
  2. Positieve kosten
  3. Eindige diepte
  4. Toelaatbaarheid
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Twee toelaatbare schattingen in een toestand zijn 7 en 10. Welke waarde gebruikt hun maximumcombinatie?
  1. 7
  2. 17
  3. 10
  4. 3
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een gerichte kant X→Y kost 3. De schattingen zijn 8 in X en 4 in Y. Wat stelt deze kant vast over consistentie?
  1. De eis faalt omdat 8 groter is dan 3 + 4.
  2. De eis geldt omdat beide positief zijn.
  3. De eis geldt omdat de schatting met 4 daalt.
  4. De eis faalt omdat 4 kleiner is dan 3 + 8.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Het doel van de 8-puzzel is “1 2 3 / 4 5 6 / 7 8 leeg”. Wat zijn voor “1 2 3 / 4 5 6 / leeg 7 8” de schattingen van het aantal verkeerd geplaatste tegels en de opgetelde Manhattanafstand?
  1. 3 en 4
  2. 2 en 2
  3. 2 en 4
  4. 3 en 2
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een zoekopdracht genereert 30 knopen onder de wortel en vindt een oplossing op diepte 4. Welke effectieve vertakkingsfactor past precies bij dit aantal knopen?
  1. 2
  2. 3
  3. 4
  4. 1,5
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Een ontwerper neemt een beperking op acties weg maar laat elke oorspronkelijke actie beschikbaar tegen de oorspronkelijke kosten. Waarom zijn de exacte gerelaxeerde kosten een veilige ondergrens?
  1. Elke gerelaxeerde oplossing moet in het oorspronkelijke probleem toegestaan blijven.
  2. Elke gerelaxeerde oplossing moet minder acties gebruiken dan elke oorspronkelijke oplossing.
  3. Elke oorspronkelijke oplossing blijft in het gerelaxeerde probleem beschikbaar.
  4. Elke oorspronkelijke actie moet nu strikt lagere numerieke kosten hebben.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een gerichte kaart heeft R→X 2, R→Y 1, Y→X 2 en X→Z 5. De schattingen zijn R 0, X 0, Y 6 en Z 0. Is de heuristiek toelaatbaar en consistent?
  1. Consistent, maar ontoelaatbaar.
  2. Zowel toelaatbaar als consistent.
  3. Toelaatbaar noch consistent.
  4. Toelaatbaar, maar inconsistent.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Twee patroondatabases gebruiken disjuncte tegelverzamelingen, maar elke tabel rekent één eenheid voor elke puzzelzet, inclusief zetten van andere tegels. Eén zet kan beide deelproblemen vooruithelpen. Welke combinatie is gegarandeerd toelaatbaar?
  1. De som, omdat de tegelverzamelingen disjunct zijn.
  2. Het maximum van de twee tabelwaarden.
  3. Tweemaal de grootste van de twee tabelwaarden.
  4. De som min één, voor elke puzzeltoestand.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Een oude zoekopdracht beoordeelt 80.000 knopen tegen 12 microseconden per knoop, inclusief 2 voor de heuristiek. Een nieuwe heuristiek kost 8 microseconden en vermindert het aantal knopen tot 48.000; het overige werk per knoop blijft gelijk. Wat is de nieuwe totale tijd ten opzichte van de oude?
  1. 60% van de oude tijd
  2. 120% van de oude tijd
  3. 90% van de oude tijd
  4. 150% van de oude tijd
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Toelaatbare heuristieken H en J geven waarden 4 en 7 in toestand X, en 9 en 6 in toestand Y. Wat kun je concluderen over dominantie en hun maximum?
  1. Geen van beide domineert; hun maximum is toelaatbaar.
  2. J domineert H; hun maximum is toelaatbaar.
  3. H domineert J; hun maximum kan overschatten.
  4. Geen van beide domineert; hun som is altijd toelaatbaar.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 4: Landschappen, herstarts en zoeken met populaties10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een roosteroptimalisatie geeft een volledig rooster terug en gooit de reeks verwisselingen weg waarmee het is gevonden. Wat maakt lokaal zoeken geschikt voor deze taak?
  1. De uiteindelijke indeling is het gevraagde antwoord.
  2. De verwisselingen moeten het goedkoopst mogelijke pad vormen.
  3. Elk kandidaatrooster moet dezelfde kwaliteit hebben.
  4. De volledige verzameling roosters moet in het geheugen passen.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een toestand voor lokaal zoeken in het 6-damesprobleem heeft één dame per kolom. Eén zet verplaatst een dame naar een andere rij in haar kolom. Hoeveel buurtoestanden heeft elke toestand?
  1. 36
  2. 25
  3. 30
  4. 12
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Een strikt heuvelklimalgoritme dat kosten minimaliseert, bevindt zich op kosten 7. De kosten van de buurtoestanden zijn 9, 7, 8 en 10. Wat doet het?
  1. Een zijwaartse stap zetten.
  2. Naar kosten 8 gaan.
  3. Willekeurig herstarten.
  4. Stoppen op kosten 7.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Onafhankelijke pogingen met heuvelklimmen slagen met kans 0,25. Wat is het verwachte aantal pogingen tot en met het eerste succes?
  1. 3 pogingen
  2. 4 pogingen
  3. 5 pogingen
  4. 0,25 pogingen
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een stap bij gesimuleerd afkoelen verhoogt te minimaliseren kosten met 3 bij temperatuur 6. Wat is ongeveer de acceptatiekans?
  1. 0,223
  2. 0,607
  3. 0,500
  4. 1,000
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

De ouders van een genetisch algoritme zijn “253142” en “461325”. Een kruising splitst na het derde cijfer en wisselt de eindstukken uit. Wat zijn de kinderen?
  1. “253142” en “461325”
  2. “251325” en “463142”
  3. “253461” en “142325”
  4. “253325” en “461142”
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een lokaal zoekalgoritme dat maximaliseert, begint in P met score 10. Toegestane wijzigingen zijn P→Q (10), P→R (9), Q→V (10), Q→W (8), V→U (13) en V→Q (10). Een doel vereist score 13. Wat is de kleinste limiet voor opeenvolgende zijwaartse stappen waarmee een doel zonder verlies te accepteren bereikbaar is, en welk landschapskenmerk vormen P, Q en V?
  1. 2; een schouder
  2. 1; een schouder
  3. 2; een vlak lokaal maximum
  4. 3; een strikt lokaal maximum
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Elke onafhankelijke herstart slaagt met kans 0,2. Een mislukte poging kost 6 zetten en een succesvolle 10. Wat is het verwachte totale aantal zetten tot en met het eerste succes?
  1. 30 zetten
  2. 40 zetten
  3. 34 zetten
  4. 50 zetten
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Twee uitvoeringen van gesimuleerd afkoelen krijgen voorgestelde kostentoenames. Uitvoering X heeft een toename van 4 bij temperatuur 8; uitvoering Y heeft een toename van 2 bij temperatuur 2. Hoe verhouden hun acceptatiekansen zich?
  1. X is ongeveer 0,368; Y is ongeveer 0,607.
  2. Beide zijn ongeveer 0,607 omdat beide stappen de kosten verhogen.
  3. Beide zijn ongeveer 0,368 omdat beide temperaturen positief zijn.
  4. X is ongeveer 0,607; Y is ongeveer 0,368.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Lokaal bundelzoeken bewaart drie toestanden. Vanuit A zijn de scores van de opvolgers A1 11 en A2 7; vanuit B zijn dat B1 10 en B2 9; vanuit C zijn dat C1 8 en C2 6. In de volgende ronde levert A1 scores 13 en 5 op; B1 levert 12 en 11 op; B2 levert 10 en 9 op. Hoeveel overblijvende kandidaten stammen na twee rondes waarin de beste drie worden geselecteerd respectievelijk af van de oorspronkelijke A, B en C?
  1. 2, 1 en 0
  2. 1, 2 en 0
  3. 1, 1 en 1
  4. 0, 3 en 0
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 5: Kies en beoordeel zoekmethoden10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Elke zet in een eindige puzzel kost 4 eenheden. Wat minimaliseert een oplossing met de kleinste diepte?
  1. De rekentijd van de heuristiek en het aantal zetten.
  2. Het aantal bereikbare toestanden en het aantal zetten.
  3. De maximale vertakkingsfactor en het aantal zetten.
  4. De totale padkosten en het aantal zetten.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een puzzel met panelen staat een speciale draaiing alleen toe voordat een grendel voor eenmalig gebruik is overgehaald. De toestand legt nu alleen de posities van de panelen vast. Welke aanvullende toestandsinformatie is nodig?
  1. Het huidige aantal knopen in het zoekfront.
  2. Of de grendel voor eenmalig gebruik al is overgehaald.
  3. De alfabetische volgorde voor keuzes bij gelijke waarden.
  4. Het aantal routes dat de planner al heeft geprobeerd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Twee routes bereiken een doel: één heeft 2 acties met totale kosten 14; een andere heeft 4 acties met kosten 8. Er is geen heuristiek beschikbaar. Welke strategie garandeert minimale kosten onder het model met positieve kosten?
  1. Zoeken op oplopende padkosten
  2. Breedte-eerst zoeken
  3. Diepte-eerst zoeken
  4. Zoeken met dieptelimiet 2
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Bij gesimuleerd afkoelen dat kosten minimaliseert, verlaagt een voorstel de kosten met 5 terwijl de temperatuur 0,1 is. Hoe wordt dat voorstel afgehandeld?
  1. Accepteer het met kans 0,007.
  2. Wijs het af vanwege de lage temperatuur.
  3. Accepteer het met kans 1.
  4. Accepteer het pas na een herstart.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een robot beweegt horizontaal, verticaal of diagonaal tegen kosten één. Vanaf (2,1) zoekt de robot (7,4) op een rooster zonder obstakels. Wat zijn de exacte resterende kosten en de status van de Manhattanafstand in deze toestand?
  1. Kosten 8; de Manhattanafstand is exact.
  2. Kosten 5; de Manhattanafstand overschat.
  3. Kosten 3; de Manhattanafstand onderschat.
  4. Kosten 5; de Manhattanafstand is hier toelaatbaar.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

De gerichte kanten zijn R→P 4, R→Q 1, Q→P 1 en P→Z 4. De schattingen zijn R 0, P 0, Q 5 en Z 0. Bij gelijke waarden geldt alfabetische volgorde. Welke kosten geven A* zonder heropening en A* met heropening terug?
  1. 8 zonder heropening; 6 met heropening.
  2. 6 zonder heropening; 6 met heropening.
  3. 8 zonder heropening; 8 met heropening.
  4. 6 zonder heropening; 8 met heropening.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een boom is één enkele keten met zijn eerste doel op diepte 5. Tel de gegenereerde knopen onder de wortel over alle voltooide doorlopen. Hoeveel genereert IDS tot en met de succesvolle doorloop, vergeleken met BFS?
  1. IDS 5; BFS 5.
  2. IDS 20; BFS 5.
  3. IDS 15; BFS 5.
  4. IDS 15; BFS 6.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Een tabel geeft een toelaatbare schatting van de resterende kosten. Een tweede tabel is exact voor een andere relaxatie en soms groter, soms kleiner. Optimaliteit is vereist en de tabellen kunnen dezelfde zetten tellen. Hoe kun je beide schattingen veilig gebruiken?
  1. Tel ze op waar verschillende tabellen winnen.
  2. Gebruik hun som min de padkosten.
  3. Gebruik de grootste plus de helft van de kleinste.
  4. Neem in elke toestand hun maximum.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

A* gebruikt een consistente heuristiek. Het optimum kost 12. Wachtende knopen X, Y en Z hebben prioriteiten 10, 12 en 15; hun waarden blijven onveranderd. Wat kun je concluderen over expansie voordat het optimale doel wordt teruggegeven?
  1. X moet worden geëxpandeerd; Y mogelijk; Z niet.
  2. X en Y moeten worden geëxpandeerd; Z mogelijk.
  3. Alleen X wordt mogelijk geëxpandeerd; Y en Z niet.
  4. X, Y en Z moeten allemaal vóór het teruggeven worden geëxpandeerd.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een uitvoering van gesimuleerd afkoelen gebruikt temperatuur één en krijgt een kostentoename van 3. De doelfunctie wordt herschaald zodat alle kosten met 100 worden vermenigvuldigd. Welke temperatuur behoudt de acceptatiekans van die stap en waarom?
  1. 1, omdat een andere eenheid de exponent nooit verandert.
  2. 100, omdat de verhouding tussen toename en temperatuur gelijk blijft.
  3. 0,01, omdat de temperatuur de kosten door deling moet compenseren.
  4. 300, omdat de temperatuur gelijk moet zijn aan de nieuwe kostentoename.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Kom je niet uit je eigen opgave? Huiswerkhulp

Kernbegrippen

84 Kernbegrippen, elk met een definitie

A

A*-zoeken
A-zoeken* rangschikt wachtende paden op opgetelde kosten plus geschatte resterende kosten en geeft een doel terug wanneer het de laagste prioriteitswaarde in het zoekfront heeft.
A*-zoeken kan een dure zijtak ongeëxpandeerd laten wanneer de schatting die boven de optimale doelkosten plaatst.
Abstractie
Een abstractie laat details uit een probleemrepresentatie weg terwijl de voorgestelde oplossingen uitvoerbaar blijven.
Een routeabstractie kan de kleur van de auto weglaten als die noch de toegang tot wegen noch de reiskosten verandert.
Actiekosten
Actiekosten zijn de numerieke kosten van één overgang, zoals de afstand van een weg of één eenheid voor een toegestane puzzelzet.
De actiekosten van een weg kunnen 6 km zijn, ook als het nemen van die weg als slechts één zoekstap telt.
Additieve patroonheuristiek
Een additieve patroonheuristiek telt kosten van deelproblemen op waarbij de toewijzing van zetkosten voorkomt dat hetzelfde werk meer dan één keer in rekening wordt gebracht.
Een additieve patroonheuristiek kan disjuncte tegelpatronen combineren wanneer elk patroon alleen zetten van zijn eigen tegels in rekening brengt.
Afbreking op de dieptelimiet
Een afbreking op de dieptelimiet is een resultaat van zoeken met een dieptelimiet dat aangeeft dat de grens verdere exploratie verhinderde, zodat diepere mogelijkheden onopgelost blijven.
Een afbreking op diepte 3 vraagt om een grotere limiet als het zoeken routes van vier stappen moet onderzoeken.
Afkoelschema
Een afkoelschema specificeert hoe de temperatuur bij gesimuleerd afkoelen in de loop van de tijd verandert en verlaagt die meestal zodat slechtere stappen minder vaak voorkomen.
Een meetkundig afkoelschema vermenigvuldigt de temperatuur bij elke actualisatie met een factor zoals 0,95.

B

Begintoestand
De begintoestand is de situatie van waaruit een zoekopdracht begint, voordat een actie uit de voorgestelde oplossing is uitgevoerd.
Bij een schuifpuzzel is de gegeven tegelindeling de begintoestand, ook als veel andere borden mogelijk zijn.
Berekeningskosten van de heuristiek
De berekeningskosten van de heuristiek zijn het rekenwerk dat nodig is om een schatting voor één toestand te verkrijgen en dat bijdraagt aan de totale zoektijd.
Hogere berekeningskosten van de heuristiek kunnen zwaarder wegen dan een sterke vermindering van het aantal geëxpandeerde toestanden.
Bergkam
Een bergkam is een stijgend landschapskenmerk waarvan de richting moeilijk te volgen is met de beschikbare afzonderlijke lokale stappen.
Een bergkam kan een heuvelklimalgoritme blokkeren wanneer elke toegestane directe stap de score verlaagt, ondanks betere toestanden verderop.
Bidirectioneel zoeken
Bidirectioneel zoeken onderzoekt de ruimte voorwaarts vanaf de start en achterwaarts vanaf een doel en zoekt een verbinding tussen de twee zoekopdrachten.
Bidirectioneel zoeken kan werk besparen op een kaart met wegen in beide richtingen als elke zoekopdracht ongeveer de helft van de routediepte bereikt.
Boomzoeken
Boomzoeken onderzoekt paden zonder globale tabel met bereikte toestanden en controleert soms alleen op herhaalde toestanden op het huidige pad.
Boomzoeken kan een kruispunt via een nieuwe route opnieuw bezoeken nadat de eerdere route is verlaten.
Breedte-eerst zoeken
Breedte-eerst zoeken expandeert eerst de wachtende knoop met de kleinste diepte en vindt een oplossing met de minste acties door op volgorde van diepte te zoeken.
Breedte-eerst zoeken vindt een netwerkroute met het kleinste aantal verbindingen wanneer elke verbinding als één actie telt.
Bundelzoeken
Bundelzoeken bewaart slechts een beperkt aantal veelbelovende kandidaten en gooit de rest weg, waardoor een noodzakelijke oplossingstak verloren kan gaan.
Bundelzoeken met breedte 3 kan het als vierde gerangschikte pad weggooien, ook als dat later de enige route naar een doel blijkt.
Buurt
Een buurt is de verzameling toestanden die met één toegestane lokale wijziging bereikbaar zijn en bepaalt de directe alternatieven die een zoekmethode kan vergelijken.
Eén dame binnen haar kolom verplaatsen definieert een buurt van 56 toestanden voor een kandidaat van het 8-damesprobleem.

C

Consistente heuristiek
Een consistente heuristiek is nul in doelen en overschrijdt voor elke gerichte actie nooit de kosten van één stap plus de schatting van de opvolger.
Een consistente heuristiek staat A* toe een toestand permanent te sluiten na expansie van het goedkoopste pad ernaartoe.
Contour van de optimale oplossingskosten
Een contour van de optimale oplossingskosten markeert de prioriteitswaarde die gelijk is aan de optimale oplossingskosten en scheidt paden met lagere prioriteitswaarden van duurdere schattingen.
Bij consistentie expandeert A* paden onder de contour van de optimale oplossingskosten en mogelijk enkele paden die daarop liggen.
Cycluscontrole op het huidige pad
Een cycluscontrole op het huidige pad wijst een opvolger af die al onder de voorouders van de huidige knoop voorkomt, zodat een zoekpad zichzelf niet opnieuw bezoekt.
Een cycluscontrole op het huidige pad blokkeert S–A–S maar laat een andere tak later nog wel A via een andere route bereiken.

D

Diepte-eerst zoeken
Diepte-eerst zoeken volgt een diep wachtend pad voordat het alternatieven probeert en gebruikt een stapel of recursieve backtracking om de selectie te sturen.
Diepte-eerst zoeken kan een lange tak onderzoeken voordat het terugkeert naar een doel op slechts twee stappen van de start.
Doelfunctie
Een doelfunctie kent een numerieke kwaliteit toe aan een kandidaattoestand en bepaalt of lokaal zoeken die waarde moet maximaliseren of minimaliseren.
Een doelfunctie die conflicten tussen dames telt, wordt geminimaliseerd, terwijl een functie die veilige paren telt, wordt gemaximaliseerd.
Doeltest
Een doeltest bepaalt of een toestand aan de vereiste voorwaarde voldoet. Die voorwaarde kan één bepaalde toestand of een eigenschap van meerdere toestanden aanduiden.
De doeltest voor het plaatsen van dames controleert of geen enkel paar dames elkaar aanvalt en laat meerdere eindopstellingen toe.
Dominantie
Er is sprake van dominantie wanneer één toelaatbare heuristiek in elke toestand minstens zo groot is als een andere en daarmee consequent een sterkere ondergrens vormt.
De Manhattanafstand domineert het aantal verkeerd geplaatste tegels omdat elke verkeerd geplaatste tegel minstens één zet nodig heeft.
Driehoeksongelijkheid
De driehoeksongelijkheid voor een zoekheuristiek begrenst de huidige schatting door de kosten van één stap plus de schatting van de volgende toestand.
Een kant met kosten 2 van schatting 7 naar schatting 3 schendt de driehoeksongelijkheid die voor consistentie wordt gebruikt.

E

Effectieve vertakkingsfactor
De effectieve vertakkingsfactor is de vertakkingsfactor van een uniforme boom die bij de oplossingsdiepte overeenkomt met een gemeten aantal zoekknopen.
Een effectieve vertakkingsfactor dicht bij 1 beschrijft exploratie die veel smaller is dan een brede ongeïnformeerde zoekopdracht.
Evaluatiefunctie
Een evaluatiefunctie kent de prioriteit toe waarmee wachtende zoekknopen worden geselecteerd, zoals g voor UCS of g + h voor A*.
Als je de evaluatiefunctie van h naar g + h verandert, wordt een dure gulzige omweg minder aantrekkelijk.
Expansie
Bij een expansie worden alle toegestane acties op de toestand van een knoop toegepast en worden kindknopen gegenereerd die de resulterende uitgebreide paden vertegenwoordigen.
De expansie van een hoekpositie in de 8-puzzel genereert twee kinderen omdat de lege plek twee zetten heeft.

F

FIFO-wachtrij
Een FIFO-wachtrij verwijdert vermeldingen in de volgorde waarin ze binnenkwamen, zodat nieuwe zoekknopen wachten achter oudere vermeldingen die al in het zoekfront staan.
Een FIFO-wachtrij houdt nieuw gegenereerde knopen op diepte twee achter de resterende knopen op diepte één bij BFS.
Fitnessfunctie
Een fitnessfunctie geeft een kandidaat van een genetisch algoritme een score zodat selectie de voorkeur kan geven aan succesvollere leden van de populatie.
Een fitnessfunctie die paren dames telt die elkaar niet aanvallen, kent 28 toe aan een opgelost bord van het 8-damesprobleem.
Formulering met volledige kandidaatoplossingen
Een formulering met volledige kandidaatoplossingen maakt van elke toestand een volledig kandidaatantwoord, inclusief kandidaten die nog conflicten bevatten of van lage kwaliteit zijn.
Een formulering met volledige kandidaatoplossingen voor het 8-damesprobleem plaatst alle acht dames voordat een verbeterende zet wordt overwogen.

G

Genetisch algoritme
Een genetisch algoritme zoekt met een populatie gecodeerde kandidaten door herhaaldelijk ouders te selecteren, die te combineren en hun nakomelingen te muteren.
Een genetisch algoritme kan de rij van één dame per kolom coderen als een tekenreeks met acht posities.
Gerelaxeerd probleem
Een gerelaxeerd probleem neemt beperkingen op de oorspronkelijke acties weg terwijl oorspronkelijke oplossingen beschikbaar blijven, waardoor het optimum een veilige ondergrens is.
Muren negeren levert een gerelaxeerd probleem op voor een robot op een rooster die nog steeds steeds één cel horizontaal of verticaal beweegt.
Gesimuleerd afkoelen
Gesimuleerd afkoelen trekt lokale stappen en accepteert soms een slechtere stap, met een kans die wordt bepaald door de omvang van het verlies en de temperatuur.
Gesimuleerd afkoelen kan een lokaal minimum verlaten door een tijdelijke stijging van de kosten van een rooster te accepteren.
Gewogen A*
Gewogen A* gebruikt g + Wh met gewicht W groter dan 1 om de resterende schatting te benadrukken en exacte optimaliteit in te ruilen voor een kostengrens.
Gewogen A* met gewicht 2 en een toelaatbare heuristiek kan een optimale route teruggeven, hoewel de garantie tweemaal de kosten toestaat.
Graafzoeken
Graafzoeken onthoudt bereikte toestanden zodat het overbodige paden kan vermijden en een toestand kan bijwerken wanneer een beter pad wordt ontdekt.
Op een wegenkaart met veel cycli voorkomt graafzoeken dat terugkeer tegen gelijke kosten naar een al bereikte stad wordt geëxpandeerd.
Gulzig beste-eerst zoeken
Gulzig beste-eerst zoeken expandeert de knoop met de kleinste schatting van de resterende kosten en negeert de al gemaakte padkosten.
Gulzig beste-eerst zoeken kan de voorkeur geven aan een dichtbij lijkende bestemming die pas na een dure omweg wordt bereikt.

H

Hemelsbrede afstand
De hemelsbrede afstand tussen twee posities meet hun directe afstand en negeert routebeperkingen zoals wegen of muren.
De hemelsbrede afstand onderschat de wegafstand wanneer een reiziger een bochtige weg rond een meer moet volgen.
Heropening
Bij heropening wordt een geëxpandeerde toestand opnieuw in overweging genomen nadat een goedkoper pad die bereikt, zodat de verbetering latere paden kan beïnvloeden.
A* kan heropening nodig hebben wanneer een toelaatbare maar inconsistente heuristiek laat een betere route aan het licht brengt.
Heuristiek van verkeerd geplaatste tegels
De heuristiek van verkeerd geplaatste tegels telt genummerde puzzeltegels buiten hun doelvelden, zonder de lege plek mee te tellen of rekening te houden met de afstand die elke tegel moet afleggen.
De heuristiek van verkeerd geplaatste tegels geeft 1 voor één verkeerd geplaatste genummerde tegel, ongeacht de afstand tot het doel.
Heuristische functie
Een heuristische functie schat de laagste resterende kosten van een toestand naar een doel en levert domeinkennis om zoekprioriteiten te sturen.
Een heuristische functie kan hemelsbrede kilometers geven als schatting van een ondergrens voor de resterende wegafstand.
Heuvelklimmen
Heuvelklimmen selecteert herhaaldelijk een betere buurtoestand en stopt wanneer de regel geen verbetering toestaat, zonder een volledige route door de ruimte te plannen.
Strikt heuvelklimmen stopt bij kosten 4 als alle buurtoestanden minstens 4 kosten, ook als een verder gelegen toestand nul kost.
Heuvelklimmen met de eerste verbetering
Heuvelklimmen met de eerste verbetering trekt buurtoestanden afzonderlijk en accepteert de eerste verbetering, zodat de hele buurt niet hoeft te worden beoordeeld.
Heuvelklimmen met de eerste verbetering is bruikbaar wanneer een kandidaat duizenden mogelijke kleine wijzigingen heeft om te onderzoeken.

I

IDA*
IDA* herhaalt zoekopdrachten volgens diepte-eerst zoeken die door de geschatte totale kosten zijn begrensd en verhoogt elke grens tot de kleinste waarde die boven de vorige grens werd weggesnoeid.
IDA* kan van grens 8 naar grens 11 gaan wanneer 11 de kleinste uitgesloten prioriteitswaarde was.
Impliciete toestandsruimte
Een impliciete toestandsruimte wordt gespecificeerd met een begintoestand en regels om opvolgers te genereren, in plaats van met een opgeslagen lijst van alle toestanden.
De 15-puzzel gebruikt een impliciete toestandsruimte omdat het opsommen van alle bereikbare borden enorm veel opslag zou vereisen.

K

Kostengrens
Een kostengrens beperkt hoe duur een teruggegeven oplossing mag zijn, zonder te vereisen dat de kosten gelijk zijn aan het optimum of aan de grens zelf.
De kostengrens van gewogen A*, W keer C*, staat nog steeds toe dat een uitvoering het exacte optimum vindt.
Kostenoptimaliteit
Kostenoptimaliteit is de garantie dat een teruggegeven oplossing de laagste totale padkosten heeft van alle oplossingen voor het zoekprobleem.
BFS is kostenoptimaal bij zetten met kosten één, maar kan een dure route kiezen wanneer wegafstanden verschillen.
Kruising
Een kruising combineert delen van twee oudercoderingen om kinderen te vormen en kan daarbij bruikbare bouwstenen behouden terwijl nieuwe combinaties ontstaan.
Een kruising na positie vier verbindt de eerste vier damesrijen van de ene ouder met de laatste vier van de andere ouder.

L

Late doeltest
Een late doeltest controleert een knoop wanneer die uit het zoekfront wordt verwijderd en behoudt zo de ordening van de wachtrij bij de beslissing om te stoppen.
De late doeltest voorkomt dat UCS een duur direct doel accepteert voordat een goedkopere omweg is onderzocht.
LIFO-stapel
Een LIFO-stapel verwijdert de laatst toegevoegde vermelding als eerste, zodat nieuw gegenereerde kinderen vóór oudere wachtende alternatieven beschikbaar zijn.
Een LIFO-stapel laat DFS doorgaan in een kindtak terwijl de andere kinderen van de wortel blijven wachten.
Lokaal bundelzoeken
Lokaal bundelzoeken voegt de buurtoestanden van meerdere bewaarde toestanden samen en selecteert daaruit een nieuwe groep, zodat kandidaten voortgang delen.
Lokaal bundelzoeken kan meerdere kinderen van één veelbelovende ouder bewaren en geen van een andere ouder.
Lokaal optimum
Een lokaal optimum is een toestand waarvan de nabije alternatieven geen betere waarde bieden, ook al kan elders een betere toestand bestaan.
Een heuvelklimalgoritme kan stoppen bij een lokaal optimum met twee conflicten tussen dames terwijl een conflictvrije opstelling bestaat.
Lokaal zoeken
Lokaal zoeken verbetert één of enkele kandidaattoestanden met kleine wijzigingen en gooit meestal de reeks wijzigingen weg die ze heeft opgeleverd.
Lokaal zoeken kan een volledig rooster verbeteren terwijl het slechts een klein aantal kandidaatroosters bewaart.

M

Manhattanafstand
De Manhattanafstand telt absolute horizontale en verticale verschillen op en geeft een afstand zonder obstakels voor horizontale en verticale stappen van één eenheid.
Voor een tegel die twee rijen en drie kolommen van zijn doel verwijderd is, draagt de Manhattanafstand vijf bij aan de puzzelschatting.
Mutatie
Een mutatie verandert een afzonderlijke positie in een kandidaatcodering en voegt variatie toe naast de combinaties die via kruising worden overgeërfd.
Een mutatie kan de gecodeerde rij van één dame veranderen terwijl de andere zeven kolomwaarden intact blijven.

O

Ongeïnformeerd zoeken
Ongeïnformeerd zoeken gebruikt de toegestane acties, doelen en kosten van het probleem zonder de laagste resterende kosten naar een doel te schatten.
Zoeken op oplopende padkosten is ongeïnformeerd zoeken, ook al ordent het paden zorgvuldig op hun opgetelde kosten.
Oplossing met de kleinste diepte
Een oplossing met de kleinste diepte gebruikt de minste acties om een doel te bereiken, zonder noodzakelijk de laagste som van ongelijke actiekosten te hebben.
Een oplossing met de kleinste diepte en twee lange wegen kan meer kilometers kosten dan een route met drie korte wegen.
Oplossingsdiepte
De oplossingsdiepte is het aantal acties van de wortel naar een doelknoop; de kleinste oplossingsdiepte wordt gewoonlijk aangeduid met d.
Een oplossingsdiepte van 3 beschrijft drie acties, ongeacht of die acties 3 of 30 eenheden kosten.
Optimale efficiëntie
Optimale efficiëntie beschrijft het voordeel van A* in noodzakelijke expansies ten opzichte van vergelijkbare voorwaartse zoekmethoden met dezelfde consistente heuristiek, afgezien van gelijke waarden.
Optimale efficiëntie betekent niet dat A* altijd de kortste rekentijd heeft wanneer het berekenen van de heuristiek duur is.
Overgangsmodel
Een overgangsmodel specificeert de resulterende toestand nadat een toegestane actie op een bepaalde huidige toestand is toegepast.
In een schuifpuzzel verwisselt het overgangsmodel de lege plek met de tegel ernaast wanneer de lege plek naar links beweegt.

P

Padkosten
Padkosten zijn de som van de actiekosten langs een pad. Ze worden gebruikt om volledige en gedeeltelijke routes tijdens het zoeken te vergelijken.
Een route met drie wegen en actiekosten van 2, 3 en 4 km heeft padkosten van 9 km.
Patroondatabase
Een patroondatabase slaat exacte kosten van geselecteerde deelproblemen op, die vooraf zijn berekend zodat een volledige zoekopdracht ondergrenzen kan opzoeken.
Een patroondatabase kan tegels 1 tot en met 4 volgen terwijl andere genummerde tegels als onderling uitwisselbaar worden behandeld.
Plateau
Een plateau is een aaneengesloten gebied met gelijke waarde van de doelfunctie, dat geen verbeterende uitgang hoeft te hebben of een schouder met zo'n uitgang kan zijn.
Zijwaartse stappen kunnen een plateau oversteken, maar kunnen ook toestanden met gelijke waarde opnieuw bezoeken zonder voortgang te boeken.
Positieve ondergrens voor de actiekosten
Een positieve ondergrens voor de actiekosten is een vaste waarde boven nul waaronder geen actiekosten vallen, waardoor het aantal stappen binnen begrensde padkosten wordt beperkt.
Een positieve ondergrens voor de actiekosten van 2 betekent dat een pad dat maximaal 10 kost hoogstens vijf acties kan bevatten.
Prioriteitswachtrij
Een prioriteitswachtrij selecteert een vermelding met de beste prioriteitswaarde, zodat zoeken op basis van kosten het goedkoopste wachtende pad kan kiezen.
Een prioriteitswachtrij kan bij UCS een nieuw ingevoegde route met kosten 3 vóór een oudere route met kosten 8 verwijderen.

R

Recursief beste-eerst zoeken
Recursief beste-eerst zoeken gebruikt opslag ter grootte van een pad en vastgelegde alternatieve prioriteiten om te bepalen wanneer het terugkeert en een andere tak opnieuw bezoekt.
Recursief beste-eerst zoeken kan een verlaten deelboom opnieuw genereren nadat het opgeslagen alternatief de meest veelbelovende route is geworden.
Ruimtecomplexiteit
De ruimtecomplexiteit van een zoekopdracht beschrijft de maximale hoeveelheid bewaarde informatie, inclusief wachtende paden en eventuele opgeslagen gegevens over bereikte toestanden.
De ruimtecomplexiteit van BFS wordt kostbaar wanneer een brede laatste laag miljoenen knopen in het zoekfront houdt.

S

SMA*
SMA* gebruikt het beschikbare geheugen voor het zoeken, verwijdert bij een vol geheugen de slechtste bladeren van het zoekfront en slaat hun teruggegeven waarden op om ze later opnieuw te genereren.
SMA* heeft ruimte nodig voor een optimaal oplossingspad om zijn optimaliteitsgarantie met een toelaatbare heuristiek te behouden.
Stochastisch heuvelklimmen
Stochastisch heuvelklimmen kiest willekeurig uit verbeterende stappen en kan grotere verbeteringen een grotere selectiekans geven.
Stochastisch heuvelklimmen kan een kleinere verbetering kiezen, ook als een steilere verbeterende buurtoestand beschikbaar is.

T

Temperatuur
De temperatuur is de positieve parameter die bepaalt hoeveel slechtere stappen gesimuleerd afkoelen verdraagt, waarbij hogere waarden meer exploratie toestaan.
Bij een vaste kostentoename maakt een daling van de temperatuur van 10 naar 1 acceptatie veel minder waarschijnlijk.
Toelaatbare heuristiek
Een toelaatbare heuristiek is een niet-negatieve schatting die de werkelijke laagste resterende kosten nooit overschrijdt en daarom nul is in een doel.
Een toelaatbare heuristiek met waarde nul is veilig voor A*, maar biedt geen verdere sturing dan zoeken op oplopende padkosten.
Toestand
Een toestand beschrijft één mogelijke situatie in een probleem, inclusief de informatie die nodig is om toegestane acties en hun resultaten te bepalen.
De toestand van een robot kan zowel zijn locatie omvatten als de vraag of hij de sleutel draagt die nodig is om een deur te openen.

V

Vertakkingsfactor
De vertakkingsfactor is het aantal beschikbare opvolgers van een knoop, waarbij grenzen voor het slechtste geval het grootste aantal gebruiken.
Een vertakkingsfactor van 4 kan 16 paden op diepte twee opleveren voordat controle op duplicaten overlappingen verwijdert.
Verzameling bereikte toestanden
Een verzameling bereikte toestanden legt gegenereerde toestanden en hun beste bekende knopen vast, inclusief toestanden in het zoekfront en al geëxpandeerde toestanden.
UCS raadpleegt de verzameling bereikte toestanden wanneer een tweede route naar een stad de opgeslagen kosten mogelijk verbetert.
Volledigheid
Volledigheid is de garantie dat een algoritme een oplossing vindt wanneer die bestaat, onder de genoemde voorwaarden voor zijn zoekruimte.
BFS is volledig bij eindige vertakking omdat uiteindelijk elke laag op eindige diepte wordt bereikt.
Voorafgaande berekening
Een voorafgaande berekening voert herbruikbaar werk uit vóór afzonderlijke zoekopdrachten en ruilt voorafgaande tijd en opslag in voor snellere latere schattingen.
De voorafgaande berekening van een patroondatabase is eenvoudiger te rechtvaardigen wanneer veel puzzels dezelfde doelindeling delen.
Voorganger
Een voorganger van een toestand is een toestand van waaruit een actie die toestand kan bereiken en die zo een omgekeerde overgang voor achterwaarts zoeken biedt.
Op een gerichte kaart heeft een voorganger van stad Z een weg naar Z, ook als er geen weg terug vanuit Z loopt.
Vroege doeltest
Een vroege doeltest controleert een knoop wanneer die wordt gegenereerd, zodat BFS na controle van de wortel kan stoppen bij het eerste nieuw gegenereerde doel.
Een vroege doeltest laat BFS stoppen voordat het het uiteindelijke doel expandeert of een diepere laag genereert.

W

Werkelijke resterende kosten
De werkelijke resterende kosten zijn de laagste werkelijke kosten om vanuit een toestand een doel te bereiken en vormen de referentiewaarde voor toelaatbaarheid.
Een heuristische waarde van 9 overschat als de werkelijke resterende kosten 7 zijn, ook als de meeste andere schattingen nauwkeurig zijn.
Willekeurige herstart
Een willekeurige herstart begint een nieuwe lokale zoekopdracht vanuit een nieuw getrokken toestand en biedt zo een nieuwe kans om een bruikbaar zoekgebied te bereiken.
Een willekeurige herstart kan een slecht gebied verlaten nadat strikt heuvelklimmen bij een lokaal optimum is gestopt.

Z

Zijwaartse stap
Een zijwaartse stap verandert de huidige toestand zonder de waarde van de doelfunctie te veranderen, zodat lokaal zoeken zich over een vlak gebied kan bewegen.
Een beleid met begrensde zijwaartse stappen kan een heuvelklimalgoritme helpen een schouder over te steken zonder eindeloos rond te dwalen.
Zoeken met backtracking
Zoeken met backtracking onderzoekt steeds één opvolger en keert terug naar eerdere keuzes wanneer een tak eindigt, waarbij alleen een pad van toestanden wordt bewaard.
Zoeken met backtracking voorkomt dat alle zusterknopen tegelijk worden opgeslagen wanneer een toestand veel mogelijke opvolgers heeft.
Zoeken met een dieptelimiet
Zoeken met een dieptelimiet is exploratie volgens diepte-eerst zoeken die doelen herkent maar knopen voorbij een bepaalde dieptebegrenzing niet expandeert.
Zoeken met dieptelimiet 4 kan geen doel bereiken waarvoor minstens zes acties vanaf de wortel nodig zijn.
Zoeken met iteratieve verdieping
Zoeken met iteratieve verdieping herhaalt zoeken met een dieptelimiet en steeds grotere limieten om oplossingen met de kleinste diepte te combineren met de opslag van diepte-eerst zoeken.
Zoeken met iteratieve verdieping kan een puzzel met gelijke kosten oplossen zonder het volledige zoekfront van breedte-eerst zoeken te bewaren.
Zoeken op oplopende padkosten
Zoeken op oplopende padkosten expandeert de knoop met de laagste opgetelde padkosten en geeft een doel terug wanneer het uit het zoekfront wordt verwijderd.
Zoeken op oplopende padkosten kan de gegevens van een wachtende stad verbeteren nadat een goedkopere route via een andere stad is ontdekt.
Zoekfront
Het zoekfront, ook wel de grensverzameling genoemd, is de verzameling gegenereerde knopen die erop wachten om voor expansie te worden geselecteerd.
Na expansie van de start bevat het zoekfront de nieuw gegenereerde opvolgers die op hun beurt wachten.
Zoekknoop
Een zoekknoop vertegenwoordigt een bepaald pad naar een toestand en slaat de toestand, ouder, inkomende actie en opgetelde padkosten op.
Twee zoekknopen kunnen in dezelfde stad eindigen terwijl ze verschillende routes en kosten vastleggen.

Over deze les

Door StudeliFout melden

Maak je eigen Studiemateriaal

Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.

Aan de slag