Оқытушы пәнінің ОҚУ-Әдістемелік кешені



жүктеу 5,01 Kb.
Pdf просмотр
бет31/45
Дата23.05.2018
өлшемі5,01 Kb.
#16673
1   ...   27   28   29   30   31   32   33   34   ...   45

үшінші жолындағы қадамдардың толық саны (WG(n) орындаған қадамдарды 
ескермегенде),  бұл  процедураның  барлық  қатынаулары n ретті  болады, m- 
қабырғалар саны. Бұл O(n+m) алгоритмінің жалпы күрделілігін береді. 
Графтағы  алгоритмдерді  құруда  тереңдікке  іздеу  үлкен  роль 
атқаратындықтан, WG процедурасының  рекурсивтік емес нұсқасын көрсете 
кетейік. 
Рекурсиядан  құтылудың  стандартты  әдісі – стекті  қолдану  болып 
табылады.  Әрбір  қарастырылған  шың  стекке  енгізіледі,  ал  қолданылғаннан 
кейін стектен жойылады. 
{WG процедурасының  рекурсивтік емес нұсқасы; 
Іздеу  басында P[u] - әрбір u шыңы  үшін  ТІЗІМ[u]  тізімінің 1-ші 
жазбасына сілтеме болсын; 
Р, ЖАҢА массивтері- глобалды} 
1   PROCEDURE WGl(v); 
{v шыңынан бастап графтағы тереңдікке іздеу} 
2   BEGIN СТЕК := 0; СТЕК <= v; v қарастыру; ЖАҢА [v] := false; 
3   WHILE CTEK ≠ 0 DO 
4  BEGIN t := top(CTEK); {t-стектің  жоғарғы  элементі} {ТІЗІМ [t] 
тізімінен бірінші жаңа шыңды табу} 
5      IF P[t]= nil THEN b:=false 
6           ELSE b := not ЖАҢА [Р[t]^.жол]; 
7     WHILE b DO BEGIN 
8         P[t]:=Р[t]^.келес; 
9        IF P[t]=nil THEN b := false 
10       ELSE b :=not ЖАҢА ТP[t]^.жол] 
11    END; 
12     IF P[t]≠nil THEN {жаңа шың табылды} 
13       BEGIN t := Р[t]^.жол; СТЕК <=t; 
14         t қарастыру; ЖАҢА [t] := false 
15    END 
16     ELSE {t шыңы қолданылды} 
17       t<=CTEK {стектің жоғарғы элементін жою} 
18    END 
19 END 
Ескерту.  Дөңгелек  жақшада  графтың  шыңдарын  тереңдікке  іздеу 
процесі кезіндегі қарастырылу реті бойынша номерлейміз. 


 
Әдіс  бағытталған  графтарға  да  оңай  қолданылады.  Бұл  жағдайда  да 
WG(v) және WGl(v) процедураларына қатынауының нәтижесі O(n+m) қадам 
ішінде барлық шыңдарды, және v-ден  u-ға апаратын жолы да бар шыңдарды 
өтетіндігі болып табылады. 
Сөйтіп,  тереңдікке  іздеу  кезінде  неғұрлым  шыңға  кештеу  барса,  ол 
шың  соғұрлым  тезірек  қолданылады.  Бұл  қарастырылған,  бірақ 
қолданылмаған шыңдар стекте жиналып қалатындығымен байланысты. 
 
  Графтағы кеңдікке іздеу 
Графтан  іздеудің  басқа  әдісі – кеңдікке  іздеуді (breadth first search) 
қарастырайық.  Бұл  әдіс  стекті  кезекке  алмастыруға  негізделген.  Бұл 
жағдайда  шыңға  неғұрлым  ертерек  баратын  болсақ,  ол  соғұрлым  ертерек 
қолданылады  (кезектен  жойылады).  Шыңды  қолдану  оның  көршілес  екі 
қарастырылмаған шыңын қарастыру арқылы жүзеге асады. 
1   PROCEDURE WS(v); 
{ v шыңынан басталатын графтан кеңдікке іздеу; 
ЖАҢА, ТІЗІМ айнымалылары - глобалды} 
2   BEGIN 
3     КЕЗЕК := 0; КЕЗЕК <= v; ЖАҢА [v] := false; 
4     WHILE КЕЗЕК := 0 DO begin 
5        Р<= КЕЗЕК; р-ға бару; 
6      FOR u€ ТІЗІМ [р] DO 
7       IF ЖАҢА [u] THEN BEGIN 
8          КЕЗЕК <= u; ЖАҢА [u]:=false 
9         
 
END 
10       
END 
 11     END 
Тереңдікке іздеуде сияқты WS(v) процедурасына қатынау v шыңы бар 
граф байланыстылығы компонентасының барлық шыңдарына баруға әкеледі, 
әрбір  шың  бір  рет  қана  қарастырылады.  Алгоритмнің  есептелу  күрделілігі 
m+n ретіне ие, өйткені әрбір шың кезекке орнатылып, кезектен бір рет қана 
жойылады,  ал  цикл  итерацияларының 6 саны  граф  қабырғаларының  ретін 
білдіреді. 


Графтан іздеудің екі әдісі де – тереңдікке және кеңдікке – орнатылған v 
және  u шыңдарының арасындағы жолды табуда қолданыла алады. Ол үшін 
графтан іздеуді v шыңынан бастап, u шыңына дейін жүргізу керек. 
Тереңдікке  іздеудің  артықшылығы:  шыңға  бару  кезінде  стекте v 
шыңынан  бастап u шыңына  дейінгі  жолды  анықтайтын  шыңдар  тізбегі 
орнатылады. 
Кемшілігі:  осылай  алынған  жол  жалпы  жағдайда  ең  қысқа  бола 
алмайды. 
Бұл 
кемшіліктен 
арылуға 
болады, 
егер 
кеңдікке 
іздеудің 
модернизацияланған алгоритмін қолдансақ. 
7-9  жолдарды  мынаған  алмастыра  отырып, WS процедурасын 
модификациялаймыз 
IF ЖАҢА[u] THEN BEGIN 
КЕЗЕК <= u; ЖАҢА [u]:= false; 
АЛДЫҢҒЫ [u]:=Р 
END 
Модификацияланған  процедураның  жұмысы  аяқталғанда,  АЛДЫҢҒЫ 
кестесі әрбір u  шыңы үшін құрамында u-ға апаратын АЛДЫҢҒЫ[u] шыңы 
болады. Математикалық индукция әдісімен бұл кесте шындығында да әрбір 
қарастырылған  шыңнан  бастапқы v шыңына  дейінгі  ең  қысқа  жолды 
анықтайтындығын  көрсетуге  болады.  Тік  жақшада  графтың  шыңдарын 
кеңдікке іздеу процесі кезіндегі қарастырылу реті бойынша номерлейміз. 
Тереңдікке  іздеуде  сияқты WS процедурасын  ТІЗІМ[v], v€V, 
инциденттілік  тізімдері  қандай  да  бір  бағытталған  графты  анықтағанда  да 
модификацияларсыз да қолдануға болады. Онда біз іздеуді бастаған шыңнан 
сол шыңдарға дейін апаратын жолы бар шыңдар ғана қарастырылады. 
 
 
Керуші ағаштар
 
(каркастар)
 
Ағаш  деп  ерікті  бағытталмаған  циклсіз  байланысқан  графтарды 
атайтындығымызды  еске  алайық. G =   ерікті  бағытталмаған  графы 
үшін  әрбір   ағашы  керуші  ағаш  немесе G графының  каркастар  деп 
аталады,  мұндағы  Т    Е.  Мұндай  графтың  (ағаштың)  қабырғаларын  бұтақ 
деп, ал G графының қалған қабырғаларын хордалар деп атаймыз. 

n шыңы бар әрбір ағаштың n-1 бұтағы бар. (Тамырынан басқа барлық 
шыңдарға бір ғана қабырға кіреді. 
Керуші  ағаштарды  а)  және  б)  әдістерімен (29-сур.)  құруға  болатын 
граф болсын делік. 
 


жүктеу 5,01 Kb.

Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   45




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау