V informatice je Beam Search heuristický vyhledávací algoritmus , který zkoumá graf rozšiřováním slibných uzlů v omezené množině. Beam search je optimalizace vyhledávání první nejlepší shody , která snižuje požadavky na paměť. První vyhledávání s nejlepší shodou je vyhledávání v grafu, které seřadí všechna konkrétní řešení (stavy) podle nějaké heuristiky. Ale při vyhledávání paprsků je jako kandidáti uložen pouze předem určený počet nejlepších dílčích řešení [1] . Jedná se tedy o chamtivý algoritmus .
Termín hledání paprskem zavedl Raj Reddy z Carnegie Mellon University v roce 1977 [2] .
Beam search používá k vytvoření svého vyhledávacího stromu prohledávání šířky . Na každé úrovni stromu vygeneruje všechny následníky stavu na aktuální úrovni a seřadí je vzestupně podle heuristických nákladů [3] . Ukládá však pouze předem stanovený počet nejlepších stavů na každé úrovni (tzv. šířka paprsku). Dále jsou rozvinuty pouze tyto stavy. Čím větší je šířka paprsku, tím méně stavů je odstraněno. S nekonečnou šířkou paprsku se nezruší žádné stavy a prohledávání paprskem je totožné s prohledáváním do šířky. Šířka paprsku omezuje množství paměti potřebné k provedení vyhledávání. Protože cílový stav může být potenciálně redukován, ray search obětuje úplnost (záruku, že algoritmus skončí s řešením, pokud nějaké existuje). Hledání pomocí paprsku není optimální (to znamená, že neexistuje záruka, že bude nalezeno nejlepší řešení) [4] .
Beam search se nejčastěji používá k zajištění správy ve velkých systémech s nedostatečnou pamětí pro uložení celého vyhledávacího stromu [5] . Například byl použit v mnoha systémech strojového překladu [6] . (Za současného stavu techniky se nyní používají hlavně metody založené na neuronovém strojovém překladu .) Aby bylo možné vybrat nejlepší překlad, je každá část zpracována a objevuje se mnoho různých způsobů překladu slov. Nejlepší překlady podle jejich větné struktury jsou zachovány a ostatní jsou vyřazeny. Překladatel poté vyhodnotí překlady podle daného kritéria a vybere překlad, který nejlépe odpovídá cílům. První použití paprskového vyhledávání bylo v Harpy's Speech Recognition System, CMU 1976 [7] .
Prohledávání paprskem bylo provedeno výhradně jeho kombinací s vyhledáváním na hloubku , což vedlo k prohledávání zásobníku paprsků [8] , vyhledávání paprsku do hloubky [5] a s omezeným vyhledáváním rozdílů [9] , což vede k vyhledávání paprskem pomocí omezeného zpětného sledování . nekonzistence [5] (BULB [10] ). Výsledné vyhledávací algoritmy jsou algoritmy kdykoliv, které rychle najdou dobrá, ale pravděpodobně neoptimální řešení, jako je vyhledávání paprsků, pak se vrátí a pokračují v hledání lepších řešení, dokud nedosáhnou optimálního řešení.
V kontextu lokálního vyhledávání nazýváme paprskovým lokálním vyhledáváním konkrétní algoritmus, který začíná výběrem náhodně generovaných stavů a poté pro každý vždy zvažuje na úrovni vyhledávacího stromu nové stavy mezi všemi možnými nástupci aktuálních stavů, dokud nedosáhne cíle [ 11] [12] .
Protože vyhledávání lokálního svazku často končí na lokálních maximech, obvyklým řešením je vybrat další stavy náhodně s pravděpodobností závisející na heuristickém odhadu stavů. Tento druh vyhledávání se nazývá stochastické vyhledávání paprskem [13] .
Dalšími možnostmi jsou flexibilní vyhledávání paprskem a rekonstrukční vyhledávání paprskem [12] .
Algoritmy vyhledávání grafů | ||
---|---|---|
Neinformované metody | ||
Informované metody | ||
Zkratky | ||
Minimální kostra | ||
jiný |