Ця стаття не містить . (листопад 2016) |
У комп'ютерних науках, пошук по графу (або обхід графа) це процес проходження (перевірки або оновлення) кожної вершини графа. Такі алгоритми пошуку класифікують відповідно до порядку проходження вершин. Пошук по дереву є особливим випадком пошуку по графу.
Надмірність
На відміну від пошуку по дереву, пошук по графу може потребувати проходження деяких вершин більше ніж один раз, оскільки не обов'язково є відомості, при переході на вершину, що вона вже була перевірена. З тим як граф стає більш щільним, ця надмірність стає проявлятись більше, що призводить до збільшення необхідного часу на обчислення.
Таким чином, зазвичай краще запам'ятовувати які вершини було вже пройдено алгоритмом, так щоб вершини не перевірялися часто, якщо це можливо (або таке запам'ятовування дозволяє уникнути найгіршої поведінки — нескінченного пошуку по циклу). Це можна зробити за допомогою асоціації з кожною вершиною «колір» або стан «проходження» вершини під час пошуку, який потім помічається і оновлюється алгоритмом при проходженні кожної вершини графа.
Якщо вершина вже була пройдена, вона ігнорується і пошук у цьому напрямі далі не продовжується; якщо ні, алгоритм перевіряє й оновлює вершини і йде далі шляхом пошуку.
Алгоритми пошуку по графу
Пошук у глибину
Пошук у глибину по графу, це алгоритм проходження скінченного графа. Алгоритм проходить наступні дочірні вершини, перш ніж буде проходити вершини того ж рівня; таким чином, він проходить граф у глибину спершу ніж буде проходити вершини в ширину. Стек (зазвичай це програмний стек виклику при роботі з рекурсією) є основним вузьким місцем при використанні цього алгоритму.
Алгоритм починає пошук із вибраної вершини «кореня»; і потім в ітеративному порядку проходить від поточної вершини до наступної, невідвіданої вершини, до тих пір доки він не може більше знайти не дослідженої вершини для переходу кудись. Алгоритм потім здійснює рух назад по вже пройденим вершинам, доки не знайде наступну вершину, що ще не була пройдена. Тоді він пройде новий маршрут пошуку як у попередньому кроці, рухаючись назад кожного разу доки не зустріне кінець, і закінчить пошук лише коли рух назад призвів знов до вершини «кореня», що була на самому початку.
Пошук у ширину
Пошук у ширину це інша техніка пошуку по скінченному графу. Цей алгоритм проходить суміжні вершини перш ніж переходити до дочірніх вершин, і як процес пошуку використовується черга. Цей алгоритм часто використовується для пошуку найкоротшого шляху від одної вершини до іншої.
Примітки
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno listopad 2016 U komp yuternih naukah poshuk po grafu abo obhid grafa ce proces prohodzhennya perevirki abo onovlennya kozhnoyi vershini grafa Taki algoritmi poshuku klasifikuyut vidpovidno do poryadku prohodzhennya vershin Poshuk po derevu ye osoblivim vipadkom poshuku po grafu NadmirnistNa vidminu vid poshuku po derevu poshuk po grafu mozhe potrebuvati prohodzhennya deyakih vershin bilshe nizh odin raz oskilki ne obov yazkovo ye vidomosti pri perehodi na vershinu sho vona vzhe bula perevirena Z tim yak graf staye bilsh shilnim cya nadmirnist staye proyavlyatis bilshe sho prizvodit do zbilshennya neobhidnogo chasu na obchislennya Takim chinom zazvichaj krashe zapam yatovuvati yaki vershini bulo vzhe projdeno algoritmom tak shob vershini ne pereviryalisya chasto yaksho ce mozhlivo abo take zapam yatovuvannya dozvolyaye uniknuti najgirshoyi povedinki neskinchennogo poshuku po ciklu Ce mozhna zrobiti za dopomogoyu asociaciyi z kozhnoyu vershinoyu kolir abo stan prohodzhennya vershini pid chas poshuku yakij potim pomichayetsya i onovlyuyetsya algoritmom pri prohodzhenni kozhnoyi vershini grafa Yaksho vershina vzhe bula projdena vona ignoruyetsya i poshuk u comu napryami dali ne prodovzhuyetsya yaksho ni algoritm pereviryaye j onovlyuye vershini i jde dali shlyahom poshuku Algoritmi poshuku po grafuPoshuk u glibinu Poshuk u glibinu po grafu ce algoritm prohodzhennya skinchennogo grafa Algoritm prohodit nastupni dochirni vershini persh nizh bude prohoditi vershini togo zh rivnya takim chinom vin prohodit graf u glibinu spershu nizh bude prohoditi vershini v shirinu Stek zazvichaj ce programnij stek vikliku pri roboti z rekursiyeyu ye osnovnim vuzkim miscem pri vikoristanni cogo algoritmu Algoritm pochinaye poshuk iz vibranoyi vershini korenya i potim v iterativnomu poryadku prohodit vid potochnoyi vershini do nastupnoyi nevidvidanoyi vershini do tih pir doki vin ne mozhe bilshe znajti ne doslidzhenoyi vershini dlya perehodu kudis Algoritm potim zdijsnyuye ruh nazad po vzhe projdenim vershinam doki ne znajde nastupnu vershinu sho she ne bula projdena Todi vin projde novij marshrut poshuku yak u poperednomu kroci ruhayuchis nazad kozhnogo razu doki ne zustrine kinec i zakinchit poshuk lishe koli ruh nazad prizviv znov do vershini korenya sho bula na samomu pochatku Poshuk u shirinu Poshuk u shirinu ce insha tehnika poshuku po skinchennomu grafu Cej algoritm prohodit sumizhni vershini persh nizh perehoditi do dochirnih vershin i yak proces poshuku vikoristovuyetsya cherga Cej algoritm chasto vikoristovuyetsya dlya poshuku najkorotshogo shlyahu vid odnoyi vershini do inshoyi Primitki