Ôåäåðàëüíîå àãåíòñòâî ïî îáðàçîâàíèþ Ãîñóäàðñòâåííîå îáðàçîâàòåëüíîå ó÷ðåæäåíèå âûñøåãî ïðîôåññèîíàëüíîãî îáðàçîâàíèÿ "Ï...
732 downloads
420 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Ôåäåðàëüíîå àãåíòñòâî ïî îáðàçîâàíèþ Ãîñóäàðñòâåííîå îáðàçîâàòåëüíîå ó÷ðåæäåíèå âûñøåãî ïðîôåññèîíàëüíîãî îáðàçîâàíèÿ "Ïåíçåíñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò"
Ë. Í. Äîìíèí
ÝËÅÌÅÍÒÛ ÒÅÎÐÈÈ ÃÐÀÔΠÓ÷åáíîå ïîñîáèå
Ïåíçà Èçäàòåëüñòâî Ïåíçåíñêîãî ãîñóäàðñòâåííîãî óíèâåðñèòåòà 2007
ÓÄÊ 519.1 Ä66 Ðåöåíçåíòû: Êàôåäðà "Åñòåñòâåííî-íàó÷íûå äèñöèïëèíû" ÃÎÓÂÏÎ "Ðîññèéñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò èííîâàöèîííûõ òåõíîëîãèé è ïðåäïðèíèìàòåëüñòâà" (Ïåíçåíñêèé ôèëèàë) Êàíäèäàò ôèçèêî-ìàòåìàòè÷åñêèõ íàóê, äîöåíò êàôåäðû "Âûñøàÿ ìàòåìàòèêà" ÃÎÓÂÏÎ "Âñåðîñèéñêèé çàî÷íûé ôèíàíñîâî-ýêîíîìè÷åñêèé èíñòèòóò" Þ. Í. Çàâàðîâñêèé
Äîìíèí, Ë. Í. Ä66
Ýëåìåíòû òåîðèè ãðàôîâ: ó÷åá. ïîñîáèå / Ë. Í. Äîìíèí. Ïåíçà: Èçä-âî Ïåíç. ãîñ. óí-òà, 2007. 144 ñ.: 75 èë., 13 òàáë., áèáëèîãð. 18 íàçâ. Êíèãà ïîñâÿùåíà òåîðèè ãðàôîâ è ñîñòîèò èç ïÿòè ðàçäåëîâ.  ïåðâîì äàíû îñíîâíûå ïîíÿòèÿ è îïðåäåëåíèÿ òåîðèè ãðàôîâ, ðàññìîòðåíû âèäû ãðàôîâ è ñïîñîáû èõ îïèñàíèÿ. Âòîðîé ðàçäåë ïîñâÿùåí âîïðîñó î ñâÿçíîñòè îðèåíòèðîâàííûõ ãðàôîâ. Âàæíåéøèé âèä ãðàôîâ äåðåâüÿ ðàññìîòðåí â òðåòüåì ðàçäåëå. Ðàçîáðàíû çàäà÷è îïèñàíèÿ è ïåðåñ÷åòà äåðåâüåâ, à òàêæå çàäà÷à î êðàò÷àéøåì îñòîâå. ×åòâåðòûé ðàçäåë ïîñâÿùåí âîïðîñàì ïåðåñ÷åòà è ïåðå÷èñëåíèÿ ïóòåé â ãðàôàõ. Çäåñü æå ïðèâåäåíû ðàçëè÷íûå âàðèàíòû çàäà÷è î êðàò÷àéøåì ïóòè è àëãîðèòìû åå ðåøåíèÿ.  ïÿòîì ðàçäåëå ðàññìàòðèâàþòñÿ ôóíäàìåíòàëüíûå, ýéëåðîâû è ãàìèëüòîíîâû öèêëû. Ðàçáèðàþòñÿ óñëîâèÿ ñóùåñòâîâàíèÿ è àëãîðèòìû ïîèñêà òàêèõ öèêëîâ â ãðàôå. Ó÷åáíîå ïîñîáèå ïîäãîòîâëåíî íà êàôåäðå "Âûñøàÿ è ïðèêëàäíàÿ ìàòåìàòèêà" ïî ìàòåðèàëàì êóðñà ëåêöèé ïî òåîðèè ãðàôîâ, ÷èòàåìîãî àâòîðîì äëÿ ñòóäåíòîâ ñïåöèàëüíîñòè "Ïðèêëàäíàÿ ìàòåìàòèêà" è ìîæåò áûòü èñïîëüçîâàíî ñòóäåíòàìè äðóãèõ ñïåöèàëüíîñòåé ïðè èçó÷åíèè ñîîòâåòñòâóþùèõ ðàçäåëîâ äèñêðåòíîé ìàòåìàòèêè. ÓÄÊ 519.1 c Äîìíèí Ë. Í., 2007 ° c Èçäàòåëüñòâî Ïåíçåíñêîãî ° ãîñóäàðñòâåííîãî óíèâåðñèòåòà, 2007
Ïðåäèñëîâèå Òåîðèÿ ãðàôîâ ðàçäåë äèñêðåòíîé ìàòåìàòèêè, ðàññìàòðèâþùèé ìíîæåñòâà ñ çàäàííûìè íà íèõ îòíîøåíèÿìè ìåæäó ýëåìåíòàìè. Îáúåêòû òàêîãî ðîäà ìîãóò áûòü íàãëÿäíî ïðåäñòàâëåíû ââèäå ðèñóíêîâ, ñîñòîÿùèõ èç òî÷åê, êðóæî÷êîâ èëè èíûõ ôèãóð, ñîåäèíåííûõ ëèíèÿìè. Ïðè ýòîì òî÷êè ñîîòâåòñòâóþò ýëåìåíòàì ìíîæåñòâà, à ëèíèè îòðàæàþò ñâÿçè (îòíîøåíèÿ) ìåæäó íèìè. Ïîäîáíûå ðèñóíêè îáû÷íî è íàçûâàþò ãðàôàìè, õîòÿ ñîîòâåòñòâóþùåå ïîíÿòèå øèðå, à ðèñóíîê ëèøü îäíà èç ôîðì ïðåäñòàâëåíèÿ ãðàôà. Cõåìû ðàçëè÷íûõ êîììóíèêàöèé, ýëåêòðè÷åñêèõ öåïåé, õèìè÷åñêèõ ñîåäèíåíèé, áëîê-ñõåìû êîìïüþòåðíûõ ïðîãðàìì, ñõåìû ñâÿçåé ìåæäó ëþäüìè è ãðóïïàìè ëþäåé ôàêòè÷åñêè ÿâëÿþòñÿ ãðàôàìè. Ñ ïîìîùüþ ãðàôîâ ëåãêî è ïðîñòî ôîðìóëèðóåòñÿ áîëüøèíñòâî çàäà÷, â êîòîðûõ ôèãóðèðóþò äèñêðåòíûå îáúåêòû è ïðîöåññû. Ââåäåíèå òåðìèíà "ãðàô" ïðèïèñûâàåòñÿ èçâåñòíîìó âåíãåðñêîìó ìàòåìàòèêó Ä. Êåíèãó (18841944) àâòîðó îäíîé èç ïåðâûõ êíèã ïî òåîðèè ãðàôîâ (1936 ã.). Îäíàêî èìåþòñÿ è áîëåå ðàííèå ðàáîòû (ñòàòüè êàê ñàìîãî Êåíèãà, òàê è äðóãèõ àâòîðîâ), ãäå èñïîëüçóåòñÿ ýòî íàçâàíèå. Ïîÿâëåíèå ÝÂÌ, ðàçâèòèå ìàòåìàòè÷åñêîé ëîãèêè, ìàøèííîé ìàòåìàòèêè, òåîðèè èíôîðìàöèè, èññëåäîâàíèÿ îïåðàöèé, áèîëîãèè, ìàòåìàòè÷åñêîé ëèíãâèñòèêè è äðóãèõ äèñöèïëèí, ïðèâåëî ê ðîñòó ÷èñëà çàäà÷, ãäå, â îòëè÷èå îò êëàññè÷åñêîãî àíàëèçà íåïðåðûâíûõ âåëè÷èí, íà ïåðâûé ïëàí âûõîäÿò ðàññóæäåíèÿ è ïîñòðîåíèÿ äèñêðåòíî-êîìáèíàòîðíîãî õàðàêòåðà. Êàê ðåçóëüòàò òåîðèÿ ãðàôîâ ñòàëà îäíîé èç ñóùåñòâåííûõ ÷àñòåé ìàòåìàòè÷åñêîãî àïïàðàòà ìíîãèõ íàó÷íûõ äèñöèïëèí è âîøëà â ó÷åáíûå ïðîãðàììû âóçîâ.  íåáîëüøîé ïî îáúåìó êíèãå íåâîçìîæíî îõâàòèòü âñþ ïðîáëåìàòèêó òåîðèè.  ðåçóëüòàòå æåñòêîãî îòáîðà áûëè âûáðàíû òåìû, êàñàþùèåñÿ ñâÿçíîñòè, ïîèñêà ïóòåé è öèêëîâ â ãðàôàõ, à òàêæå äåðåâüåâ îäíîãî èç íàèáîëåå ÷àñòî âñòðå÷àþùèõñÿ â ïðèëîæåíèÿõ âèäîâ ãðàôîâ.
3
Êàê è â ëþáîé íàó÷íîé äèñöèïëèíå, ìíîãèå ïîíÿòèÿ, õàðàêòåðèñòèêè, òåîðåìû è àëãîðèòìû òåîðèè ãðàôîâ íîñÿò èìåíà ëþäåé, âíåñøèõ âêëàä â åå ñòàíîâëåíèå è ðàçâèòèå. Ïîëåçíî è ñïðàâåäëèâî, ÷òîáû èçó÷àþùèé ïðåäñòàâëÿë, êòî è êîãäà ïîëîæèë ñâîé "êèðïè÷èê" â çäàíèå íàóêè. Íèæå äàíû î÷åíü êðàòêèå ñâåäåíèÿ î òåõ, ÷üè èìåíà åñòü íà ñòðàíèöàõ ïîñîáèÿ. Ë. Ýéëåð (17071783) âåëèêèé øâåéöàðñêèé, íåìåöêèé è ðîññèéñêèé ìàòåìàòèê. Ó. Ãàìèëüòîí (18051865) èðëàíäñêèé ìàòåìàòèê, ôèçèê è ìåõàíèê. À. Êýëè (18211895) àíãëèéñêèé ìàòåìàòèê êîòîðûé èññëåäîâàë äåðåâüÿ â ñâÿçè ñ õèìè÷åñêèìè ñòðóêòóðíûìè ôîðìóëàìè. Ã. Êèðõãîô (18241887) âûäàþùèéñÿ íåìåöêèé ôèçèê. Ðàçðàáîòàë òåîðèþ äåðåâüåâ äëÿ àíàëèçà ýëåêòðè÷åñêèõ öåïåé. Ä. Ïîéà (18871985) èçâåñòíûé âåíãåðñêèé, øâåéöàðñêèé è àìåðèêàíñêèé ìàòåìàòèê. Ïðåäëîæèë ìåòîä, ïîçâîëÿþùèé ðåøàòü çàäà÷è ïîäñ÷åòà ðàçëè÷íûõ âèäîâ ãðàôîâ. Õ. Ïðþôåð (18961934) íåìåöêèé ìàòåìàòèê. Î. Îðå (18991968) âèäíûé íîðâåæñêèé ìàòåìàòèê. Õ. Óèòíè (19071989) èçâåñòíûé àìåðèêàíñêèé ìàòåìàòèê, ðàáîòàâøèé â îáëàñòè òåîðèè ãðàôîâ è òîïîëîãèè. Ð. Ïðèì (1921) àìåðèêàíñêèé ìàòåìàòèê, ÷üå èìÿ íîñèò îäèí èç àëãîðèòìîâ ïîñòðîåíèÿ êðàò÷àéøåãî îñòîâà ãðàôà. Ã. Äèðàê (19251984) èçâåñòíûé äàòñêèé ìàòåìàòèê. Ä. Êðàñêàë (1928) àìåðèêàíñêèé ìàòåìàòèê. Àâòîð îäíîèìåííîãî àëãîðèòìà ïîñòðîåíèÿ êðàò÷àéøåãî îñòîâà ãðàôà. Ý. Äåéêñòðà (19302002) ãîëëàíäñêèé ó÷åíûé, âíåñøèé áîëüøîé âêëàä â ðàçâèòèå òåîðèè è ïðàêòèêè ïðîãðàììèðîâàíèÿ. Àâòîð àëãîðèòìà ïîèñêà êðàò÷àéøåãî ïóòè â ãðàôå. Äëÿ ïîíèìàíèÿ è óñâîåíèÿ ìàòåðèàëà ïîñîáèÿ äîñòàòî÷íî âëàäåòü íà÷àëüíûìè ñâåäåíèÿìè èç òåîðèè ìíîæåñòâ, ëèíåéíîé àëãåáðû è êîìáèíàòîðèêè.
4
1. Ââåäåíèå 1.1. Îïðåäåëåíèå ãðàôà Òåîðåòèêî-ìíîæåñòâåííîå îïðåäåëåíèå ãðàôà.Ïóñòü
V íåïóñòîå ìíîæåñòâî, íàïðèìåð {v1 , v2 , v3 , v4 , v5 }. Çàïèøåì ìíîæåñòâî âñåõ åãî äâóõýëåìåíòíûõ ïîäìíîæåñòâ V (2) . Äëÿ íàøåãî ïðèìåðà ýòî ìíîæåñòâî V (2) = {{v1 , v2 }, {v1 , v3 }, {v1 , v4 }, {v1 , v5 }, {v2 , v3 }, {v2 , v4 }, {v2 , v5 }, {v3 , v4 }, {v3 , v5 }, {v4 , v5 }} . Âîçüìåì ïðîèçâîëüíî íåêîòîðîå E ⊆ V (2) , íàïðèìåð,
E = {{v1 , v2 }, {v1 , v3 }, {v1 , v4 }, {v2 , v3 }, {v2 , v5 }, {v3 , v4 }, {v4 , v5 }} . Ïàðó hV, Ei íàçûâàþò íåîðèåíòèðîâàííûì ãðàôîì G, â êîòîðîì V ýòî ìíîæåñòâî âåðøèí, à E ìíîæåñòâî ðåáåð, ÿâëÿþùååñÿ ïîäìíîæåñòâîì ìíîæåñòâà V (2) .  áîëåå êîìïàêòíîé ôîðìå ýòî îïðåäåëåíèå îáû÷íî ôîðìóëèðóåòñÿ òàê: ïàðà hV, Ei íàçûâàåòñÿ íåîðèåíòèðîâàííûì ãðàôîì, åñëè V íåïóñòîå ìíîæåñòâî ýëåìåíòîâ, íàçûâàåìûõ âåðøèíàìè, à E ìíîæåñòâî íåóïîðÿäî÷åííûõ ïàð ðàçëè÷íûõ ýëåìåíòîâ èç V, íàçûâàåìûõ ðåáðàìè. Ïðè çàïèñè ðàçëè÷íûõ ñîîòíîøåíèé â òåîðèè ãðàôîâ ïîëüçóþòñÿ îáîçíà÷åíèÿìè V G èëè V (G) äëÿ ìíîæåñòâà âåðøèí è EG èëè E(G) äëÿ ìíîæåñòâà ðåáåð ãðàôà G . Íàãëÿäíûì ñïîñîáîì ïðåäñòàâëåíèÿ ãðàôà ÿâëÿåòñÿ ðèñóíîê (äèàãðàììà), íà êîòîðîì âåðøèíû èçîáðàæàþòñÿ òî÷êàìè, êðóæî÷êàìè èëè äðóãèìè ôèãóðêàìè, à ðåáðà ëèíèÿìè, ñîåäèíÿþùèìè èçîáðàæåíèÿ âåðøèí ðåáåðíîé ïàðû.1 Ôîðìà 1 Èíîãäà
ãðàôîì íàçûâàþò èìåííî òàêîé ðèñóíîê (äèàãðàììó).
5
è ðàçìåðû èçîáðàæåíèÿ çíà÷åíèÿ íå èìåþò. Âàæíî òîëüêî, ÷òîáû îíî ñîîòâåòñòâîâàëî ìíîæåñòâàì V è E . Íà ðèñ. 1.1 äàíû âàðèàíòû òàêîãî ïðåäñòàâëåíèÿ âûøåîïèñàííîãî ãðàôà. vs1 Z B s Zsv2 v5 BZ B B B BBs Bs v4 v3
vs5
vs1 vs2 A@ A@ A @ @s s AAs @ v5 v4 v3
vs2
v1 s @ @ @s s v4 v3
v5 s
vs1
s v4
s v3
sv2
Ðèñ. 1.1
Îáðàòèòå âíèìàíèå íà ñóùåñòâåííîå ðàçëè÷èå èçîáðàæåíèé è âìåñòå ñ òåì ïîëíîå ñîîòâåòñòâèå äðóã äðóãó è îïèñàíèþ ãðàôà íà ñòð. 5.
Îñíîâíûå õàðàêòåðèñòèêè ãðàôà è åãî ýëåìåíòîâ.
Äâå âåðøèíû, îáðàçóþùèå ðåáðî {vi , vj }, íàçûâàþò åãî êîíöàìè, à ïðî ðåáðî ãîâîðÿò, ÷òî îíî ñîåäèíÿåò vi è vj . Ãîâîðÿò òàêæå, ÷òî âåðøèíû vi è vj ñìåæíû. Ñìåæíûìè íàçûâàþò è ðåáðà ñ îáùåé âåðøèíîé. Ïðî ðåáðî è âåðøèíó, êîòîðàÿ ÿâëÿåòñÿ åãî êîíöîì, ãîâîðÿò, ÷òî îíè èíöèäåíòíû. Òàê, íàïðèìåð, â ãðàôå íà ðèñ. 1.1 âåðøèíû v1 è v2 ñìåæíû, à âåðøèíû v3 è v5 íå ñìåæíû. Ðåáðà {v1 , v2 } è {v1 , v3 } ñìåæíû, à ðåáðà {v4 , v5 } è {v2 , v3 } íå ñìåæíû. Íàêîíåö, âåðøèíà v3 è ðåáðî {v2 , v3 } èíöèäåíòíû. ×èñëî ðåáåð, èíöèäåíòíûõ âåðøèíå v, îïðåäåëÿåò ñòåïåíü âåðøèíû, êîòîðàÿ îáîçíà÷àåòñÿ deg v. Òàê, â ãðàôå íà ðèñ. 1.1 deg v1 = deg v2 = deg v3 = deg v4 =3, à deg v5 =2. Âåðøèíó v íàçûâàþò èçîëèðîâàííîé, åñëè deg v=0, è êîíöåâîé, åñëè deg v=1. Ðåáðî, èíöèäåíòíîå êîíöåâîé âåðøèíå, òàêæå íàçûâàþò êîíöåâûì. Ñïèñîê ñòåïåíåé âñåõ âåðøèí íàçûâàþò ñòåïåííîé ïîñëåäîâàòåëüíîñòüþ ãðàôà. Ìíîæåñòâî âåðøèí, ñìåæíûõ ñ âåðøèíîé v , îáîçíà÷àþò êàê adj v. Íàïðèìåð, â ãðàôå íà ðèñ. 1.1 adj v1 = {v2 , v3 , v4 }. Âàæíåéøèìè êîëè÷åñòâåííûìè õàðàêòåðèñòèêàìè ãðàôà ÿâëÿþòñÿ: ÷èñëî âåðøèí n=|V |, îïðåäåëÿþùåå ïîðÿäîê ãðàôà, è ÷èñëî ðåáåð m=|E|. Ãðàô ñ n âåðøèíàìè è m ðåáðàìè íàçûâàåòñÿ (n, m)-ãðàôîì. 6
Èñòîðè÷åñêè ïåðâîé òåîðåìîé òåîðèè ãðàôîâ ÿâëåòñÿ óòâåðæäåíèå, ïðèíàäëåæàùåå Ýéëåðó è ñâÿçûâàþùåå êîëè÷åñòâî ðåáåð, âåðøèí è èõ ñòåïåíåé.
Òåîðåìà 1.1 Ñóììà ñòåïåíåé âåðøèí (n, m)-ãðàôà ðàâíà óäâîåííîìó ÷èñëó åãî ðåáåð:
n P
i=1
deg vi = 2|E| = 2m .
¤ Äîêàçàòåëüñòâî òðèâèàëüíî: ïîñêîëüêó ëþáîå ðåáðî èíöèäåíòíî äâóì âåðøèíàì, â ñóììå ñòåïåíåé âñåõ âåðøèí ãðàôà êàæäîå ðåáðî ó÷èòûâàåòñÿ äâàæäû. ¢ Ñ ë å ä ñ ò â è å.  ëþáîì ãðàôå ÷èñëî âåðøèí íå÷åòíîé ñòåïåíè ÷åòíî. ¤ Ïóñòü V1 è V2 ìíîæåñòâà âåðøèí ÷åòíîé è íå÷åòíîé ñòåïåíè ñîîòâåòñòâåííî. Î÷åâèäíî,÷òî X X deg v + deg v = 2m . v∈V1
v∈V2
Èìååì äâà ñëàãàåìûõ, ñóììà êîòîðûõ ÷åòíîå ÷èñëî. Ïåðâîå ñëàãàåìîå ÷åòíî (êàê ñóììà ÷åòíûõ ÷èñåë). Çíà÷èò, âòîðîå òàêæå äîëæíî áûòü ÷åòíûì, à ýòî ïðè ñóììèðîâàíèè íå÷åòíûõ ÷èñåë âîçìîæíî, åñëè òîëüêî èõ êîëè÷åñòâî ÷åòíî. ¢
Èçîìîðôèçì ãðàôîâ. Îáðàòèìñÿ âíîâü ê ðèñ. 1.1, ãäå
ïðåäñòàâëåíû ÷åòûðå ðàçëè÷íûõ èçîáðàæåíèÿ îäíîãî è òîãî æå ãðàôà. Çàäà÷à ðèñóíêà ïîêàçàòü ìíîæåñòâåííîñòü îáðàçîâ ïðè ãðàôè÷åñêîé èíòåðïðåòàöèè ãðàôà. Ìîæíî ïîñòàâèòü äðóãóþ, â íåêîòîðîì ñìûñëå îáðàòíóþ çàäà÷ó. Èìåþòñÿ èçîáðàæåíèÿ ãðàôîâ îäíîãî ïîðÿäêà ñ îäèíàêîâûì ÷èñëîì ðåáåð. Íåîáõîäèìî óñòàíîâèòü, ðàçíûå ýòî ãðàôû èëè îäèí, òîëüêî ïî-ðàçíîìó èçîáðàæåííûé. ×òîáû ðàçëè÷àòü ïîäîáíûå ñèòóàöèè, èñïîëüçóþò ïîíÿòèå èçîìîðôèçìà. Èçîìîðôèçìîì íàçûâàþò âçàèìíî-îäíîçíà÷íîå ñîîòâåòñòâèå ìåæäó ìíîæåñòâàìè âåðøèí äâóõ ãðàôîâ G1 è G2 , ñîõðàíÿþùåå îòíîøåíèå ñìåæíîñòè, à ñàìè ãðàôû íàçûâàþò èçîìîðôíûìè. Îòîáðàæàÿ ýòî, ïèøóò: G1 ∼ =G2 èëè G1 =G2 . Èçîìîðôíîñòü ãðàôîâ íà ðèñ. 1.1 óñòàíîâèòü äîâîëüíî ïðîñòî. Äîñòàòî÷íî ñîñòàâèòü ñïèñêè âåðøèí âñåõ ãðàôîâ, óêàçàâ äëÿ êàæäîé èç íèõ âñåõ åå "ñîñåäîê" (ìíîæåñòâî adj v ). Ñðàâíèâ ñïèñêè, ëåãêî óáåäèòüñÿ â èõ èäåíòè÷íîñòè ãðàôû 7
èçîìîðôíû.  äàííîì ñëó÷àå ãðàôû äåéñòâèòåëüíî èçîìîðôíû, ïðè÷åì èõ ýêâèâàëåíòíûå âåðøèíû îáîçíà÷åíû (ïðîíóìåðîâàíû) îäèíàêîâî. Çàäà÷à óñëîæíÿåòñÿ, åñëè ýêâèâàëåíòíûå âåðøèíû ãðàôîâ èìåþò ðàçíûå íîìåðà.  êà÷åñòâå ïðèìåðà ìîæíî ïðèâåñòè äâà èçîìîðôíûõ ãðàôà G1 è G2 , èçîáðàæåííûå íà ðèñ. 1.2. Äëÿ íèõ îïèñàííóþ âûøå ïðîöåäóðó ðàáîòû v1 v2 v vs1 s s s3 #c @ # s sv5 # sv6cc v@ 4 v v B @ v5 s# X sv2 Xs8 s9c s sv8 B B c v6 s @ # v7 c # c B B A A s # cB s B # AAs v v s Bs 10 7 Js v10 v4 v3 v9 G2 G1
v1 v2 v s s s3 @ s sv5 v@ 4 @ s @s sv8 v6 Q v Q 7 AA Q A Q Q Q s As v10 v9 G3
Ðèñ. 1.2
ñî ñïèñêàìè ïðèäåòñÿ ïîâòîðÿòü íåîäíîêðàòíî, êàæäûé ðàç ìåíÿÿ íóìåðàöèþ âåðøèí îäíîãî èç ãðàôîâ, ïîêà íå áóäåò îáíàðóæåí èçîìîðôèçì, ò. å. ïîëó÷åíû èäåíòè÷íûå ñïèñêè âåðøèí.  ëó÷øåì ñëó÷àå ôàêò èçîìîðôíîñòè ãðàôîâ ìîæíî óñòàíîâèòü ñ ïåðâîé ïîïûòêè, â õóäøåì ïîòðåáóåòñÿ ïðîâåðèòü 10! âàðèàíòîâ íóìåðàöèè âåðøèí. Äîêàçàòü íåèçîìîðôíîñòü ãðàôîâ G1 è G3 ìîæíî, òîëüêî âûïîëíèâ âñå ïðîâåðêè. Ñóùåñòâåííî ñîêðàòèòü èõ êîëè÷åñòâî ìîæíî, åñëè èñïîëüçîâàòü èíâàðèàíòû. Èíâàðèàíòîì íàçûâàþò íåêîòîðóþ õàðàêòåðèñòèêó ãðàôà G, êîòîðàÿ ïðèíèìàåò îäíî è òî æå çíà÷åíèå äëÿ ëþáîãî ãðàôà, èçîìîðôíîãî G. Èíâàðèàíòàìè ÿâëÿþòñÿ: ÷èñëî âåðøèí è ÷èñëî ðåáåð ãðàôà, ÷èñëî âåðøèí ÷åòíîé è íå÷åòíîé ñòåïåíè, ñòåïåííàÿ ïîñëåäîâàòåëüíîñòü è äðóãèå ÷èñëîâûå õàðàêòåðèñòèêè.  êà÷åñòâå èíâàðèàíòîâ ìîãóò âûñòóïàòü ñâîéñòâà è îñîáåííîñòè ãðàôà (ñâÿçíîñòü, äâóäîëüíîñòü, íàëè÷èå èëè îòñóòñòâèå öèêëîâ è ò. ï.), ðàññìàòðèâàåìûå äàëåå. Àíàëèç ãðàôîâ íà èçîìîðôíîñòü öåëåñîîáðàçíî íà÷èíàòü ñî ñðàâíåíèèÿ çíà÷åíèé íåêîòîðîãî ìíîæåñòâà èíâàðèàíòîâ, ïåðåõîäÿ îò ïðîñòûõ êî âñå áîëåå ñëîæíûì è òðóäîåìêèì. 8
È òîëüêî åñëè âûáðàííàÿ ñèñòåìà èíâàðèàíòîâ íå ïîçâîëèëà óñòàíîâèòü íåèçîìîðôíîñòü ãðàôîâ, ñëåäóåò ïðèñòóïàòü ê ïåðåáîðó. Ïðè ýòîì êîëè÷åñòâî ïåðåáèðàåìûõ âàðèàíòîâ íóìåðàöèè âåðøèí ìîæåò îêàçàòüñÿ ñóùåñòâåííî ìåíüøèì. Åñëè, íàïðèìåð, ïðè ñîâïàäåíèè ñòåïåííûõ ïîñëåäîâàòåëüíîñòåé äâóõ ãðàôîâ â êàæäîì èç íèõ åñòü îäíà âåðøèíà ñòåïåíè d, îáîçíà÷åííàÿ â ïåðâîì ãðàôå êàê v5 , òî èç âñåõ âîçìîæíûõ íóìåðàöèé âåðøèí âòîðîãî ãðàôà ñëåäóåò ðàññìîòðåòü òîëüêî òå, â êîòîðûõ âåðøèíà ýòîé ñòåïåíè èìååò òîò æå íîìåð. Ê ñîæàëåíèþ, ïîêà íå èçâåñòíà (âîçìîæíî è íå ñóùåñòâóåò) ñèñòåìà èíâàðèàíòîâ, ïîçâîëÿþùàÿ ðåøàòü çàäà÷ó èçîìîðôèçìà äëÿ âñåõ âèäîâ ãðàôîâ.
Êîëè÷åñòâî ãðàôîâ. Îïðåäåëèì ÷èñëî ãðàôîâ ïîðÿäêà
n. ßñíî, ÷òî íà ìíîæåñòâå èç n âåðøèí ìîæíî îáðàçîâàòü Cn2 ðàçëè÷íûõ íåóïîðÿäî÷åííûõ ïàð, ñîîòâåòñòâóþùèõ âñåì âîçìîæíûì ðåáðàì ãðàôà. Ïîýòîìó ëþáîìó n-âåðøèííîìó ãðàôó ìîæíî ñîîïîñòàâèòü Cn2 -ðàçðÿäíûé äâîè÷íûé êîä, êàæäûé ðàçðÿä êîòîðîãî ñîîòâåòñòâóåò îïðåäåëåííîìó ðåáðó: åñëè ðàçðÿä ðàâåí 1, ãðàô ñîäåðæèò ýòî ðåáðî, åñëè 0 íå ñîäåðæèò. Ñëåäîâàòåëüíî, êîëè÷åñòâî ãðàôîâ ïîðÿäêà n ìîæíî îïðåäå2 2 ëèòü êàê ln =2Cn . Ïðè n=10 èìååì l10 =2C10 , ÷òî ñîñòàâëÿåò âíóøèòåëüíóþ âåëè÷èíó 245 èëè '3, 518 · 1013 . Îäíàêî, åñëè íå ó÷èòûâàòü ðàçìåòêó âåðøèí, êîòîðàÿ ïðèíöèïèàëüíîãî çíà÷åíèÿ íå èìååò, à ëèøü ïîçâîëÿåò îïèñàòü ñâÿçè ìåæäó âåðøèíàìè, íå âñå ýòè ãðàôû ðàçëè÷íû. Íàïðèìåð, ñóùåñòâóåò G1 v1 v2 s s
G2 v1 v2 s s
s v3
s v3
G3 v1 v2 s s @ @s v3
G4 v1 v2 s s s v3
G5 v1 v2 s s @ @s v3
G6 v1 v2 s s s v3
G7 v1 v2 s s @ @s v3
G8 v1 v2 s s @ @s v3
Ðèñ. 1.3 2
l3 =2C3 =8 òðåõâåðøèííûõ ãðàôîâ. Âñå îíè ïðåäñòàâëåíû íà ðèñ. 1.3. Ëåãêî çàìåòèòü, ÷òî ôàêòè÷åñêè åñòü ëèøü ÷åòûðå ðàçëè÷íûõ òðåõâåðøèííûõ ãðàôà, ïîñêîëüêó G2 ∼ =G3 ∼ =G4 è ∼ ∼ G5 =G6 =G7 è, åñëè óáðàòü ìåòêè âåðøèí, ðàçëè÷èÿ ìåæäó
9
ãðàôàìè â ýòèõ òðîéêàõ èñ÷åçíóò. Ïîýòîìó åñòåñòâåííî ïîÿâëåíèå òàêîãî ïîíÿòèÿ êàê íåïîìå÷åííûé (àáñòðàêòíûé) ãðàô, â îòëè÷èå îò ïîìå÷åííîãî (èìåþùåãî ìåòêè âåðøèí). ßñíî, ÷òî ëþáîé íåïîìå÷åííûé ãðàô ïðåäñòàâëÿåò ìíîæåñòâî èçîìîðôíûõ ïîìå÷åííûõ ãðàôîâ. Çàäà÷à îïðåäåëåíèÿ êîëè÷åñòâà íåïîìå÷åííûõ ãðàôîâ gn ñóùåñòâåííî ñëîæíåå çàäà÷è î êîëè÷åñòâå ïîìå÷åííûõ.  [2] ïðèâåäåíû äàííûå î ÷èñëå íåïîìå÷åííûõ ãðàôîâ äî 24-ãî ïîðÿäêà âêëþ÷èòåëüíî. Òàê, ÷èñëî ãðàôîâ ñ äåñÿòüþ âåðøèíàìè g10 =12 005 168. Ýòà âåëè÷èíà íà øåñòü ïîðÿäêîâ ìåíüøå, ÷åì l10 , íî âñå åùå âåñüìà çíà÷èòåëüíà. Ñóùåñòâóåò äîñòàòî÷íî ïðîñòàÿ ôîðìóëà Ïîéà, äàþùàÿ àñèìïòîòè÷åñêóþ îöåíêó ÷èñëà íåïîìå÷åííûõ ãðàôîâ: 2
gn ∼ 2Cn /n! Ñîãëàñíî ôîðìóëå êîëè÷åñòâî íåïîìå÷åííûõ ãðàôîâ ïðèáëèçèòåëüíî â n! ðàç ìåíüøå êîëè÷åñòâà ïîìå÷åííûõ. Äåéñòâèòåëüíî, â áîëüøèíñòâå ñëó÷àåâ (íî íå âñåãäà) ðàçìåòêó âåðøèí íåïîìå÷åííîãî ãðàôà ìîæíî âûïîëíèòü n! ñïîñîáàìè. Ïðè ìàëûõ n ôîðìóëà "íå ðàáîòàåò". Òàê, äëÿ n=4 ïîëó÷àåì 2 2C4 /4!=8/3, òîãäà êàê èìååòñÿ 11 ÷åòûðåõâåðøèííûõ ãðàôîâ, ò. å. íàëèöî ÷åòûðåõêðàòíîå çàíèæåíèå èõ ÷èñëà. Ïðè n=10 ôîðìóëà äàåò 9 696 000, ÷òî óæå â 1,238 ìåíüøå ôàêòè÷åñêîãî ÷èñëà 12 005 168, íî îøèáêà åùå ñóùåñòâåííà. Ïðè n=12 ïîëó÷àåì ∼1, 54 · 1011 , âìåñòî ∼1, 65 · 1011 , ò. å. â 1,072 ðàçà ìåíüøå. Íàêîíåö, ïðè n=15 ðàçíèöà ñîêðàùàåòñÿ äî îäíîãî ïðîöåíòà.
1.2. Ïîäãðàôû Ãðàô G0 (V 0 , E 0 ) íàçûâàþò ïîäãðàôîì ãðàôà G(V, E), åñëè V 0 ⊆V è E 0 ⊆E , ïðè÷åì òàêèå, ÷òî ðåáðî {v, u} ñîäåðæèòñÿ â E 0 òîëüêî òîãäà, êîãäà v∈V 0 è u∈V 0 .  ñâîþ î÷åðåäü, ãðàô G ïî îòíîøåíèþ ê ñâîåìó ïîäãðàôó G0 ÿâëÿåòñÿ íàäãðàôîì. Îñòîâíûì íàçûâàþò ïîäãðàô G0 (V, E 0 ), âêëþ÷àþùèé â ñåáÿ âñå âåðøèíû íàäãðàôà G(V, E).  êà÷åñòâå ïðèìåðà íà 10
ðèñ. 1.4 ïîêàçàíû âñå îñòîâíûå ïîäãðàôû ãðàôà G. Êàê ñëåäóåò èç ðèñ. 1.4, ëþáîé îñòîâíûé ïîäãðàô G(V, E 0 ) ãðàôà v1 v2 s s G @ s @s v4 v3
v1 v2 s s @ s @s v4 v3
v1 v2 s s s s v4 v3
v1 v2 s s @ s @s v4 v3
v1 v2 s s
v1 v2 s s
s s v4 v3
s s v4 v3
v1 v2 s s @ s @s v4 v3
v1 v2 s s s s v4 v3
Ðèñ. 1.4
G(V, E) ïîëó÷àåòñÿ ïîñëå óäàëåíèÿ ïîäìíîæåñòâà E\E 0 ðåáåð íàäãðàôà. Êîëè÷åñòâî îñòîâíûõ ïîäãðàôîâ ïîìå÷åííîãî Pm k m k (n, m)-ãðàôà ðàâíî k=0 Cm = 2 , ãäå ñëàãàåìûå Cm îïðåäåëÿþò ÷èñëî ðàçëè÷íûõ îñòîâíûõ ïîäãðàôîâ, èìåþùèõ k ðåáåð êàæäûé. Ïîäãðàôû äðóãîãî òèïà ïîëó÷àþòñÿ, åñëè âûáðàòü íåêîòîðîå ïîäìíîæåñòâî V 0 âåðøèí íàäãðàôà è ïðèñîåäèíèòü ê íèì âñå ðåáðà, îáå êîíå÷íûå âåðøèíû êîòîðûõ ïðèíàäëåæàò V 0 . Ýòî âåðøèííî-ïîðîæäåííûå ïîäãðàôû. Íà ðèñ. 1.5 èçîáðàæåíû âñå ïîäãðàôû ýòîãî òèïà äëÿ ãðàôà G. Ëåãêî óáåäèòüñÿ, v1 s v1 v2 s s G @ s @s v4 v3
v2 s
v2 s s v3
v2 s s v4
v1 v2 s s s v3 s s v4 v3
s v4 v1 v2 s s @ @s v3
v1 v2 s s s v4
v1 v1 s s @ @s s v3 v4 v1 s @ s @s s v4 v3 v4
v2 s s v3
Ðèñ. 1.5
÷òî ëþáîé âåðøèííî-ïîðîæäåííûé ïîäãðàô G(V 0 , E 0 ) ãðàôà G(V, E) ìîæíî ïîëó÷èòü ïóòåì óäàëåíèÿ ïîäìíîæåñòâà V \V 0 âåðøèí è âñåõ èíöèäåíòíûõ èì ðåáåð íàäãðàôà. Êîëè÷åñòâî Pn k n âåðøèííî-ïîðîæäåííûõ ïîäãðàôîâ ðàâíî k=1 Cn = 2 − 1. Ñëàãàåìîå Cnk ýòîé ñóììû óêàçûâàåò ÷èñëî âåðøèííî-ïîðîæäåííûõ ïîäãðàôîâ, êàæäûé èç êîòîðûõ èìååò k âåðøèí. Íàêîíåö, ðåáåðíî-ïîðîæäåííûì áóäåì íàçûâàòü ïîäãðàô G(V 0 , E 0 ), ïîëó÷åííûé íà îñíîâå ïðîèçâîëüíî âûáðàííîãî ïîä11
ìíîæåñòâà E 0 ðåáåð íàäãðàôà, ïðè÷åì ìíîæåñòâî V 0 âåðøèí ïîäãðàôà ñîñòàâëÿþò êîíöû òîëüêî ýòèõ ðåáåð. Âñå ðåáåðíîïîðîæäåííûå ïîäãðàôû ãðàôà G èçîáðàæåíû íà ðèñ. 1.6. v1 v2 s s G @ s @s v4 v3
v1 s @ s @s v4 v3
v s2 s v4
s v3
v1 v2 s s @ @s v3
v2 s s v4
s v3
s v3
v1 s @ @s v3
Ðèñ. 1.6
Î÷åâèäíî, ÷òî ëþáîé ðåáåðíî-ïîðîæäåííûé ïîäãðàô G(V 0 , E 0 ) ãðàôà G(V, E) ìîæíî ñôîðìèðîâàòü, åñëè â íàäãðàôå ñíà÷àëà óäàëèòü ïîäìíîæåñòâî ðåáåð E\E 0 , à ïîòîì â ïîëó÷èâøåìñÿ îñòîâíîì ïîäãðàôå âñå èçîëèðîâàíPm óäàëèòü k m íûå âåðøèíû. Âñåãî èìååòñÿ − 1 ðåáåðíîk=1 Cm = 2 ïîðîæäåííûõ ïîäãðàôîâ (n, m)-ãðàôà. r rÑðàâíèâ ðèñ. 1.5 è ðèñ. 1.6, ëåãêî çàìåòèòü, ÷òî äëÿ ãðàôà @ r r ìíîæåñòâî ðåáåðíî-ïîðîæäåííûõ ÿâëÿåòñÿ ïîäìíîæåñòâîì âåðøèííî-ïîðîæäåííûõ ïîäãðàôîâ, íî ýòî ñêîðåå èñêëþ÷åíèå, ÷åì ïðàâèëî. Áîëåå òèïè÷íûì ÿâëÿåòñÿ ñëó÷àé, êîãäà ýòè ìíîæåñòâà ïîäãðàôîâ ëèøü ïåðåñåêàþòñÿ.  ýòîì ëåãêî óáåäèòüñÿ, ïîñòðîèâ ìíîæåñòâà ðåáåðíî- èr âåðøèííîr r r r r ïîðîæäåííûõ ïîäãðàôîâ, íàïðèìåð äëÿ ãðàôîâ: @ r, @ r r, @ r r. Îáúåäèíåíèå ìíîæåñòâ îñòîâíûõ, âåðøèííî- è ðåáåðíîïîðîæäåííûõ ïîäãðàôîâ â îáùåì ñëó÷àå íå r ïîêðûâàåò âñå ìíîæåñòâî ïîäãðàôîâ ãðàôà. Òàê ãðàô r r , ñîñòîÿùèé èç îäíîãî ðåáðà è èçîëèðîâàííîé âåðøèíû, ÿâëÿÿñü ïîäãðàôîì r r ãðàôà @ r r , íå îòíîñèòñÿ íè ê îäíîìó èç óêàçàííûõ òèïîâ. Ïðèâåäåííàÿ â äàííîì ðàçäåëå òåðìèíîëîãèÿ â îñíîâíîì ñîîòâåòñòâóåò ïðèíÿòîé â [1, 8, 12].  äðóãèõ èñòî÷íèêàõ [6, 11] èñïîëüçóþòñÿ òåðìèíû ÷àñòü ãðàôà, ñóãðàô è ïîäãðàô, ïðè÷åì ÷àñòüþ ãðàôà íàçûâàþò ïîäãðàô, ñóãðàôîì îñòîâíûé ïîäãðàô, à ïîäãðàôîì âåðøèííî-ïîðîæäåííûé ïîäãðàô.
12
1.3. Âèäû ãðàôîâ Îáðàòèìñÿ ê ðèñ. 1.7, çàèìñòâîâàííîìó (ñ íåáîëüøèìè èçìåíåíèÿìè è äîïîëíåíèÿìè) èç êíèãè [1]. Çäåñü ïðåäñòàâëåíû âñå âîçìîæíûå àáñòðàêòíûå ãðàôû ÷åòâåðòîãî ïîðÿäêà. s G1 s s
s O4
s G2 s @ @s s @
sG3 s @ @s s @
s G5 s s
s G8 s C4 s s
sG4 s
s G6 s @ @s s @
s G9 s @ @s s @
s
s
s
s G10 s s
s
s G11 s @ @s s @ K4
s G7 s P4 s s Ðèñ. 1.7
Íåñâÿçíûå è ñâÿçíûå ãðàôû. Î÷åâèäíî, ÷òî èçîáðà-
æåííûå íà ðèñ. 1.7 ãðàôû ìîæíî ïîäåëèòü íà äâå ãðóïïû (ðàçãðàíè÷åíû øòðèõîâîé ëèíèåé): íåñâÿçíûå ( G1 G5 ) è ñâÿçíûå ( G6 G11 ). Ãðàô íåñâÿçåí, åñëè ìíîæåñòâî åãî âåðøèí ðàñïàäàåòñÿ íà äâà (èëè áîëåå) íåïåðåñåêàþùèõñÿ ïîäìíîæåñòâà, òàêèõ, ÷òî íåò íè îäíîãî ðåáðà, êîíöû êîòîðîãî ïðèíàäëåæàò ðàçíûì ïîäìíîæåñòâàì.Èíûìè ñëîâàìè, íåñâÿçíûé ãðàô ñîñòîèò èç äâóõ è áîëåå ÷àñòåé, íå ñîåäèíåííûõ ðåáðàìè. Ýòè ÷àñòè íàçûâàþòñÿ êîìïîíåíòàìè ñâÿçíîñòè. Òàê, íà ðèñ. 1.7 ãðàô G1 èìååò ÷åòûðå êîìïîíåíòû, G2 òðè êîìïîíåíòû, G3 , G4 è G5 äâå, à îñòàëüíûå ãðàôû îäíó êîìïîíåíòó. Ñðåäè íåñâÿçíûõ ãðàôîâ, èçîáðàæåííûõ íà ðèñ. 1.7, îñîáîå ïîëîæåíèå çàíèìàåò G1 , âîîáùå íå èìåþùèé ðåáåð è íàçûâàåìûé ïóñòûì. Äëÿ òàêèõ ãðàôîâ ÷àñòî èñïîëüçóåòñÿ îáîçíà÷åíèå On , ãäå n ÷èñëî âåðøèí. Ñðåäè ñâÿçíûõ ãðàôîâ G6 G11 òàêæå ìîæíî âûäåëèòü ãðàô G11 , èìååþùèé ìàêñèìàëüíîå äëÿ ãðàôà ÷åòâåðòîãî ïî-
13
ðÿäêà ÷èñëî ðåáåð. Ýòî òàê íàçûâàåìûé ïîëíûé ãðàô. Äëÿ òàêèõ ãðàôîâ ïðèíÿòî îáîçíà÷åíèå Kn . ßñíî, ÷òî ÷èñëî ðåáåð â ïîëíîì ãðàôå ðàâíî êîëè÷åñòâó äâóõýëåìåíòíûõ ïîäìíî. æåñòâ ìíîæåñòâà V, ïîýòîìó èìååì |E(Kn )| = Cn2 = n(n−1) 2 Äåðåâüÿ è öåïè. Ñâÿçíûå ãðàôû ñ ìèíèìàëüíûì êîëè÷åñòâîì ðåáåð ( |EG|=n−1) îáðàçóþò êëàññ òàê íàçûâàåìûõ äåðåâüåâ.  íàøåì ïðèìåðå ýòî G6 è G7 . Ðàññìîòðåíèþ äåðåâüåâ ïîñâÿùåí ðàçä. 3 ïîñîáèÿ. Çäåñü æå îòìåòèì îáîçíà÷åííûé íà ðèñ. 1.7 êàê P4 ãðàô G7 , ÿâëÿþùèéñÿ ÷àñòíûì ñëó÷àåì äåðåâà è íàçûâàåìûé ïðîñòîé öåïüþ. Âîîáùå öåïü ýòî ÷åðåäóþùàÿñÿ ïîñëåäîâàòåëüíîñòü âåðøèí è ðåáåð (v0 , e1 , v1 , e2 , v2 , . . . , vk−1 , ek , vk ), ãäå vi−1 è vi ÿâëÿþòñÿ êîíöàìè ðåáðà ei .  êîìïàêòíîé ôîðìå ýòà çàïèñü âûãëÿäèò òàê: (v0 , v1 , . . . , vk−1 , vk ) èëè (e1 , e2 , . . . , ek−1 , ek ).  îòëè÷èå îò ïðîñòîé öåïü îáùåãî âèäà ìîæåò ñîäåðæàòü ïîâòîðÿþùèåñÿ âåðøèíû. Íàïðèìåð, â ãðàôå íà ðèñ. 1.1 (v1 , v2 , v5 , v4 , v3 ) ïðîñòàÿ öåïü, à (v1 , v2 , v5 , v4 , v1 , v3 ) öåïü. Îáû÷íî öåïü ðàññìàòðèâàåòñÿ íå êàê ñàìîñòîÿòåëüíûé ãðàô, à êàê ÷àñòü íåêîòîðîãî ãðàôà. Äëèíîé öåïè íàçûâàþò êîëè÷åñòâî ñîñòàâëÿþùèõ åå ðåáåð. ßñíî, ÷òî äëèíà ïðîñòîé öåïè íå ìîæåò ïðåâûøàòü ÷èñëà âåðøèí ñîäåðæàùåãî åå ãðàôà, à äëèíà öåïè îáùåãî âèäà ÷èñëà ðåáåð ýòîãî ãðàôà. Ïîíÿòèå öåïè øèðîêî èñïîëüçóåòñÿ â òåîðèè ãðàôîâ. Íàïðèìåð, ñâÿçíûé ãðàô ìîæíî îïðåäåëèòü êàê ãðàô, â êîòîðîì ëþáàÿ ïàðà âåðøèí ñîåäèíåíà õîòÿ áû îäíîé öåïüþ. Öèêëû. Öèêëîì (ïðîñòûì öèêëîì) íàçûâàåòñÿ çàìêíóòàÿ öåïü (ïðîñòàÿ öåïü). Ïðèìåðîì ïðîñòîãî öèêëà ÿâëÿåòñÿ ãðàô G8 . Ãðàô, ïðåäñòàâëÿþùèé ñîáîé ïðîñòîé öèêë, îáîçíà÷àåòñÿ êàê Cn . Êàê è â ñëó÷àå öåïåé, èíòåðåñ ïðåäñòàâëÿåò ðàññìîòðåíèå öèêëîâ êàê ÷àñòåé íåêîòîðîãî ãðàôà. Äîïîëíèòåëüíûå ãðàôû. Ðàññìîòðèì ïàðû ãðàôîâ: G1 è G11 , G2 è G10 , G3 è G8 , G4 è G9 , G5 è G6 . Åñëè â êàæäîé èç íèõ èçîáðàæåíèå îäíîãî èç ãðàôîâ "íàëîæèòü" îïðåäåëåííûì îáðàçîì íà èçîáðàæåíèå äðóãîãî, òî ïîëó÷èòñÿ ïîëíûé ãðàô, ò. å. îäèí ãðàô äîïîëíÿåò äðóãîé äî K4 . Ýòî ïàðû âçàèìíî äîïîëíèòåëüíûõ ãðàôîâ. Âîîáùå äîïîëíåíèåì ãðàôà
14
G íàçûâàåòñÿ ãðàô G, èìåþùèé òî æå ìíîæåñòâî âåðøèí, â êîòîðîì ëþáûå äâå âåðøèíû ñìåæíû, åñëè îíè íå ñìåæíû â G, è íå ñìåæíû, åñëè îíè ñìåæíû â G. Èíûìè ñëîâàìè, â ãðàôàõ G è G îòíîøåíèÿ ñìåæíîñòè ëþáîé ïàðû âåðøèí ïðîòèâîïîëîæíû. Îñîáîå ìåñòî ñðåäè ïðåäñòàâëåííûõ íà ðèñ. 1.7 ãðàôîâ çàíèìàåò G7 . Ýòî òàê íàçûâàåìûé ñàìîäîïîëíèòåëüíûé ãðàô, ÿâëÿþùèéñÿ ñâîèì ñîáñòâåííûì äîïîëíåíèåì, â ÷åì r r íåòðóäíî óáåäèòüñÿ, åñëè èçîáðàçèòü åãî êàê @ r r. Äëÿ ñàìîäîïîëíèòåëüíûõ ãðàôîâ ñïðàâåäëèâî ðàâåíñòâî G=G, òîãäà êàê â îáùåì ñëó÷àå G=G. Ðåãóëÿðíûå ãðàôû. Äëÿ ãðàôîâ G1 , G3 , G8 , G11 õàðàêòåðíûì ÿâëÿåòñÿ òî, ÷òî â êàæäîì èç íèõ âñå âåðøèíû èìåþò îäèíàêîâûå ñòåïåíè. Òàêèå ãðàôû íàçûâàþò ðåãóëÿðíûìè èëè îäíîðîäíûìè. Íà ðèñ. 1.8 ïðèâåäåíû ïðèìåðû ðåãóëÿðíûõ âîñìèâåðøèííûõ ãðàôîâ òðåòüåé, ÷åòâåðòîé è ïÿòîé ñòåïåíåé. G1 s s
sd=3 s
s
s
s
s
G2 s sd=4 s s @ @ @ @s s @s s @
G3 s sd=5 s s @ @ @ @s @ @s @s @ s @
Ðèñ. 1.8
Îòìåòèì, ÷òî ãðàôû òðåòüåé ñòåïåíè íàçûâàþò êóáè÷åñêèìè. Ýòî ãðàôû G11 íà ðèñ. 1.7 è G1 íà ðèñ. 1.8. Î÷åâèäíî, ÷òî ÷èñëî ðåáåð â ðåãóëÿðíîì ãðàôå ñòåïåíè d ðàâíî m= 12 nd . Èç ýòîãî ñëåäóåò, ÷òî ïðè íå÷åòíîì ÷èñëå âåðøèí ðåãóëÿðíûé ãðàô ìîæåò èìåòü òîëüêî ÷åòíóþ ñòåïåíü, à ïðè íå÷åòíîé ñòåïåíè òîëüêî ÷åòíîå ÷èñëî âåðøèí. Ïýòîìó ëþáîé êóáè÷åñêèé ãðàô èìååò ÷åòíîå ÷èñëî âåðøèí. Äâóäîëüíûå ãðàôû. Çàâåðøàÿ îáçîð ãðàôîâ, ïðåäñòàâëåííûõ íà ðèñ. 1.7, îõàðàêòåðèçóåì êëàññ äâóäîëüíûõ ãðàôîâ. Ãðàô íàçûâàåòñÿ äâóäîëüíûì, åñëè ñóùåñòâóåò òàêîå ðàçáèåíèå ìíîæåñòâà åãî âåðøèí V íà äâà ïîäìíîæåñòâà (äâå äîëè) V1 è V2 , ÷òî êîíöû ëþáîãî ðåáðà ïðèíàäëåæàò ðàçíûì ïîäìíîæåñòâàì. Ñðåäè ãðàôîâ íà ðèñ. 1.7 ïîä îïðåäåëåíèå äâóäîëüíîãî ïîäïàäàþò ãðàôû G1 G4 , G6 è G7 , ïðè÷åì îäíîçíà÷íîå ðàçáèåíèå ìíîæåñòâà âåðøèí íà äîëè âîçìîæ15
íî òîëüêî äëÿ ñâÿçíûõ ãðàôîâ G6 è G7 . Íà ðèñ. 1.9 äàíû áîëåå íàãëÿäíûå ïðèìåðû äâóäîëüíûõ ãðàôîâ2 . Íåñìîòðÿ íà î÷åâèäíîå íåñõîäñòâî èçîáðàæåíèé, G1 è G2 èçîìîðôíû, ò. å. ýòî ôàêòè÷åñêè îäèí è òîò æå ãðàô, ÷òî ëåãêî ïðîâåðèòü. v1 v2 v3 v4 t t t t A A @ @ A@ @ A A @ @ A @ A @ A A @ d d d @A d v5 v6 v7 v8 G1
v5 d v @ @t2
∼ t v3
d v8
v6 d
v1 t
t v@ 4@ d v7
v1 v2 v3 t t t A @ A A@ A A @ A A @ A A d d @A d v4 v5 v6
G2
G3
v1 t
J
dvJ4
t J
vH J 2 H
Jd H H d t v5 v3 v6
∼
G4
Ðèñ. 1.9
Òî æå ñàìîå îòíîñèòñÿ ê ïàðå G3 è G4 . Êðîìå òîãî, çäåñü êàæäàÿ âåðøèíà îäíîé äîëè {v1 , v2 , v3 } ñìåæíà ñ êàæäîé âåðøèíîé äðóãîé äîëè {v4 , v5 , v6 }. Òàêèå ãðàôû íàçûâàþò ïîëíûìè äâóäîëüíûìè è îáîçíà÷àþò â îáùåì ñëó÷àå Kn1 ,n2 , ãäå n1 =|V1 |, n2 =|V2 |. Î÷åâèäíî, ÷òî |E(Kn1 ,n2 )|=n1 n2 . Ñóùåñòâóåò ïðîñòîé ñïîñîá ðàñïîçíàâàíèÿ äâóäîëüíîñòè ãðàôà, îñíîâàííûé íà ñëåäóþùåé òåîðåìå Êåíèãà. Òåîðåìà 1.2 Ãðàô ÿâëÿåòñÿ äâóäîëüíûì, òîãäà è òîëüêî òîãäà, êîãäà îí íå ñîäåðæèò öèêëîâ íå÷åòíîé äëèíû. ¤  îñíîâó äîêàçàòåëüñòâà (è àëãîðèòìà ðàñïîçíàâàíèÿ) ìîæåò áûòü ïîëîæåíà ñëåäóþùàÿ ïðîöåäóðà ðàçìåòêè ãðàôà. Âûáèðàåì íåêîòîðóþ âåðøèíó v è ïîìå÷àåì åå çíàêîì " + ". Äàëåå äëÿ êàæäîé ïîìå÷åííîé íà ïðåäûäóùåì øàãå âåðøèíû v îòûñêèâàåì âñå åå ñîñåäíèå âåðøèíû è ïîìå÷àåì èõ ïðîòèâîïîëîæíûì çíàêîì. Ïðîäîëæàåì ýòó îïåðàöèþ äî òåõ ïîð, ïîêà íå áóäåò ïîëó÷åí îäèí èç äâóõ âîçìîæíûõ ðåçóëüòàòîâ: à) âñå âåðøèíû ãðàôà îêàæóòñÿ ïîìå÷åííûìè áåç êàêèõëèáî êîëëèçèé, ò. å. ìåòêè ëþáîé âåðøèíû ñî ñòîðîíû åå ñîñåäåé ñîâïàäàþò. Ýòî îçíà÷àåò, ÷òî âñå öåïè, ñîåäèíÿþùèå ëþáóþ âåðøèíó ãðàôà ñ v, ñîñòîÿò òîëüêî èç ÷åòíîãî èëè òîëüêî èç íå÷åòíîãî ÷èñëà äóã è, çíà÷èò, â ñîâîêóïíîñòè îáðàçóþò öèêëû ÷åòíîé äëèíû. Âìåñòå ñ òåì ñîãëàñîâàííîñòü 2 Âåðøèíû,
îòíîñÿùèåñÿ ê ðàçíûì äîëÿì, èçîáðàæåíû ïî-ðàçíîìó.
16
ìåòîê âñåõ âåðøèí ñâèäåòåëüñòâóåò î âîçìîæíîñòè "äâóäîëüíîãî ðàçáèåíèÿ" ìíîæåñòâà âåðøèí ãðàôà (ñîáñòâåííî ðàñïðåäåëåíèå çíàêîâ è îïðåäåëÿåò ýòî ðàçáèåíèå); á) âîçíèêíåò ñèòóàöèÿ, êîãäà íåêòîðàÿ âåðøèíà u îêàæåòñÿ ïîìå÷åííîé çíàêîì " + " ñî ñòîðîíû îäíîé ñîñåäíåé âåðøèíû è çíàêîì " − " ñî ñòîðîíû äðóãîé. Ýòî çíà÷èò, ÷òî â ãðàôå åñòü äâå ïðîñòûå öåïè, ñîåäèíÿþùèå v è u, îäíà èç êîòîðûõ ñîñòîèò èç ÷åòíîãî ÷èñëà äóã, à äðóãàÿ èç íå÷åòíîãî, â ñîâîêóïíîñòè îáðàçóþùèå öèêë íå÷åòíîé äëèíû. Âìåñòå ñ òåì, ðàçíûå çíàêè ó âåðøèíû u íå ïîçâîëÿþò âûïîëíèòü "äâóäîëüíîå ðàçáèåíèå" ìíîæåñòâà âåðøèí ãðàôà. ¢ e s 3 2 H A HHH A HH A H A H e s AHH3 HH A H H 2 H AH HAH A H AH As HH e A3 HH2
u AE EA E A s Ee A AAu@ A !aa@A a @As e!! ! a Ðèñ. 1.10
Àíàëîãè÷íî äâóäîëüíûì îïðåäåëÿþòñÿ òðåõ-, ÷åòûðåõ- è, âîîáùå, k -äîëüíûå ãðàôû. Íà ðèñ. 1.10 äàíû ïðèìåðû òðåõ- è ÷åòûðåõäîëüíîãî ãðàôîâ 3 . Ê ñîæàëåíèþ, ïðîñòûõ êðèòåðèåâ âûÿâëåíèÿ k -äîëüíîñòè ãðàôà ïðè k>2 íå ñóùåñòâóåò. Ìóëüòè- è ïñåâäîãðàôû. Ñîãëàñíî îïðåäåëåíèþ, ñîâîêóïíîñòü ðåáåð ãðàôà ÿâëÿåòñÿ ìíîæåñòâîì. Ïîýòîìó ñìåæíûå âåðøèíû ñîåäèíÿåò òîëüêî îäíî ðåáðî. Åñëè äîïóñòèòü º· êðàòíûå (ïàðàëëåëüíûå) ²¯G2 ²¯ G1 ðåáðà, òî ïîëó÷èì ìóëüv5 s v5 s sv2 sv2 ±° ±° ¹¸ òèãðàô. Èíûìè ñëîâàìè, v1 s v1 s ìóëüòèãðàô ýòî ïàðà hV, Ei, @ @ ãäå V ìíîæåñòâî âåðøèí, @s @ s s s à E ñåìåéñòâî ðåáåð. Íàv4 v3 v4 v3 êîíåö, åñëè íàðÿäó ñ êðàòÐèñ. 1.11 íûìè ðàçðåøèòü ðåáðà, ñâÿçûâàþùèå âåðøèíó ñàìó ñ ñîáîé (ïåòëè), òî ïîëó÷èì ïñåâäîãðàô. Ìóëüòèãðàô G1 è ïñåâäîãðàô G2 ïîêàçàíû íà ðèñ. 1.11. 3 Âåðøèíû,
îòíîñÿùèåñÿ ê ðàçíûì äîëÿì, èçîáðàæåíû ïî-ðàçíîìó.
17
1.4. Ìàòðèöû ãðàôîâ Ìàòðèöà ñìåæíîñòè. Îïðåäåëèì ìàòðèöó ñìåæíîñòè
êàê ñèììåòðè÷íóþ êâàäðàòíóþ ìàòðèöó A=[ai,j ] ïîðÿäêà n, â êîòîðîé ýëåìåíò ai,j ðàâåí 1, åñëè â ãðàôå åñòü ðåáðî {vi , vj }, ò. å. vi è vj ñìåæíû, è 0, åñëè òàêîãî ðåáðà íåò. Pn Èç îïðåäåëåíèÿ ñëåäóåò, ÷òî a =d(vi ) ïðè ëþáîì i, Pn Pnj=1Pi,j n i=1 ai,j =d(vj ) ïðè ëþáîì j è i=1 j=1 ai,j =2m, ò. å. êîëè÷åñòâî åäèíèö â ëþáîé ñòðîêå èëè ñòîëáöå ìàòðèöû ñìåæíîñòè ðàâíî ñòåïåíè ñîòâåòñòâóþùåé âåðøèíû ãðàôà, à îáùåå êîëè÷åñòâî åäèíèö ðàâíî óäâîåííîìó ÷èñëó åãî ðåáåð.  êà÷åñòâå ïðèìåðà íà ðèñ. 1.12 ïðèâåäåíû ãðàô G, åãî ìàòðèöà ñìåæíîñòè A è ñòåïåííàÿ ïîñëåäîâàòåëüíîñòü deg vi . vs1 Z B Z v5 s B Zsv2 B B G B B Bs Bs v4 v3
v1 v1 0 v2 1 A = v3 1 v4 1 v5 0 Ðèñ. 1.12
v2 1 0 1 1 0
v3 1 1 0 1 0
v4 1 1 1 0 1
v5 deg vi 0 3 0 3 0 3 1 4 0 1
Îõàðàêòåðèçóåì ìàòðèöû ñìåæíîñòè íåêîòîðûõ âèäîâ ãðàôîâ. Ìàòðèöà ñìåæíîñòè ïóñòîãî ãðàôà On ñîñòîèò èç îäíèõ íóëåé, ò. å. A(On )=0n . Ìàòðèöà ñìåæíîñòè ïîëíîãî ãðàôà Kn ñîñòîèò èç îäíèõ åäèíèö, êðîìå äèàãîíàëüíûõ ýëåìåíòîâ, êîòîðûå ðàâíû 0. Çàïèøåì ýòî êàê A(Kn )=1n −In . Åñëè ãðàô íåñâÿçåí è èìååò s êîìïîíåíò, òî, ïåðåñòàâëÿÿ ñòðîêè è ñòîëáöû, åãî ìàòðèöó ñìåæíîñòè ìîæíî ïðèâåñòè ê áëî÷íîäèàãîíàëüíîìó âèäó: A
A=
11
0
...
0 A22 . . . .. .. . . . . . 0
0
0 0 .. , .
. . . Ass
ãäå êàæäûé äèàãîíàëüíûé áëîê Aii ÿâëÿåòñÿ ìàòðèöåé ñìåæíîñòè êîìïîíåíòû si .  ñëó÷àå k -äîëüíîãî ãðàôà ìàòðèöà 18
ñìåæíîñòè ìîæåò áûòü ïðèâåäåíà ê áëî÷íîìó âèäó, êîãäà ïî ãëàâíîé äèàãîíàëè èäóò òîëüêî "íóëåâûå" áëîêè: 0 A ... A 12 1k A 21 0 . . . A2k A= . .. . . .. .. . . . . Ak1 Ak2 . . .
0
Áëîêè Aij , ãäå i6=j, ìîãóò ðàññìàòðèâàòüñÿ êàê ïðèâåäåííûå4 ìàòðèöû ñìåæíîñòè äâóäîëüíûõ âåðøèííî-ïîðîæäåííûõ ïîäãðàôîâ k -äîëüíîãî ãðàôà, îáðàçîâàííûõ âåðøèíàìè i è j äîëåé, ïðè÷åì Aij =Aji T .  êà÷åñòâå ïðèìåðà íà ðèñ. 1.13 äàí òðåõäîëüíûé ãðàô G ñ äîëÿìè {v1 , v2 }, {v3 , v4 , v5 }, {v6 , v7 } è åãî ìàòðèöà ñìåæíîñòè A .
G
v3 v4 v5 s s ! !s Q c ! A c! ! QQ A ! Q QAsv v2 ! s ! cc P 6 P PP c PP c PP c P v1 s csv7
v1 v2 v3 A = v4 v5 v6 v7
v1 0 0 0 1 0 1 1
v2 0 0 1 0 1 0 1
v3 0 1 0 0 0 0 1
v4 1 0 0 0 0 1 0
v5 0 1 0 0 0 1 0
v6 1 0 0 1 1 0 0
v7 1 1 1 0 0 0 0
Ðèñ. 1.13
Ñâîåîáðàçíûì àíàëîãîì ìàòðèöû ñìåæíîñòè ÿâëÿåòñÿ ìàòðèöà Êèðõãîôà K=[ki,j ], îïðåäåëÿåìàÿ êàê êâàäðàòíàÿ ìàòðèöà ïîðÿäêà n, ýëåìåíòû êîòîðîé ( −1, åñëè âåðøèíû vi è vj ñìåæíû, 0, åñëè âåðøèíû vi è vj íå ñìåæíû, ki,j = deg vi , åñëè i=j. Câÿçü ìåæäó ìàòðèöåé ñìåæíîñòè A è ìàòðèöåé Êèðõãîôà K èìååò âèä K=D−A, ãäå D= diag(deg v1 , deg v2 , . . . , deg vn ), ò. å. ÿâëÿåòñÿ ìàòðèöåé, äèàãîíàëüíûå ýëåìåíòû êîòîðîé ðàâíû ñòåïåíÿì ñîîòâåòñòâóþùèõ âåðøèí. Âàæíàÿ îñîáåííîñòü ìàòðèöû Êèðõãîôà (êàê è ëþáîé äðóãîé ìàòðèöû, ó êîòîðîé 4Â
ïðèâåäåííîé ìàòðèöå ñìåæíîñòè äâóäîëüíîãî ãðàôà ñòðîêè ñîîòâåòñòâóþò âåðøèíàì îäíîé äîëè, à ñòîëáöû âåðøèíàì äðóãîé
19
ñóììà ýëåìåíòîâ êàæäîé ñòðîêè è êàæäîãî ñòîëáöà ðàâíà íóëþ) ñîñòîèò â òîì, ÷òî àëãåáðàè÷åñêèå äîïîëíåíèÿ âñåõ ýëåìåíòîâ ìàòðèöû ðàâíû ìåæäó ñîáîé. Ïîñêîëüêó èçîìîðôíûå ãðàôû ðàçëè÷àþòñÿ ëèøü ðàçìåòêîé (íóìåðàöèåé) âåðøèí ñîîòâåòñòâóþùåãî àáñòðàêòíîãî ãðàôà, ÿñíî, ÷òî èõ ìàòðèöû ñìåæíîñòè (ìàòðèöû Êèðõãîôà) ìîãóò áûòü ïîëó÷åíû îäíà èç äðóãîé ïóòåì íåêîòîðîé ïåðåñòàíîâêè ñòðîê è ñòîëáöîâ. Ìàòðèöà èíöèäåíòíîñòè. Îïðåäåëèì ìàòðèöó èíöèäåíòíîñòè ãðàôà êàê ïðÿìîóãîëüíóþ ìàòðèöó B=[bi,j ] ðàçìåðà n×m, â êîòîðîé ýëåìåíò bi,j ðàâåí 1, åñëè âåðøèíà vi èíöèäåíòíà ðåáðó ej , è 0 â ïðîòèâíîì ñëó÷àå. Ñòðîêè ìàòðèöû B íàçûâàþò âåêòîðàìè èíöèäåíòíîñòè è îáîçíà÷àþò êàê Bi . Íà ðèñ. 1.14 èçîáðàæåí òîò æå ãðàô G , ÷òî è íà ðèñ. 1.12, è ïðèâåäåíà åãî ìàòðèöà èíöèäåíòíîñòè B. vs1 B Z Z s B Zsv2 v5 B B G B B Bs Bs v4 v3
e1 v1 1 v2 1 B = v3 0 v4 0 v5 0
e2 1 0 1 0 0
e3 1 0 0 1 0
e4 0 1 1 0 0
e5 0 1 0 1 0
e6 0 0 1 1 0
e7 0 0 0 = 1 1
B1 B2 B3 B4 B5
Ðèñ. 1.14
Êàê ñëåäóåò èç îïðåäåëåíèÿ, îáùåå êîëè÷åñòâî åäèíèö â ìàòðèöå èíöèäåíòíîñòè ðàâíî óäâîåííîìó ÷èñëó ðåáåð ãðàôà, êîëè÷åñòâî åäèíèö â ëþáîé ñòðîêå ðàâíî ñòåïåíè ñîîòâåòñòâóþùåé âåðøèíû, à ñòîëáöû ñîäåðæàò ïî äâå åäèíèöû. Ïîýòîìó ìåæäó ñòðîêàìè ìàòðèöû ñóùåñòâóåò ïðîñòàÿ çàâèñèìîñòü: ýëåìåíòû ëþáîé ñòðîêè ìîãóò áûòü ïîëó÷åíû ñëîæåíèåì îäíîèìåííûõ ýëåìåíòîâ îñòàëüíûõ ñòðîê ïî ìîäóëþ 2. Èñïîëüçóÿ ïîíÿòèå âåêòîðà èíöèäåíòíîñòè, ìîæíî çàïèñàòü P Bi =( Bj ) (mod 2), ãäå 1≤j≤ n è j6=i. Òàê, äëÿ ïðèâåäåííîé âûøå ìàòðèöû èìååì: B1 =B2 ⊕B3 ⊕B4 ⊕B5 = [1, 0, 0, 1, 1, 0, 0]⊕
⊕[0, 1, 0, 1, 0, 1, 0]⊕[0, 0, 1, 0, 1, 1, 1]⊕[0, 0, 0, 0, 0, 0, 1]=[1, 1, 1, 0, 0, 0, 0] .
Ìàòðèöà èíöèäåíòíîñòè íåñâÿçíîãî ãðàôà, êàê è ìàòðèöà ñìåæíîñòè, ìîæåò áûòü ïðèâåäåíà ê áëî÷íî-äèàãîíàëüíîìó âèäó, ãäå êàæäûé äèàãîíàëüíûé áëîê ÿâëÿåòñÿ ìàòðèöåé èíöèäåíòíîñòè íåêîòîðîé êîìïîíåíòû ñâÿçíîñòè. 20
Ïîñêîëüêó â ãðàôå îòñóòñòâóþò ïàðàëëåëüíûå ðåáðà, òî ñêàëÿðíîå ïðîèçâåäåíèå ëþáîé ïàðû âåêòîðîâ èíöèäåíòíîñòè Bi Bj ðàâíî åäèíèöå, åñëè âåðøèíû vi è vj ñìåæíû, è íóëþ, åñëè ýòè âåðøèíû íåñìåæíû. Ñëåäîâàòåëüíî, ïðîèçâåäåíèå BBT äîëæíî ñîâïàäàòü ñ ìàòðèöåé ñìåæíîñòè ãðàôà çà èñêëþ÷åíèåì äèàãîíàëüíûõ ýëåìåíòîâ, êîòîðûå ðàâíû ñòåïåíÿì ñîîòâåòñòâóþùèõ âåðøèí. Ýòî îçíà÷àåò, ÷òî ìàòðèöà ñìåæíîñòè è ìàòðèöà èíöèäåíòíîñòè ãðàôà ñâÿçàíû ñîîòíîøåíèåì A=BBT −D , ãäå D= diag(deg v1 , deg v2 , . . . , deg vn ) . Ïðèìåíèòåëüíî ê ìàòðèöàì èíöèäåíòíîñòè èçîìîðôíûõ ãðàôîâ òàêæå ñïðàâåäëèâî óòâåðæäåíèå î òîì, ÷òî îíè ìîãóò áûòü ïîëó÷åíû îäíà èç äðóãîé ïóòåì íåêîòîðîé ïåðåñòàíîâêè ñòðîê è ñòîëáöîâ. Êðîìå ðàññìîòðåííûõ äëÿ ïðåäñòàâëåíèÿ ãðàôîâ èñïîëüçóþò è äðóãèå ìàòðèöû. Íåêîòîðûå èç íèõ îïèñàíû â ñëåäóþùèõ ðàçäåëàõ. Ñïèñêè. Ïðè ðåøåíèè ìíîãèõ çàäà÷ íàðÿäó ñ ìàòðèöàìè äëÿ ïðåäñòàâëåíèÿ ãðàôîâ èñïîëüçóþò ñïèñîê ðåáåð (ñïèñîê èíöèäåíòíîñòè) è ñïèñîê âåðøèí (ñïèñîê ñìåæíîñòè). Òàê, äëÿ ãðàôà íà ðèñ. 1.14 ýòè ñïèñêè èìåþò âèä: e1 v1 v2
Ñïèñîê ðåáåð e2 e3 e4 e5 e6 e7 v1 v1 v2 v2 v3 v4 v3 v4 v3 v4 v4 v5
Ñïèñîê âåðøèí v1 v2 , v3 , v4 v2 v1 , v3 , v4 v3 v1 , v2 , v4 v4 v1 , v2 , v3 , v5 v5 v2
.
 ñïèñêå ðåáåð êàæäîå ðåáðî ïðåäñòàâëåíî ïàðîé êîíöåâûõ âåðøèí, à â ñïèñêå ñìåæíîñòè äëÿ êàæäîé âåðøèíû óêàçàíû âñå ñìåæíûå ñ íåé. Ìîæíî ñ÷èòàòü, ÷òî ñïèñîê ðåáåð ÿâëÿåòñÿ êîìïàêòíîé çàïèñüþ ìàòðèöû èíöèäåíòíîñòè, åñëè â êàæäîì ñòîëáöå çàìåíèòü îáå åäèíèöû îáîçíà÷åíèåì ñîîòâåòñòâóþùèõ âåðøèí (ñòðîê), à íóëè îòáðîñèòü. Àíàëîãè÷íî èç ìàòðèöû ñìåæíîñòè ìîæíî ïîëó÷èòü ñïèñîê âåðøèí, åñëè åäèíèöû â êàæäîé ñòðîêå çàìåíèòü îáîçíà÷åíèåì ñîîòâåòñòâóþùåé âåðøèíû (ñòîëáöà) è îòáðîñèòü íóëè.
21
1.5. Äèàìåòð, ðàäèóñ è öåíòð ãðàôà Ïóñòü v è w ëþáûå äâå âåðøèíû ñâÿçíîãî ãðàôà G . Íàçîâåì ðàññòîÿíèåì ìåæäó v è w äëèíó ñàìîé êîðîòêîé öåïè, ñîåäèíÿþùåé ýòè âåðøèíû, è îáîçíà÷èì êàê d(v, w). Òîãäà êàæäàÿ âåðøèíà ãðàôà v ìîæåò áûòü îõàðàêòåðèçîâàíà âåëè÷èíîé e(v)= max d(v, w), êîòîðàÿ íàçûâàåòñÿ ýêñöåíòðèw∈V
ñèòåòîì. Íåòðóäíî óáåäèòüñÿ, ÷òî â ãðàôå G2 íà ðèñ. 1.9 ýêñöåíòðèñèòåò âñåõ âåðøèí ðàâåí òðåì, òîãäà êàê â ãðàôå íà ðèñ. 1.14 èìååì: e(v1 )=e(v2 )=e(v3 )=e(v5 )=2, e(v4 )=1. Î÷åâèäíî, ÷òî â ïîëíîì ãðàôå âñå âåðøèíû èìåþò ýêñöåíòðèñèòåò ðàâíûé 1, à â ïðîñòîì öèêëå [n/2]. Ìàêñèìàëüíûé ýêñöåíòðèñèòåò d(G)= max e(v) íîñèò íàv∈V
çâàíèå äèàìåòðà ãðàôà, à ìèíèìàëüíûé r(G)= min e(v) ðàv∈V
äèóñà ãðàôà G . Äèàìåòð ãðàôà íà ðèñ. 1.14 ðàâåí äâóì, ðàäèóñ åäèíèöå, à â ãðàôå G2 íà ðèñ. 1.9 è äèàìåòð è ðàäèóñ ðàâíû òðåì.  ïîëíîì ãðàôå èìååì d(Kn )=r(Kn )=1, à â ïðîñòîì öèêëå d(Cn )=r(Cn )=[n/2]. Äëÿ ëþáîãî ãðàôà ñïðàâåäëèâî ñîîòíîøåíèå r(G)≤d(G). Âåðøèíà v íàçûâàåòñÿ öåíòðàëüíîé, åñëè e(v)=r(G).  ãðàôå íà ðèñ. 1.14 öåíòðàëüíîé ÿâëÿåòñÿ v4 . Ãðàô ìîæåò èìåòü íåñêîëüêî òàêèõ âåðøèí, à â íåêîòîðûõ ãðàôàõ âñå âåðøèíû îêàçûâàþòñÿ öåíòðàëüíûìè, íàïðèìåð êàê â ãðàôàõ íà ðèñ. 1.9.  ïðîñòîé öåïè ïðè íå÷åòíîì ÷èñëå âåðøèí òîëüêî îäíà ÿâëÿåòñÿ öåíòðàëüíîé, à ïðè ÷åòíîì èõ ÷èñëå òàêèõ âåðøèí äâå.  ïîëíîì ãðàôå öåíòðàëüíûìè ÿâëÿþòñÿ âñå âåðøèíû. Òî æå ñàìîå ñïðàâåäëèâî è äëÿ ïðîñòîãî öèêëà. Ìíîæåñòâî âñåõ öåíòðàëüíûõ âåðøèí íàçûâàåòñÿ öåíòðîì ãðàôà. Ïîíÿòèÿ öåíòðàëüíîé âåðøèíû è öåíòðà ãðàôà ïîÿâèëèñü â ñâÿçè ñ çàäà÷àìè îïòèìàëüíîãî ðàçìåùåíèÿ ïóíêòîâ ìàññîâîãî îáñëóæèâàíèÿ, òàêèõ êàê áîëüíèöû, ïîæàðíûå ÷àñòè, ïóíêòû îõðàíû îáùåñòâåííîãî ïîðÿäêà è ò. ï., êîãäà âàæíî ìèíèìèçèðîâàòü íàèáîëüøåå ðàññòîÿíèå îò ëþáîé òî÷êè íåêîòîðîé ñåòè äî áëèæàéøåãî ïóíêòà îáñëóæèâàíèÿ.
22
1.6. Îðèåíòèðîâàííûå ãðàôû Íàðÿäó ñ íåîðèåíòèðîâàííûìè â òåîðèè ãðàôîâ ðàññìàòðèâàþòñÿ îðèåíòèðîâàííûå ãðàôû, èëè îðãðàôû.
Òåîðåòèêî-ìíîæåñòâåííîå îïðåäåëåíèå îðãðàôà.
Ïóñòü V íåïóñòîå ìíîæåñòâî, íàïðèìåð, {v1 , v2 , v3 , v4 , v5 }. Çàïèøåì åãî äåêàðòîâ êâàäðàò V 2 =V ×V. Äëÿ íàøåãî ïðèìåðà ýòî ìíîæåñòâî âñåõ óïîðÿäî÷åííûõ ïàð âèäà (vi , vj ), i, j=1, 5 : V 2 = {(v1 , v1 ) , (v2 , v1 ) , (v3 , v1 ) , (v4 , v1 ) , (v5 , v1 ) ,
(v1 , v2 ) , (v2 , v2 ) , (v3 , v2 ) , (v4 , v2 ) , (v5 , v2 ) ,
(v1 , v3 ) , (v1 , v4 ), (v1 , v5 ) , (v2 , v3 ) , (v2 , v4 ) , (v2 , v5 ) , (v3 , v3 ) , (v3 , v4 ) , (v3 , v5 ) , (v4 , v3 ) , (v4 , v4 ) , (v4 , v5 ) , (v5 , v3 ) , (v5 , v4 ) , (v5 , v5 )} .
Âîçüìåì ïðîèçâîëüíî íåêîòîðîå A ⊆ V 2 , íàïðèìåð, A={(v1 , v2 ), (v1 , v3 ), (v2 , v5 ), (v3 , v2 ), (v4 , v1 ), (v4 , v3 ), (v5 , v4 )}. 5 Ïàðó hV, Ai íàçûâàþò îðèåíòèðîâàííûì ãðàôîì G , â êîòîðîì V ìíîæåñòâî âåðøèí, A ìíîæåñòâî äóã, ÿâëÿþùååñÿ ïîäìíîæåñòâîì V 2 . Îêîí÷àòåëüíî ñôîðìóëèðóåì îïðåäåëåíèå òàê: ïàðà hV, Ai íàçûâàåòñÿ îðèåíòèðîâàííûì ãðàôîì, åñëè V íåïóñòîå ìíîæåñòâî ýëåìåíòîâ, íàçûâàåìûõ âåðøèíàìè, A ìíîæåñòâî óïîðÿäî÷åííûõ ïàð ðàçëè÷íûõ ýëåìåíòîâ èç V, íàçûâàåìûõ äóãàìè. Òîãäà äëÿ íàøåãî ïðèìåðà èìååì G(V, A)=h{v1 , v2 , v3 , v4 , v5 }, {(v1 , v2 ), (v1 , v3 ), (v2 , v5 ), (v3 , v2 ), (v4 , v1 ), (v4 , v3 ), (v5 , v4 )}i, ãäå (vi , vj ) äóvs1 ãà, ó êîòîðîé vi íà÷àëüíàÿ, à vj êî BZZ ~ sv2 s íå÷íàÿ âåðøèíû. Èçîáðàæåíèå ýòîãî ãðàôà v5 B B Z B ïðèâåäåíî íà ðèñ. 1.15. Î÷åâèäíî, ÷òî ìíîBBN BN æåñòâî äóã, ñîåäèíÿþùèõ ýëåìåíòû ìíîæåv4 s - sv3 ñòâà âåðøèí, îòîáðàæàåò ýòî ìíîæåñòâî ñàÐèñ. 1.15 ìî â ñåáÿ. Ïîýòîìó îðãðàô ìîæíî ðàññìàòðèâàòü êàê ïàðó hV, Γi, ãäå Γ îòîáðàæåíèå, çàäàííîå íà ìíîæåñòâå V. Äëÿ ãðàôà íà ðèñ. 1.15 èìååì
Γ(v1 ) = {v2 , v3 }, Γ(v4 ) = {v1 , v3 }, 5Â
Γ(v2 ) = {v5 }, Γ(v5 ) = {v4 }.
Γ(v3 ) = {v2 },
çàïèñè äëÿ V 2 ýëåìåíòû èíîæåñòâà A ïîä÷åðêíóòû.
23
Ïîñêîëüêó Γ(vi ) îáîçíà÷àåò ìíîæåñòâî êîíå÷íûõ âåðøèí âñåõ äóã, èñõîäÿùèõ èç vi , òî ÷åðåç Γ−1 (vi ) åñòåñòâåííî îáîçíà÷èòü ìíîæåñòâî íà÷àëüíûõ âåðøèí âñåõ äóã, âõîäÿùèõ â vi . Òîãäà îïèñàíèå ãðàôà, èçîáðàæåííîãî íà ðèñ. 1.15, ìîæåò áûòü âûïîëíåíî òàê: Γ−1 (v1 ) = {v4 }, Γ−1 (v2 ) = {v1 , v3 }, Γ−1 (v3 ) = {v1 , v4 }, Γ−1 (v4 ) = {v5 }, Γ−1 (v5 ) = {v2 }.
Î êîëè÷åñòâå îðãðàôîâ. Ëþáîìó ïðîñòîìó ãðàôó G
ìîæíî ïîñòàâèòü â ñîîòâåòñòâèå îðãðàô, ïðèäàâ êàæäîìó ðåáðó îäíó èç äâóõ âîçìîæíûõ îðèåíòàöèé. Âñåãî èìååòñÿ 2m ðàçëè÷íûõ âàðèàíòîâ îðèåíòàöèè ìíîæåñòâà èç m ðåáåð, ò. å. èç îäíîãî ïðîñòîãî ïîìå÷åííîãî ãðàôà â îáùåì ñëó÷àå ìîæíî ïîëó÷èòü 2m îðèåíòèðîâàííûõ. Êðîìå òîãî, âìåñòî îäíîé äóãè ìîæíî âçÿòü äâå ïàðàëëåëüíûå ñ ïðîòèâîïîëîæíîé îðèåíòàöèåé. Âàðüèðóÿ êîëè÷åñòâî ïàð ïàðàëëåëüíûõ äóã è âûáèðàÿ èõ â ðàçëè÷íûõ êîìáèíàöèÿõ, ïîëó÷àåì äîïîëíèòåëüíîå è âåñüìà ñóùåñòâåííîå ðàñøèðåíèå ÷èñëà ãðàôîâ, ïðîèçâîäíûõ îò ãðàôà G. Õàðàêòåðèñòèêè îðãðàôîâ. Ïðè îïèñàíèè îðãðàôîâ èñïîëüçóþò òå æå ïîíÿòèÿ, òåðìèíû è õàðàêòåðèñòèêè, ÷òî è äëÿ íåîðèåíòðîâàííûõ ãðàôîâ, íî åñòü è ñâîÿ ñïåöèôèêà, îáóñëîâëåííàÿ íàëè÷èåì îðèåíòàöèè äóã. Íàïðèìåð, äëÿ îðãðàôîâ ñîõðàíÿþòñÿ ïîíÿòèÿ ñìåæíîñòè è èíöèäåíòíîñòè, îïðåäåëåííûå â ðàçä. 1.1, íî íàðÿäó ñ òàêîé õàðàêòåðèñòèêîé, êàê ñòåïåíü âåðøèíû deg v, èñïîëüçóþò åùå äâå: ïîëóñòåïåíü èñõîäà ÷èñëî èñõîäÿùèõ èç v äóã deg+ v=|Γ(v)| è ïîëóñòåïåíü çàõîäà ÷èñëî âõîäÿùèõ â v äóã deg− v=|Γ−1 (v)| , ñâÿçàííûå î÷åâèäíûìè ñîîòíîøåíèÿìè deg v= deg+ v+ deg− v è Pn P n − + deg v = i i=1 i=1 deg vi =|A|=m , ãäå m ÷èñëî äóã â ãðàôå. Íåêîòîðûå ñïåöèôè÷åñêèå ïîíÿòèÿ è õàðàêòåðèñòèêè îðãðàôîâ ðàññìîòðåíû â ïîñëåäóþùèõ ðàçäåëàõ. Ìàòðèöû îðãðàôîâ. Ìàòðèöà ñìåæíîñòè îðãðàôà îïðåäåëÿåòñÿ êàê êâàäðàòíàÿ ìàòðèöà A=[ai,j ] ïîðÿäêà n , â êîòîðîé ýëåìåíò ai,j ðàâåí 1, åñëè â ãðàôå åñòü äóãà (vi , vj ) , è 0, åñëè òàêîé äóãè íåò.  êà÷åñòâå ïðèìåðà íà ðèñ. 1.16 ïðåä-
24
ñòàâëåíû îðãðàô G , åãî ìàòðèöà ñìåæíîñòè A è äâå ñòåïåííûå ïîñëåäîâàòåëüíîñòè deg+ vi è deg− vi . s- s+ v1 s vs v3 s v4 2 ] O O s qs v6 v5 I
v1 v2 v A= 3 v4 v5 v6
v1 0 1 0 0 1 0
v2 1 0 1 0 0 0
v3 0 1 0 1 0 0
v4 1 0 1 0 0 1
v5 0 0 0 0 0 1
v6 deg+ vi 0 2 0 2 0 2 0 1 1 2 0 2
deg− vi 2 2 2 3 1 1 Ðèñ. 1.16
Èç îïðåäåëåíèÿ ñëåäóåò (ïðèìåð ïîäòâåðæäàåò ýòî), ÷òî: â îáùåì ñëó÷àå ìàòðèöà íå ñèììåòðè÷íà, òàê êàê íàëè÷èå äóãè (vi , vj ) ñîâñåì íå îçíà÷àåò, ÷òî â ãðàôå ïðèñóòñòâóåò òàêæå è îáðàòíàÿ äóãà (vj , vi ) ; êîëè÷åñòâî åäèíèö â ëþáîé P ñòðîêå ðàâíî ïîëóñòåïåíè n + èñõîäà ñîòâåòñòâóþùåé âåðøèíû: j=1 ai,j = deg vi , i=1, n ; êîëè÷åñòâî åäèíèö â ëþáîì ñòîëáöå ðàâíî ïîëóñòåïåíè Pn − çàõîäà ñîòâåòñòâóþùåé âåðøèíû: i=1 ai,j = deg vj , j=1, n ; îáùåå åäèíèö â ìàòðèöå ðàâíî ÷èñëó äóã â Pn êîëè÷åñòâî Pn ãðàôå: i=1 j=1 ai,j = m.
Ìàòðèöà èíöèäåíòíîñòè îðãðàôà îïðåäåëÿåòñÿ êàê ïðÿìîóãîëüíàÿ ìàòðèöà B=[bi,j ] ðàçìåðà n×m, â êîòîðîé ( 1 , åñëè vi ÿâëÿåòñÿ íà÷àëüíîé âåðøèíîé äóãè aj ; bi,j = −1 , åñëè vi ÿâëÿåòñÿ êîíå÷íîé âåðøèíîé äóãè aj ; 0 , åñëè âåðøèíà vi è äóãà aj íå èíöèäåíòíû.  ñîîòâåòñòâèè ñ ýòèì îïðåäåëåíèåì ìàòðèöà èíöèäåíòíîñòè, íàïðèìåð äëÿ ãðàôà íà ðèñ. 1.16, èìååò âèä: v1 v2 v B = v3 4 v5 v6
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 1 1 0 0 −1 0 0 −1 0 0 0 0 −1 1 0 1 −1 0 0 0 0 0 0 0 −1 −1 0 1 1 0 0 0 0 −1 0 0 1 0 0 −1 0 −1 0 0 0 0 0 0 0 0 0 1 0 1 −1 0 0 0 0 0 0 0 0 1 −1 1
25
Ñâîéñòâà ìàòðèö èíöèäåíòíîñòè îðãðàôà è íåîðãðàôà ïðàêòè÷åñêè îäèíàêîâû, õîòÿ åñòü è îòëè÷èÿ. Òàê, â ñëó÷àå îðãðàôà õàðàêòåð çàâèñèìîñòè ñòðîê ìàòðèöû èíöèäåíòíîñòè ñòðîãî ëèíåéíûé: âåêòîð èíöèäåííîñòè ëþáîé âåðøèíû ðàâåí ñóììå âåêòîðîâ èíöèäåíòíîñòè îñòàëüíûõ âåðøèí, âçÿòîé c ïðîòèâîïîëîæíûì çíàêîì. Íàðÿäó ñ ìàòðèöàìè äëÿ îïèñàíèÿ îðãðàôîâ èñïîëüçóþòñÿ è ñïèñêè. Ôàêòè÷åñêè ïàðû hV, Γi , hV, Γ− i è ÿâëÿþòñÿ ñîîòâåòñòâåííî ïðÿìûì è èíâåðòèðîâàííûì ñïèñêàìè âåðøèí.  ñïèñêå äóã äîëæíà áûòü îòðàæåíà èõ îðèåíòàöèÿ. Âèäû îðãðàôîâ. Êàê è ïðîñòûå ãðàôû, îðèåíòèðîâàííûå ìîãóò áûòü ñâÿçíûìè è íåñâÿçíûìè, ïîëíûìè, k -äîëüíûìè, ðåãóëÿðíûìè è ò. ï. Ñóùåñòâóþò îðèåíòèðîâàííûå àíàëîãè öåïåé, öèêëîâ, äåðåâüåâ. Òèïè÷íûì ïðèìåðîì ïîäîáíîé àíàëîãèè ÿâëÿþòñÿ òàê íàçûâàåìûå òóðíèðû îðèåíòèðîâàííûå ãðàôû, â êîòîðûõ êàæäàÿ ïàðà âåðøèí ñîåäèíåíà òîëüêî îäíîé äóãîé. Ëþáîé òóðíèð ïîëó÷àåòñÿ èç ïðîñòîãî ïîëíîãî ãðàôà, åñëè êàæäîìó åãî ðåáðó äàòü íåêîòîðóþ îðèåíòàöèþ. Íàçâàíèå ýòîãî âèäà ãðàôîâ îáúÿñíÿåòñÿ òåì, ÷òî îíè ïîçâîëÿþò íàãëÿäíî îòîáðàçèòü ðåçóëüòàòû ëþáîãî ñîðåâíîâàíèÿ, êîãäà êàæäûé ó÷àñòíèê äîëæåí âñòðåòèòüñÿ ñî âñåìè îñòàëüíûìè è çàïðåùåíû íè÷üè, íàïðèìåð, êàê â áîëüøîì òåííèñå èëè â âîëåéáîëå. Ïðè ýòîì ó÷àñòíèêàì ñîîòâåòñòâóþò âåðøèíû, à ðåçóëüòàòàì âñòðå÷ äóãè, íàïðàâëåííûå îò ïîáåäèòåëÿ ê ïîáåæäåííîìó. Íà ðèñ. 1.17 èçîáðàæåíû âñå íåïîìå÷åííûå t t
s
s -s @ I 6 @ @s? s T1
s
s -s I 6 @ 6 @ s @s
s -s @ 6 6 @ Rs s @
T2
T3
s s @ 6 6 @ Rs s @ T4
Ðèñ. 1.17
òóðíèðû ÷åòâåðòîãî ïîðÿäêà. Îïèøåì íåêîòîðûå ñâîéñòâà òóðíèðîâ.  ëþáîì òóðíèðå ìîæåò áûòü íå áîëåå îäíîé âåðøèíû s ñ íóëåâîé ïîëóñòåïåíüþ çàõîäà è íå áîëåå îäíîé âåðøèíû t ñ íóëåâîé ïîëóñòåïåíþ èñõîäà, íàçûâàåìûõ ñîîòâåòñòâåííî èñòîêîì è ñòîêîì. Äåéñòâèòåëüíî, íàëè÷èå, íàïðèìåð, äâóõ
26
èñòîêîâ îçíà÷àåò, ÷òî â íåêîòîðîì ðåàëüíîì òóðíèðå åñòü äâà àáñîëþòíûõ ïîáåäèòåëÿ. Ïðèñóòñòâèå ñòîêà èëè èñòîêà ñóùåñòâåííî ñîêðàùàåò êîëè÷åñòâî öèêëîâ â ãðàôå, òàê êàê òàêèå âåðøèíû íå ìîãóò ïðèíàäëåæàòü íè îäíîìó öèêëó. Ïîýòîìó ÷èñëî öèêëîâ â òóðíèðå T (n), èìåþùåì, êàê ãðàôû T1 è T3 íà ðèñ. 1.17, ñòîê èëè èñòîê, ðàâíî ÷èñëó öèêëîâ â òóðíèðå T (n−1), ïîëó÷àþùåìñÿ ïðè óäàëåíèè èç T (n) ñòîêà (èñòîêà) è âñåõ èíöèäåíòíûõ åìó äóã. Ïðîäåëàâ ïîäîáíóþ îïåðàöèþ ñ ãðàôàìè T1 è T3 , óáåæäàåìñÿ, ÷òî "îñòàòîê" èìååò îäèí öèêë. Íàêîíåö, â òóðíèðå, èìåþùåì, êàê ãðàô T2 , è èñòîê s è ñòîê t, ÷èñëî öèêëîâ òî æå, ÷òî è â òóðíèðå, ïîëó÷åííîì ïîñëå óäàëåíèÿ s è t.  ïðèëîæåíèÿõ ÷àñòî âñòðå÷àþòñÿ àöèêëè÷åñêèå îðãðàôû, ò. å. îðãðàôû, íå ñîäåðæàøèå öèêëîâ. Îäèí òàêîé ãðàô åñòü è íà ðèñ. 1.17 ýòî T2 . Áîëåå íàãëÿäíûå ïðèìåðû äàíû íà ðèñ. 1.18. Ïîíÿòíî, ÷òî ëþáîé ãðàô ýòîãî âèäà äîëæåí èìåòü v4 -vs5 s G1 * A @ 6 v3
s A @ H J H
A @ Rs @ Rs js A J HH v * 1 v v 9 2
J 7 A
s J A vH 6 H J A H J ^ j H J H -AU s s v8 v10 V3 V4 V0
V1
V2
G2 v1 s @ R - sv1 V5
v - s2
v - s4
@ R? -? s @ s sv7 v5 ? v3 ? s v6
-? s v8
-? s v9
Ðèñ. 1.18
ïî êðàéíåé ìåðå îäèí ñòîê è îäèí èñòîê. Åñëè ê òîìó æå ðàçìåòêà âåðøèí ãðàôà òàêîâà, ÷òî äëÿ ëþáîé äóãè (vi , vj ) ñïðàâåäëèâî ñîîòíîøåíèå i<j, òî ãîâîðÿò, ÷òî ãðàô òîïîëîãè÷åñêè îòñîðòèðîâàí. Ýòî çíà÷èò, ÷òî, åñëè âåðøèíû ãðàôà îòîáðàæàþò ïðîìåæóòî÷íûå öåëè ïðè âûïîëíåíèè íåêîòîðîãî êîìïëåêñà ðàáîò, à äóãè äåéñòâèÿ, íàïðàâëåííûå íà äîñòèæåíèå ýòèõ öåëåé, òî òîïîëîãè÷åñêàÿ ñîðòèðîâêà îïðåäåëÿåò ïîñëåäîâàòåëüíîñòü äîñòèæåíèÿ öåëåé. Òàê, èç äâóõ ãðàôîâ, èçîáðàæåííûõ íà ðèñ. 1.18, G2 îòñîðòèðîâàí, à G1 íåò. Îäíàêî ãðàô G1 î÷åíü ïðîñòî ñîðòèðóåòñÿ, åñëè ó÷åñòü 27
îò÷åòëèâî âûðàæåíîå ðàçáèåíèå åãî âåðøèí íà ïîäìíîæåñòâà V0 , V1 , . . . , V5 , òàêîå, ÷òî íà÷àëüíàÿ âåðøèíà ëþáîé äóãè ïðèíàäëåæèò ïîäìíîæåñòâó ñ ìåíüøèì èíäåêñîì ïî ñðàâíåíèþ ñ êîíå÷íîé âåðøèíîé. Äîñòàòî÷íî ïðîíóìåðîâàòü ñïåðâà âåðøèíû ïåðâîãî ïîäìíîæåñòâà, ïîòîì âòîðîãî, òðåòüåãî è ò. ä. Ïðè ýòîì âíóòðè ïîäìíîæåñòâà ïîðÿäîê ïðîèçâîëüíûé, à ýòî çíà÷èò, ÷òî ñóùåñòâóåò íåñêîëüêî âàðèàíòîâ òàêîé ðàçìåòêè. Ñëåäîâàòåëüíî, çàäà÷à òîïîëîãè÷åñêîé ñîðòèðîâêè ñâîäèòñÿ ê îòûñêàíèþ ðàçáèåíèÿ ìíîæåñòâà âåðøèí ãðàôà V íà ïîäìíîæåñòâà Vi (íàçûâàåìûå óðîâíÿìè, ñëîÿìè, ÿðóñàìè), òàêèå, ÷òî åñëè âåðøèíà ïðèíàäëåæèò ïîäìíîæåñòâó Vi , òî ëþáàÿ ñëåäóþùàÿ çà íåé âõîäèò â ïîäìíîæåñòâî, èíäåêñ êîòîðîãî áîëüøå i. Èíûìè ñëîâàìè, íà ìíîæåñòâå âåðøèí íåîáõîäèìî íàéòè ÷èñëîâóþ ôóíêöèþ, íàçûâàåìóþ ïîðÿäêîâîé ôóíêöèåé ãðàôà, êîòîðàÿ îïðåäåëÿåòñÿ ñëåäóþùèì îáðàçîì. Ïóñòü G(V, Γ−1 ) àöèêëè÷åñêèé îðãðàô, è íàéäåíû ñëåäóþùèå íåïåðåñåêàþùèåñÿ ïîäìíîæåñòâà ìíîæåñòâà V : V0 = {v | V1 = {v | V2 = {v | ... Vr = {v |
v∈V v ∈ V −V0 v ∈ V −(V0 ∪V1 ) r−1 S v ∈V− Vj j=0
& Γ−1 (v) = ∅ }; & Γ−1 (v) ⊂ V0 }; & Γ−1 (v) ⊂ (V0 ∪V1 ) }; ... r−1 S & Γ−1 (v) ⊂ Vj }, j=0
ãäå Vr òàêîâî, ÷òî Γ(v)=∅ äëÿ âñåõ v∈Vr . Ïîðÿäêîâàÿ ôóíêöèÿ ãðàôà O(v), îïðåäåëåííàÿ íà ìíîæåñòâå âåðøèí, ñîïîñòàâëÿåò êàæäîé èç íèõ ÷èñëî, ðàâíîå çíà÷åíèþ èíäåêñà ïîäìíîæåñòâà Vk , ýëåìåíòîì êîòîðîãî ýòà âåðøèíà ÿâëÿåòñÿ, ò. å. åñëè vi ∈Vk , òî O(vi )=k.  ñîîòâåòñòâèè ñ ïðèâåäåííûìè ñîîòíîøåíèÿìè äëÿ ïîëó÷åíèÿ íåîáõîäèìîãî ðàçáèåíèÿ ìíîæåñòâà V íà ïîäìíîæåñòâà V0 , V1 , . . . , Vr ñëåäóåò ïîâòîðíî âûïîëíÿòü ïðîöåäóðó ïîèñêà âåðøèí, ó êîòîðûõ Γ−1 (v)=∅, ñíà÷àëà â çàäàííîì ãðàôå, ïîòîì â ãðàôå, ïîëó÷åííîì èç çàäàííîãî ïóòåì óäàëåíèÿ âåðøèí, íàéäåííûõ íà ïåðâîé èòåðàöèè, çàòåì â ãðàôå, ïîëó÷åííîì ïóòåì óäàëåíèÿ âåðøèí, íàéäåííûõ íà ïåðâûõ äâóõ èòåðàöèÿõ, è ò. ä., ïîêà íå áóäóò îáðàáîòàíû âñå âåðøèíû.
28
Ïîêàæåì íà ïðèìåðå ñïîñîá îòûñêàíèÿ ïîðÿäêîâîé ôóíêöèè, îñíîâàííûé íà èñïîëüçîâàíèè ìàòðèöû ñìåæíîñòè è èçâåñòíûé êàê àëãîðèòì Äåìóêðîíà. Ïóñòü ãðàô G è åãî ìàòðèöà ñìåæíîñòè A âûãëÿäÿò, êàê ïîêàçàíî íà ðèñ. 1.19. Ïîäñ÷èòàåì ÷èñëî åäèíèö â êàæäîì ñòîëáöå ìàòðèöû è çàïèøåì íàéäåííûå çíà÷åíèÿ â ïåðâîé v1 vs2 vs3 1 s Y HH @ H @
HH @ R @ s Hsv4 v10 AK
A G A= s? sA v5 v9 ? 1
O A A
A s s s v6 v8Y v7
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
Ðèñ. 1.19
ñòðîêå òàáë. 1.1. Çàôèêñèðóåì â ñòîëáöå Vi âåðøèíû v3 , v6 ñ íóëåâîé ñóììîé è îòìåòèì òðåòüþ è øåñòóþ ñòðîêè ìàòðèöû. Âíîâü ïîäñ÷èòàåì ÷èñëî åäèíèö â ñòîëáöàõ, íå ó÷èòûâàÿ Èòåðàöèè 1 2 3 4 5 6 O(vi )
Òàáëèöà 1.1 v1 3 3 3 2 1 0 5
v2 v3 v4 3 0 2 3 0 1 1 0
v5 v6 v7 v8 3 0 2 2 3 0 0 0
v9 3 3 2 0
v10 Vi 2 V0 ={v3 , v6 } 2 V1 ={v4 , v7 , v8 } 0 V2 ={v5 , v10 } V3 ={v9 } V4 ={v2 } V5 ={v1 } 4 0 1 2 0 1 1 3 2
ïðè ýòîì ñîäåðæèìîå îòìå÷åíûõ ñòðîê. Ðåçóëüòàòû çàïèøåì âî âòîðîé ñòðîêå òàáëèöû, îïóñêàÿ íóëè, ïîëó÷åííûå íà ïåðâîì øàãå.  ñòîëáåö Vi çàíîñèì âåðøèíû ñ íóëåâîé ñóììîé v4 , v7 , v8 è îòìå÷àåì â ìàòðèöå ñîîòâåòñòâóþùèå ñòðîêè. Ïîâòîðÿåì îïèñàííûå äåéñòâèÿ, ïîêà íå áóäóò îáðàáîòàíû âñå âåðøèíû. Äëÿ çàâåðøåíèÿ ïðîöåññà òðåáóåòñÿ åùå ÷åòûðå èòåðàöèè (ñì. òàáë. 1.1).  ðåçóëüòàòå ïîñëåäíèé ñòîëáåö òàáëèöû 29
äàåò èñêîìîå ðàçáèåíèå ìíîæåñòâà âåðøèí ãðàôà G íà ïîäìíîæåñòâà V0 , V1 , . . . , V5 , à ïîñëåäíÿÿ ñòðîêà ïîðÿäêîâóþ ôóíêöèþ. Èçîáðàæåíèå ðàññìàòðèâàåìîãî ãðàôà, îòðàæàþùåå ïîëó÷åííîå ðàçáèåíèå, äàíî íà ðèñ 1.18 (ñì. ãðàô G1 ).
1.7. Ìàðøðóòû, öåïè è ïðîñòûå öåïè  ðàçä. 1.3 äàíû ïîíÿòèÿ öåïè è ïðîñòîé öåïè, êàê ÷åðåäóþùåéñÿ ïîñëåäîâàòåëüíîñòè âåðøèí è ðåáåð, ïðè÷åì â öåïè ïîïàðíî ðàçëè÷íû âñå ðåáðà, à â ïðîñòîé öåïè âñå âåðøèíû. Ìàðøðóò îïðåäåëÿåòñÿ òàê æå, çà èñêëþ÷åíèåì îãðàíè÷åíèé íà ïîâòîðåíèå âåðøèí è ðåáåð: äîïóñêàåòñÿ ïîâòîðåíèå êàê âåðøèí, òàê è ðåáåð. Òàêèì îáðàçîì, èìååì òðèàäó, îòíîøåíèÿ ìåæäó ýëåìåíòàìè êîòîðîé ìîæíî ïðåäñòàâèòü ñõåìîé: Ìàðøðóò Öåïü Ïðîñòàÿ öåïü
.
Ïðèìåíèòåëüíî ê îðèåíòèðîâàííûì ãðàôàì ñóùåñòâóþò àíàëîãè÷íûå ïîíÿòèÿ: îðèåíòèðîâàííûé ìàðøðóò (îðìàðøðóò), îðèåíòèðîâàííàÿ öåïü (îðöåïü) è îðèåíòèðîâàííàÿ ïðîñòàÿ öåïü (ïðîñòàÿ îðöåïü). Äëÿ ïîñëåäíåé ÷àñòî èñïîëüçóåòñÿ äðóãîé áîëåå êîðîòêèé òåðìèí ïóòü. Ïðè ðàññìîòðåíèè îðãðàôîâ èñïîëüçóþò òàêæå ïîíÿòèÿ: ïîëóìàðøðóò, ïîëóöåïü è ïîëóïóòü, êîòîðûå îòëè÷àþòñÿ îò ñîòâåòñòâóþùèõ èì îðìàðøðóòà, îðöåïè è ïóòè òåì, ÷òî äîïóñêàþòñÿ ðàçíîíàïðàâëåííûå äóãè. Íàïðèìåð, ïîñëåäîâàòåëüíîñòü äóã (v1 , v2 ), (v3 , v2 ), (v3 , v4 ) îïðåäåëÿåò ïîëóïóòü ñ íà÷àëüíîé âåðøèíîé v1 è êîíå÷íîé âåðøèíîé v4 . Ïðèâåäåííàÿ òåðìèíîëîãèÿ â îñíîâíîì ñîîòâåòñòâóåò ïðèíÿòîé, íàïðèìåð â [1]. Âîîáùå æå äëÿ ðàññìàòðèâàåìûõ ïîíÿòèé èñïîëüçóþò è äðóãèå òåðìèíû.  äàëüíåéøåì ñëîâî îðèåíòèðîâàííûé ïðèìåíèòåëüíî ê ìàðøðóòó èëè öåïè áóäåì îïóñêàòü, åñëè èç êîíòåêñòà ÿñíî, î êàêîì ãðàôå èäåò ðå÷ü.
30
2. Ñâÿçíîñòü â îðãðàôàõ 2.1. Îñíîâíûå ïîíÿòèÿ Ãîâîðÿò, ÷òî âåðøèíà w äîñòèæèìà èç âåðøèíû v, åñëè ñóùåñòâóåò ïóòü (v, . . ., w). Åñëè ïðè ýòîì v äîñòèæèìà èç w, òî î âåðøèíàõ ãîâîðÿò, ÷òî îíè âçàèìíî äîñòèæèìû. Îðãðàô íàçûâàåòñÿ ñèëüíî ñâÿçíûì èëè ñèëüíûì, åñëè ëþáûå äâå âåðøèíû â íåì âçàèìíî äîñòèæèìû. Ïðèìåð ñèëüíîãî îðãðàôà ïðèâåäåí íà ðèñ. 2.1,a. Ïîñêîëüêó â ãðàôå èìååòñÿ îðöèêë (v1 , v4 , v2 , v3 , v5 , v1 ), âêëþ÷àþùèé âñå âåðøèíû, òî ëþáûå äâå èç íèõ âçàèìíî äîñòèæèìû. vs1 } > Z Z Zsv v5 s 3 2 Q k Q QQs s v v 4
3
à
vs 1 Z > B Z B Z ~ - sv2 s v5 B B B BN s+ -BBN s v4 v3 á
vs 1 Z > BM Z B ~ sv2 Z s v5 B B B B BN + Bsv v4 s 3 â
Ðèñ. 2.1
Îðãðàô íàçûâàåòñÿ îäíîñòîðîííå ñâÿçíûì èëè îäíîñòîðîííèì, åñëè â ëþáîé ïàðå åãî âåðøèí õîòÿ áû îäíà äîñòèæèìà èç äðóãîé. Ïðèìåð îäíîñòîðîííåãî ãðàôà äàí íà ðèñ. 2.1,á.  ýòîì ãðàôå åñòü îðöèêë (v1 , v3 , v4 , v1 , v2 , v1 ), âêëþ÷àþùèé ÷åòûðå âåðøèíû. Âñå îíè âçàèìíî äîñòèæèìû.  îòëè÷èå îò ýòèõ âåðøèí v5 èìååò íóëåâóþ ïîëóñòåïåíü çàõîäà, à ýòî çíà÷èò, ÷òî íå ñóùåñòâóåò ïóòåé, âåäóùèõ â v5 . Âìåñòå ñ òåì èç v5 äîñòèæèìà ëþáàÿ èç ÷åòûðåõ îñòàëüíûõ âåðøèí. Îðãðàô íàçûâàåòñÿ ñëàáî ñâÿçíûì èëè ñëàáûì, åñëè â íåì ëþáûå äâå âåðøèíû ñîåäèíåíû ïîëóïóòåì.  îòëè÷èå îò ïóòè, êîãäà âñå äóãè îäèíàêîâî îðèåíòèðîâàíû (îò íà÷àëüíîé âåðøèíû ïóòè ê êîíå÷íîé) â ïîëóïóòè ìîãóò áûòü è ïðîòèâîïîëîæíî íàïðàâëåííûå äóãè. Ïðèìåð ñëàáî ñâÿçíîãî îðãðàôà ïðèâåäåí íà ðèñ. 2.1,â. Î÷åâèäíî, ÷òî â ãðàôå íåò ïóòè ìåæäó âåðøèíàìè v3 è v5 , íî ñóùåñòâóåò ïîëóïóòü, ñîñòîÿùèé èç äâóõ ïðîòèâîïîëîæíî íàïðàâëåííûõ äóã (v3 , v4 ) è (v5 , v4 ).
31
2.2. Êîìïîíåíòû ñâÿçíîñòè Äëÿ îðãðàôà îïðåäåëåíû òðè òèïà êîìïîíåíò ñâÿçíîñòè: ñèëüíàÿ êîìïîíåíòà ìàêñèìàëüíûé ñèëüíûé ïîäãðàô, îäíîñòîðîííÿÿ êîìïîíåíòà ìàêñèìàëüíûé îäíîñòîðîííèé ïîäãðàô è ñëàáàÿ êîìïîíåíòà ìàêñèìàëüíûé ñëàáûé ïîäãðàô. Ïîíÿòèå ñèëüíîé êîìïîíåíòû èëëþñòðèðóåò ðèñ. 2.2. Ãðàô G1
G
vs1 -vs2 6 G vs
s? v3
4
vs1 -vs2 vs6 HH Y @ 6 R sv7 v5 s sv7 H s @ v 5 @ I @ I ? s s @? s @? s v4 v3 v8 v8
vs1 -vs2 6
vs1 -vs2 6
s v4
s v4 G01
G2 vs6 @ @ R
vs6 @ R @
vs6 s
sv7 v5 v5 s @ I @ I ? s @? @s s v3 v8 v8
G001
G02
G002
Ðèñ. 2.2
G , êîòîðûé ÿâëÿåòñÿ îäíîñòîðîííå ñâÿçíûì, ñîäåðæèò øåñòü ñèëüíûõ ïîäãðàôîâ G1 , G01 , G001 , G2 , G02 , G002 , èç êîòîðûõ òîëüêî äâà G1 è G2 ÿâëÿþòñÿ ñèëüíûìè êîìïîíåíòàìè. Àíàëîãè÷íî èëëþñòðèðóåòñÿ ïîíÿòèå îäíîñòîðîííåé êîìïîíåíòû.  ðàññìàòðèâàåìîì ñëó÷àå îíîñòîðîííÿÿ êîìïîíåíòà ñîâïàäàåò ñ ñàìèì ãðàôîì. Åñëè æå ñìåíèòü, íàïðèìåð, îðèåíòàöèþ äóãè (v4 , v1 ) íà ïðîòèâîïîëîæíóþ, òî ïîëó÷èì ñëàáîñâÿçíûé ãðàô ñ äâóìÿ îäíîñòîðîííèìè êîìïîíåíòàìè, îäíà èç êîòîðûõ îáðàçîâàíà âåðøèíàìè v1 v4 , à äðóãàÿ âåðøèíàìè v2 v8 . Êàê ïîêàçûâàåò ýòîò ïðèìåð, îäíîñòîðîííèå êîìïîíåíòû ãðàôà â îòëè÷èå îò ñèëüíûõ ìîãóò èìåòü îáùèå âåðøèíû. Ñëàáàÿ êîìïîíåíòà ýêâèâàëåíòíà êîìïîíåíòå ñâÿçíîñòè. Ïîäîáíî ñèëüíûì êîìïîíåíòàì ñëàáûå êîìïîíåíòû íå ìîãóò èìåòü îáùèõ âåðøèí.
32
2.3. Êîíäåíñàöèÿ îðãðàôà Íà îñíîâå ñèëüíûõ êîìïîíåíò îïðåäåëÿåòñÿ åùå îäèí âèä ãðàôîâ ãðàô êîíäåíñàöèè. Ïóñòü S1 , S2 , . . . , Sk ñèëüíûå êîìïîíåíòû ãðàôà G(V, E). Êîíäåíñàöèåé ãðàôà G íàçûâàåòñÿ ãðàô G∗ (V ∗ , E ∗ ), êàæäàÿ âåðøèíà êîòîðîãî vi∗ ïðåäñòàâëÿåò ìíîæåñòâî âåðøèí ñîîòâåòñòâóþùåé ñèëüíîé êîìïîíåíòû Si ãðàôà G, à äóãà (vi∗ , vj∗ ) ÿâëÿåòñÿ ýëåìåíòîì ìíîæåñòâà E ∗ , åñëè â ãðàôå G åñòü ïî êðàéíåé ìåðå îäíà äóãà, èäóùàÿ îò íåêîòîðîé âåðøèíû êîìïîíåíòû Si ê îäíîé èç âåðøèí êîìïîíåíòû Sj . Ïðèìåð îðãðàôà G, èìåþùåãî ÷åòûðå ñèëüíûõ êîìïîíåíòû S1 S4 , è åãî êîíäåíñàöèè G∗ äàí íà ðèñ. 2.3. v1
G
v2 v3 - s s S1 ={v1 ,v2 } {v3 }=S2 s ∗ @ @ ∗ s v1 @ v2 @ @ @ ? - s? @ Rvs6 @ @ Rvs7 @ G∗ v4 s @ v @ 5 6 6 @ @ @ R s?v4∗ v3∗ s? @ R s R s S3 ={v4 ,v5 ,v8 ,v9 } {v6 ,v7 ,v10 }=S4 @ s v8 v9 v10 s I
Ðèñ. 2.3
ßñíî, ÷òî ãðàô êîíäåíñàöèè G∗ íå ìîæåò ñîäåðæàòü öèêëîâ, òàê êàê âñå âåðøèíû ëþáîãî öèêëà âçàèìíî äîñòèæèìû è çíà÷èò ïðèíàäëåæàò íåêîòîðîé ñèëüíîé êîìïîíåíòå, à ýòî ïðîòèâîðå÷èò îïðåäåëåíèþ êîíäåíñàöèè.
2.4. Îòûñêàíèå ñèëüíûõ êîìïîíåíò Ïóñòü R(v) ìíîæåñòâî âåðøèí (n, m) -ãðàôà, äîñòèæèìûõ èç âåðøèíû v. Òîãäà, ïîñêîëüêó Γ(v) ÿâëÿåòñÿ ìíîæåñòâîì âåðøèí, äîñòèæèìûõ èç v ñ èñïîëüçîâàíèåì ïóòåé äëèíû 1, Γ2 (v) ìíîæåñòâîì âåðøèí, äîñòèæèìûõ èç v ñ èñïîëüçîâàíèåì ïóòåé äëèíû 2, Γ3 (v) ñ èñïîëüçîâàíèåì ïóòåé äëèíû 3 è ò. ä., òî R(v) ìîæíî ïðåäñòàâèòü â âèäå
R(v) = {v} ∪ Γ(v) ∪ Γ2 (v) ∪ . . . ∪ Γp (v) .
33
Îïåðàöèè îáúåäèíåíèÿ âûïîëíÿþòñÿ ïîñëåäîâàòåëüíî ñëåâà íàïðàâî äî òåõ ïîð, ïîêà ìíîæåñòâî R(v) íå ïåðåñòàíåò óâåëè÷èâàòüñÿ. Êîëè÷åñòâî îïåðàöèé çàâèñèò îò ãðàôà, íî, î÷åâèäíî, ÷òî p
Ïóñòü Q(v) ìíîæåñòâî âåðøèí (n, m)-ãðàôà, èç êîòîðûõ äîñòèãàåòñÿ âåðøèíà v. Òîãäà, ïîñêîëüêó Γ−1 (v) ìíîæåñòâî âåðøèí, èç êîòîðûõ v äîñòèãàåòñÿ ñ èñïîëüçîâàíèåì ïóòåé äëèíû 1, Γ−2 (v) ìíîæåñòâî âåðøèí, èç êîòîðûõ v äîñòèãàåòñÿ ñ èñïîëüçîâàíèåì ïóòåé äëèíû 2, Γ−3 (v) ñ èñïîëüçîâàíèåì ïóòåé äëèíû 3 è ò. ä., òî Q(v) ìîæíî ïðåäñòàâèòü â âèäå
Q(v) = {v} ∪ Γ−1 (v) ∪ Γ−2 (v) ∪ . . . ∪ Γ−p (v) . Çäåñü îïåðàöèè îáúåäèíåíèÿ âûïîëíÿþòñÿ, êàê è â ïðåäûäóùåì ñëó÷àå, ïîñëåäîâàòåëüíî ñëåâà íàïðàâî äî òåõ ïîð, ïîêà ìíîæåñòâî Q(v) íå ïåðåñòàíåò óâåëè÷èâàòüñÿ, à ÷èñëî ýòèõ îïåðàöèé p
Åñëè R(v) ýòî ìíîæåñòâî âåðøèí, äîñòèæèìûõ èç v, à Q(w) ìíîæåñòâî âåðøèí, èç êîòîðûõ äîñòèæèìà w, òî R(v) ∩ Q(w) ÿâëÿåòñÿ ìíîæåñòâîì âåðøèí, ïðèíàäëåæàùèõ âñåì ïóòÿì, èäóùèì èç v â w.  òîì ñëó÷àå, êîãäà v=w, ïåðåñå÷åíèå R(v)∩Q(v) îïðåäåëÿåò ìíîæåñòâî (âêëþ÷àÿ v ) âçàèìíî äîñòèæèìûõ âåðøèí è, ñëåäîâàòåëüíî, íåêîòîðóþ ñèëüíóþ êîìïîíåíòó ãðàôà.
34
Ñ ó÷åòîì èçëîæåííîãî, ìîæíî ïðåäëîæèòü ñëåäóþùóþ ïðîöåäóðó îòûñêàíèÿ âñåõ ñèëüíûõ êîìïîíåíò ãðàôà G(V, Γ) : 1. Ôîðìèðóåì îïèñàíèå ãðàôà â âèäå Γ+ (vi ) è Γ− (vi ) äëÿ âñåõ vi ∈ V. 2. Âûáèðàåì íåêîòîðóþ âåðøèíó v è íàõîäèì R(v) è Q(v). 3. Ïîëó÷àåì V S = R(v) ∩ Q(v). Âåðøèííî-ïîðîæäåííûé íà ìíîæåñòâå âåðøèí V S ïîäãðàô ãðàôà G ïðåäñòàâëÿåò ñèëüíóþ êîìïîíåíòó. 4. Åñëè ìíîæåñòâî V −VS ïóñòî, òî âñå ñèëüíûå êîìïîíåíòû íàéäåíû, â ïðîòèâíîì ñëó÷àå ñòðîèì âåðøèííîïîðîæäåííûé ïîäãðàô íà V −VS è ïåðåõîäèì ê ï. 1. Ðàçáåðåì ïðèìåð íà èñïîëüçîâàíèå îïèñàííîãî ïîäõîäà. Íàéäåì ñèëüíûå êîìïîíåíòû ãðàôà, èçîáðàæåííîãî íà ðèñ. 2.4. v1 r - vr 2 Rvr 3 J
6
J
J J ^r - ? r J
r v6 v5 v4 Ðèñ 2.4
Îïèñàíèÿ ãðàôà ñ èñïîëüçîâàíèåì ïðÿìîãî è îáðàòíîãî îòîáðàæåíèé âûãëÿäÿò òàê:
Γ(v1 ) = {v2 , v3 , v5 }, Γ(v4 ) = {v3 },
Γ(v2 ) = {v3 }, Γ(v5 ) = {v4 , v6 },
Γ(v3 ) = {v4 }, Γ(v6 ) = {v1 , v2 };
Γ−1 (v1 ) = {v6 }, Γ−1 (v4 ) = {v3 , v5 },
Γ−1 (v2 ) = {v1 , v6 }, Γ−1 (v5 ) = {v1 },
Γ−1 (v3 ) = {v1 , v2 , v4 }, Γ−1 (v6 ) = {v5 }.
Íàõîäèì ìíîæåñòâà R(v), Q(v) è R(v) ∩ Q(v) äëÿ ïðîèçâîëüíî âûáðàííîé âåðøèíû, íàïðèìåð äëÿ v1 : R(v1 ) = {v1 } ∪ {v2 , v3 , v5 } ∪ {v3 , v4 , v6 } = {v1 , v2 , v3 , v4 , v5 , v6 }, Q(v1 ) = {v1 } ∪ {v6 } ∪ {v5 } = {v1 , v5 , v6 }, VS1 = R(v1 )∩Q(v1 ) = {v1 , v5 , v6 } ìíîæåñòâî âåðøèí ïåðâîé ñèëüíîé êîìïîíåíòû ãðàôà.
35
Ìíîæåñòâî âåðøèí, íå îòíîñÿùèõñÿ ê íàéäåííîé ñèëüíîé êîìïîíåíòå, ðàâíî ðàçíîñòè V −VS1 ={v2 , v3 , v4 }. Îïèñàíèå ñîîòâåòñòâóþùåãî âåðøèííî-ïîðîæäåííîãî ïîäãðàôà èìååò âèä:
Γ(v2 ) = {v3 }, Γ(v3 ) = {v4 }, Γ(v4 ) = {v3 }; −1 −1 Γ (v2 ) = ∅, Γ (v3 ) = {v2 }, Γ−1 (v4 ) = {v3 }, Äëÿ ïîèñêà ñëåäóþùåé ñèëüíîé êîìïîíåíòû âîçüìåì îäíó èç åãî âåðøèí, íàïðèìåð v2 .  ðåçóëüòàòå ïîëó÷èì: R(v2 ) = {v2 } ∪ {v3 } ∪ {v4 } = {v2 , v3 , v4 }, Q(v2 ) = {v2 }, VS2 = R(v2 ) ∩ Q(v2 ) = {v2 } åäèíñòâåííàÿ âåðøèíà, âõîäÿùàÿ âî âòîðóþ ñèëüíóþ êîìïîíåíòó. Äàëåå âåäåì ïîèñê íà ìíîæåñòâå V −VS1 −VS2 ={v3 , v4 }.  ðåçóëüòàòå ïîëó÷àåì: R(v3 ) = {v3 } ∪ {v4 } = {v3 , v4 }, Q(v3 ) = {v3 } ∪ {v4 } = {v3 , v4 }, VS3 = R(v3 )∩Q(v3 ) = {v3 , v4 } âåðøèíû òðåòüåé è ïîñëåäíåé ñèëüíîé êîìïîíåíòû ãðàôà.
2.5. Ìàòðèöû äîñòèæèìîñòåé Îïðåäåëèì ìàòðèöó (ïðÿìûõ) äîñòèæèìîñòåé R = [rij ] êàê êâàäðàòíóþ (0,1)-ìàòðèöó ïîðÿäêà |G|, â êîòîðîé rij =1, åñëè âåðøèíà vj äîñòèæèìà èç vi , è rij =0 â ïðîòèâíîì ñëó÷àå. Ïîñêîëüêó êàæäàÿ âåðøèíà äîñòèæèìà èç ñàìîé ñåáÿ, äèàãîíàëüíûå ýëåìåíòû â R ðàâíû 1. Ìàòðèöà äîñòèæèìîñòåé ìîæåò áûòü ïîëó÷åíà ñëåäóþùèì ñïîñîáîì. Îòûñêèâàåì ìíîæåñòâà R(vi ) äëÿ âñåõ âåðøèí ãðàôà è ïîëàãàåì rij =1, åñëè vj ∈R(vi ), è rij =0 â ïðîòèâíîì ñëó÷àå. Äëÿ ïðèìåðà èç ïðåäûäóùåãî ðàçäåëà èìååì: R(v1 ) = {v1 , v2 , v3 , v4 , v5 , v6 }, 1 1 1 1 1 1 R(v2 ) = {v2 , v3 , v4 }, 0 1 1 1 0 0 0 0 1 1 0 0 R(v3 ) = {v3 , v4 }, . =⇒ R = 0 0 1 1 0 0 R(v4 ) = {v3 , v4 }, 1 1 1 1 1 1 R(v5 ) = {v1 , v2 , v3 , v4 , v5 , v6 }, 1 1 1 1 1 1 R(v6 ) = {v1 , v2 , v3 , v4 , v5 , v6 },
36
Ìàòðèöó îáðàòíûõ äîñòèæèìîñòåé Q=[qij ] îïðåäåëèì êàê êâàäðàòíóþ (0,1)-ìàòðèöó ïîðÿäêà |G| , â êîòîðîé qij =1, åñëè âåðøèíà vi äîñòèæèìà èç vj , è qij =0 â ïðîòèâíîì ñëó÷àå. Äèàãîíàëüíûå ýëåìåíòû â Q, êàê è â R, ðàâíû 1. Ìàòðèöà Q ìîæåò áûòü ïîëó÷åíà òåì æå ñïîñîáîì, ÷òî è ìàòðèöà R. Èùåì ìíîæåñòâà Q(vi ) äëÿ âñåõ âåðøèí ãðàôà è ïîëàãàåì qij =1, åñëè vj ∈Q(vi ), è qij =0 â ïðîòèâíîì ñëó÷àå: Q(v1 ) = {v1 , v5 , v6 }, 1 0 0 0 1 1 Q(v2 ) = {v1 , v2 , v5 , v6 }, 1 1 0 0 1 1 1 1 1 1 1 1 Q(v3 ) = {v1 , v2 , v3 , v4 , v5 , v6 }, =⇒ Q = 1 1 1 1 1 1 . Q(v4 ) = {v1 , v2 , v3 , v4 , v5 , v6 }, 1 0 0 0 1 1 Q(v5 ) = {v1 , v5 , v6 }, 1 0 0 0 1 1 Q(v6 ) = {v1 , v5 , v6 }, Îäíàêî èç îïðåäåëåíèé ÿñíî, ÷òî ñòîëáåö vi â ìàòðèöå Q ñîâïàäàåò ñî ñòðîêîé vi â ìàòðèöå R, ïîýòîìó Q = RT . Ïðîöåäóðà îòûñêàíèÿ ñèëüíûõ êîìïîíåíò ìîæåò áûòü ñäåëàíà áîëåå íàãëÿäíîé è ýôôåêòèâíîé, åñëè èñïîëüçîâàòü ââåäåííûå âûøå ìàòðèöû è îïåðàöèþ èõ ïîýëåìåíòíîãî óìíîæåíèÿ ⊗ . Ìàòðèöà R⊗Q íåñåò èíôîðìàöèþ îáî âñåõ ñèëüíûõ êîìïîíåíòàõ ãðàôà: v1 v2 v R⊗Q = v3 4 v5 v6
v1 v2 1 0 0 1 0 0 0 0 1 0 1 0
v3 0 0 1 1 0 0
v4 0 0 1 1 0 0
v5 1 0 0 0 1 1
v6 1 0 0 0 1 1
∼
v1 v5 v6 v2 v3 v4
v1 v5 v6 v2 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0
v3 0 0 0 0
v4 0 0 0 0
1 1 1 1
.
Äåéñòâèòåëüíî, ñòðîêà vi ñîäåðæèò åäèíèöû â òåõ ñòîëáöàõ vj , äëÿ êîòîðûõ âûïîëíÿåòñÿ óñëîâèå âçàèìíîé äîñòèæèìîñòè ñ vi è êîòîðûå íàðÿäó ñ vi âõîäÿò â ñîñòàâ îäíîé è òîé æå ñèëüíîé êîìïîíåíòû. ßñíî, ÷òî ñòðîêè (è ñòîëáöû) ìàòðèöû, ñîîòâåòñòâóþùèå âåðøèíàì îäíîé è òîé æå ñèëüíîé êîìïîíåíòû, äîëæíû áûòü èäåíòè÷íû. Ïîýòîìó ïóòåì ïåðåñòàíîâêè ñòðîê è ñòîëáöîâ ìàòðèöó R⊗Q ìîæíî ïðèâåñòè ê áëî÷íî-äèàãîíàëüíîìó âèäó, êîãäà êàæäàÿ äèàãîíàëüíàÿ ïîä-
37
ìàòðèöà ñîîòâåòñòâóåò ñèëüíîé êîìïîíåíòå è ñîñòîèò èç îäíèõ åäèíèö, à âñå îñòàëüíûå ýëåìåíòû íóëè.
2.6. Ïîëó÷åíèå ìàòðèöû äîñòèæèìîñòåé Åñòåñòâåííûìè êîëè÷åñòâåííûìè õàðàêòåðèñòèêàìè äîñòèæèìîñòè ÿâëÿþòñÿ äëèíû ïóòåé ìåæäó âåðøèíàìè Ïðè ýòîì ìàòðèöó ñìåæíîñòè A ìîæíî òðàêòîâàòü êàê ìàòðèöó äîñòè(2) æèìîñòè ïðè äëèíå ïóòåé 1, à ìàòðèöó A2 =A×A=[aij ], ãäå n (2) W aij = aik akj , êàê ìàòðèöó äîñòèæèìîñòè ïðè äëèíå ïóòåé 2 k=1
(çäåñü è äàëåå ìàòðèöà A ðàññìàòðèâàåòñÿ êàê áóëåâñêàÿ). Ñîîòâåòñòâåííî ìàòðèöû A3, A4, A5 è ò. ä. ìîæíî ðàññìàòðèâàòü êàê ìàòðèöû äîñòèæèìîñòè ïðè äëèíå ïóòåé 3, 4, 5 è ò. ä. Îïðåäåëèì îãðàíè÷åííóþ äîñòèæèìîñòü êàê äîñòèæèìîñòü ïðè äëèíå ïóòåé íå áîëåå ÷åì q. Ñîîòâåòñòâóþùàÿ ìàòðèöà íàçûâàåòñÿ ìàòðèöåé îãðàíè÷åííîé äîñòèæèìîñòè Rq . Î÷åâèäíî, ÷òî R1 =A+I, ãäå ”+” áóëåâñêîå ñëîæåíèå, I åäèíè÷íàÿ ìàòðèöà, àíàëîãè÷íî R2 =R1 +A2 =I+A+A2 = =(I+A)2 =R21 è âîîáùå Rq =I+A+A2 + . . . +Aq =(I+A)q =Rq1 . Âìåñòî ïîñëåäîâàòåëüíîãî âû÷èñëåíèÿ R2 , R3 , . . . , Rq ýêîíîìè÷íåå ïîëó÷àòü R2 , R4 , R8 è ò. ä., èñïîëüçóÿ ñîîòíîøåíèå: l
(l−1)
(l−1)
R21 =R21 R21 , ãäå l=1, 2, 3, . . . Âîçâåäåíèå â êâàäðàò ïîâòîðÿåòñÿ, ïîêà íå áóäåò ïîëó÷åíî Rq . Åñëè q íå ÿâëÿåòñÿ ñòåïåíüþ äâîéêè, ïîòðåáóåòñÿ ðÿä äîïîëíèòåëüíûõ óìíîæåíèé. Íàïðèìåð, ìàòðèöà R7 ìîæåò áûòü ïîëó÷åíà òàê: R7 = R4 ×R2 ×R1 = = R41 ×R21 ×R1 .  òîì ñëó÷àå, êîãäà òðåáóåòñÿ îòûñêàòü ìàòðèöó äîñòèæèìîñòè, âîçâåäåíèå â êâàäðàò ñëåäóåò âûïîëíÿòü, ïîêà ðåçóëüòàò îïåðàöèè íå ïåðåñòàíåò èçìåíÿòüñÿ. Áîëåå ýôôåêòèâíîå ðåøåíèå çàäà÷è îñíîâàíî íà èñïîëüçîâàíèè òðàíçèòèâíîãî çàìûêàíèÿ. Ãðàô íàçûâàåòñÿ òðàíçèòèâíûì, åñëè ïðè íàëè÷èè äóã âèäà (vi , vk ) è (vk , vj ) â íåì îáÿçàòåëüíî åñòü è äóãà âèäà (vi , vj ). Ïðèìåð òðàíçèòèâíîãî ãðàôà äàí íà ðèñ. 2.5. Òðàíçèòèâíûì çàìûêàíèåì ãðàôà G 38
íàçûâàþò òðàíçèòèâíûé ãðàô Gtc , ïîëó÷åííûé ïóòåì äîáàâëåíèÿ ê G ìèíèìàëüíîãî êîëè÷åñòâà äóã, íåîáõîäèìîãî äëÿ îáåñïå÷åíèÿ òðàíçèòèâíîñòè. Èç îïðåvs1 äåëåíèÿ ñëåäóåò, ÷òî åñëè â òðàíçèòèâ >BZ } íîì ãðàôå èìååòñÿ öåïü, ñâÿçûâàþùàÿ v5 s B ZZsv2 Q B Q B âåðøèíó v ñ âåðøèíîé w , òî ñóùåñòâóB Q B åò òàêæå è äóãà (v, w). Ïîýòîìó, åñ ¶³ BN s + Q sBN¶³ Q s ëè Gtc ÿâëÿåòñÿ ãðàôîì òðàíçèòèâíîv4 k v3 ãî çàìûêàíèÿ ãðàôà G, òî åãî ìàòðèµ´ µ´ öà ñìåæíîñòè ïðàêòè÷åñêè ñîâïàäàåò ñ Ðèñ. 2.5 ìàòðèöåé äîñòèæèìîñòè ãðàôà G, îòëè÷àÿñü òîëüêî ýëåìåíòàìè ãëàâíîé äèàãîíàëè, ñîîòâåòñòâóþùèìè îäíîâåðøèííûì ñèëüíûì êîìïîíåíòàì6 G. Ñëåäîâàòåëüíî, äëÿ íàõîæäåíèÿ R ìîæíî èñïîëüçîâàòü àëãîðèòìû îòûñêàíèÿ òðàíçèòèâíîãî çàìûêàíèÿ. Ðàññìîòðèì îäèí èç òàêèõ àëãîðèòìîâ.
2.7. Àëãîðèòì Óîðøîëëà Ïóñòü G0 îðãðàô ñ ìíîæåñòâîì âåðøèí v1 , v2 , . . . , vn . Àëãîðèòì Óîðøîëëà ïîçâîëÿåò ïîëó÷èòü ïîñëåäîâàòåëüíîñòü ãðàôîâ Gi , i=1, 2, . . ., n , òàêèõ, ÷òî Gi−1 ÿâëÿåòñÿ ïîäãðàôîì Gi , ïðè÷åì Gn ýòî ãðàô òðàíçèòèâíîãî çàìûêàíèÿ G0 . Ãðàô Gi ïîëó÷àåòñÿ èç Gi−1 ïîñëå îáðàáîòêè âåðøèíû vi â ñîîòâåòñòâèè ñî ñõåìîé, ïðåäñòàâëåííîé íà ðèñ. 2.6. Ïóñòü, íàïðèìåð, â ãðàôå Gi−1 vj1 vk1 s -s ñóùåñòâóþò äóãè (vj1 , vi ) è (vj2 , vi ), Z > âõîäÿùèå â âåðøèíó vi , è äóãè Z Z Z ~ s (vi , vk1 ) è (vi , vk2 ), âûõîäÿùèå èç >vZ i Z íåå. Òîãäà ïðè îáðàáîòêå âåðøèíû Z Z ~Ws s vi êàæäàÿ ïàðà äóã (îäíà âõîäÿùàÿ, vj2 vk2 äðóãàÿ èñõîäÿùàÿ) "ïîðîæäàåò" òðåòüþ äóãó, êîòîðàÿ ñîåäèíÿåò íà÷àëî Ðèñ. 2.6 ïåðâîé äóãè ïàðû ñ êîíöîì âòîðîé äóãè.  ïðåäñòàâëåííûé íà ðèñóíêå ãðàô äîáàâëÿþòñÿ ÷åòûðå äóãè (vj1 , vk1 ) , (vj1 , vk2 ) , (vj2 , vk1 ) è (vj2 , vk2 ), èçîáðàæåíûå 6Â
ìàòðèöå ñìåæíîñòè ãðàôà Gtc ýòè ýëåìåíòû ðàâíû íóëþ.
39
ïóíêòèðîì. Ãðàô, ïîëó÷åííûé â ðåçóëüòàòå ïîäîáíîé îáðàáîòêè âåðøèíû vi , îáîçíà÷àåòñÿ Gi . Äàäèì ôîðìàëüíîå îïèñàíèå àëãîðèòìà. Ïóñòü A ìàòðèöà ñìåæíîñòè ãðàôà, A∗ = [aji ] ìàòðèöà ñìåæíîñòè òðàíçèòèâíîãî çàìûêàíèÿ. Òîãäà çàïèñü àëãîðèòìà âûãëÿäèò òàê:
begin
{ÓÎÐØÎËË} := A { Èíèöèàëèçàöèÿ A∗ for i := 1 to n do { Ïåðåáîð ñòîëáöîâ â A∗ for j := 1 to n do { Ïåðåáîð ñòðîê â A∗ if a∗ji = 1 then { Åñëè åñòü äóãà (vj , vi ), òî for k := 1 to n do { "ïðèáàâèòü" â A∗ a∗jk := a∗jk ∨ a∗ik { ñòðîêó i ê ñòðîêå j
A∗
end
} } } } } }
{ÓÎÐØÎËË}
Îòëè÷èòåëüíîé îñîáåííîñòüþ àëãîðèòìà ÿâëÿåòñÿ ïîðÿäîê îáðàáîòêè ýëåìåíòîâ A∗ ïî ñòîëáöàì. Ýòî åñòåñòâåííîå ñëåäñòâèå òîãî, ÷òî îáðàáîòêà íîâîé âåðøèíû íå íà÷íåòñÿ, ïîêà íå ïåðåáåðóòñÿ âñå äóãè, âõîäÿùèå â î÷åðåäíóþ âåðøèíó, ïðè÷åì ïîðÿäîê ýòîãî ïåðåáîðà ìîæåò áûòü ïðîèçâîëüíûì. Êàê ñëåäóåò èç ïðèâåäåííîãî îïèñàíèÿ, àëãîðèòì îáåñïå÷èâàåò ïîëó÷åíèå òðàíçèòèâíîãî çàìûêàíèÿ âñåãî çà îäèí ïðîõîä (ïðîñìîòð) âåðøèí ãðàôà. Ñóùåñòâåííûì äîñòîèíñòâîì ÿâëÿåòñÿ è òî, ÷òî ðåçóëüòàò ôîðìèðóåòñÿ ïóòåì ïðåîáðàçîâàíèÿ ýëåìåíòîâ ìàòðèöû A∗ áåç èñïîëüçîâàíèÿ âñïîìîãàòåëüíûõ äàííûõ, ò. å. àëãîðèòì "ðàáîòàåò íà ìåñòå". vs1
-vs2
G s v4
-s v3
v1 v1 0 v0 A= v2 0 3 v4 0
v2 1 0 0 0
v3 0 0 0 1
v4 0 1 0 0
v1 v1 1 v0 R= v2 0 3 v4 0
v2 1 1 0 0
v3 1 1 1 1
v4 1 1 0 1
Ðèñ. 2.7
 êà÷åñòâå ïðèìåðà íàéäåì òðàíçèòèâíîå çàìûêàíèå äëÿ ãðàôà G ñ ìàòðèöåé ñìåæíîñòè A è ìàòðèöåé äîñòèæèìîñòè7 R, ïðåäñòàâëåííûõ íà ðèñ 2.7. Ïðèìåíÿÿ àëãîðèòì 7 Ìàòðèöà
äîñòèæèìîñòè ëåãêî ïîëó÷àåòñÿ íåïîñðåäñòâåííî ïî ãðàôó.
40
Óîðøîëëà, ïîëó÷èì ñëåäóþùèé ðÿä ìàòðèö, èëëþñòðèðóþùèé ïðîöåññ ôîðìèðîâàíèÿ ìàòðèöû òðàíçèòèâíîãî çàìûêàíèÿ A∗:
0 1 0 0 0 0 0 0 0 0 0 1 A(G1 )
0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 ⇒ 0 0 0 0 ⇒ 0 0 0 0 ⇒ 0 0 0 0 . 0 0 0 1 0 0 0 1 0 0 0 1 0 A(G2 ) A(G3 ) A(G4 )
Ñîîòâåòñòóþùèå èì ãðàôû èçîáðàæåíû íà ðèñ. 2.8. vs1 s v4
-vs2 -s v3
G1
vs1 ? s v4
vs1
-vs2
? s v4
-s v3
G2
-vs2 -s v3
G3
vs1 @
-vs2
@ ? @ R? s @ s v4 v3 G4
Ðèñ. 2.8
Ïîñëåäíèé èç ýòèõ ãðàôîâ G4 ÿâëÿåòñÿ ãðàôîì òðàíçèòèâíîãî çàìûêàíèÿ äëÿ ãðàôà íà ðèñ. 2.7. Òåïåðü, ÷òîáû ïîëó÷èòü ìàòðèöó äîñòèæèìîñòè, äîñòàòî÷íî ðàññòàâèòü íåäîñòàþùèå åäèíèöû íà ãëàâíîé äèàãîíàëè â ìàòðèöå A∗ (G)=A(G4 ) .
2.8. Áàçà ãðàôà Áàçîé íàçûâàþò ìíîæåñòâî âåðøèí, èç êîòîðîãî äîñòèæèìû âñå âåðøèíû ãðàôà, ïðè÷åì â áàçå íåò ïîäìíîæåñòâ, îáëàäàþùèõ òàêèì æå ñâîéñòâîì äîñòèæèìîñòè. Ôîðìàëüíî áàçó ãðàôà G(V, Γ) ìîæíî îïðåäåëèòü êàê ìíîæåñòâî B⊂V, òàêîå, ÷òî R(B)=V, à ∀(B 0 ⊂B) R(B 0 )6=V. Èòàê, áàçà óäîâëåòâîðÿåò äâóì óñëîâèÿì: êàæäàÿ âåðøèíà ãðàôà äîñòèæèìà, ïî êðàéíåé ìåðå, èç îäíîé âåðøèíû áàçû; â áàçå íåò âåðøèí, äîñòèæèìûõ èç äðóãèõ âåðøèí áàçû. Ïîýòîìó ìîæíî óòâåðæäàòü, ÷òî â àöèêëè÷åñêîì ãðàôå ñóùåñòâóåò òîëüêî îäíà áàçà. Îíà ñîñòîèò èç âñåõ âåðøèí ñ ïîëó41
ñòåïåíüþ çàõîäà, ðàâíîé 0, è ëåãêî îòûñêèâàåòñÿ. Íàïðèìåð, â ãðàôå íà ðèñ. 2.6 áàçà ñîñòîèò èç äâóõ âåðøèí vj1 è vj2 , à â ãðàôå íà ðèñ. 2.7 èç îäíîé âåðøèíû v1 . Èç âûøåïðèâåäåííûõ óñëîâèé ñëåäóåò òàêæå, ÷òî â áàçå íå ìîæåò áûòü äâóõ âåðøèí, ïðèíàäëåæàùèõ îäíîé è òîé æå ñèëüíîé êîìïîíåíòå. Ïîýòîìó, åñëè ãðàô ñîäåðæèò öèêëû, è, ñëåäîâàòåëüíî, õîòÿ áû îäíó ñèëüíóþ êîìïîíåíòó, ïðè÷åì ýòà êîìïîíåíòà îáðàçóåò âåðøèíó êîíäåíñàöèè, ó êîòîðîé deg− v ∗ =0, òî â ãðàôå åñòü íåñêîëüêî áàç. Ýòî ñëåäñòâèå òîãî, ÷òî â áàçó ìîæíî âêëþ÷èòü ëþáóþ (íî òîëüêî îäíó!) âåðøèíó òàêîé êîìïîíåíòû. Íàïðèìåð, â ãðàôå G íà ðèñ. 2.2 áàçó êîíäåíñàöèè îáðàçóåò ñèëüíàÿ êîìïîíåíòà {v5 , v6 , v7 , v8 }, çíà÷èò èìååòñÿ ÷åòûðå îäíîâåðøèííûõ áàçû: {v5 }, {v6 }, {v7 } è {v8 }.  îáùåì æå ñëó÷àå ÷èñëî áàç ðàâíî ïðîèçâåäåíèþ ÷èñåë âåðøèí â ñèëüíûõ êîìïîíåíòàõ, îáðàçóþùèõ áàçó êîíäåíñàöèè. Ñ ó÷åòîì èçëîæåííîãî ïîèñê áàç â îðãðàôå ìîæíî ïðîâîäèòü â ñëåäóþùåì ïîðÿäêå: 1. Íàéòè âñå ñèëüíûå êîìïîíåíòû ãðàôà. 2. Ïîñòðîèòü åãî êîíäåíñàöèþ. 3. Íàéòè áàçó êîíäåíñàöèè. 4. Èç êàæäîé ñèëüíîé êîìïîíåíòû, îáðàçóþùåé âåðøèíó áàçû êîíäåíñàöèè, âçÿòü ïî îäíîé âåðøèíå.
42
3. Äåðåâüÿ Äåðåâüÿ ÿâëÿþòñÿ ïðîñòûì, íî î÷åíü âàæíûì âèäîì ãðàôîâ. Ñ èõ ïîìîùüþ ëåãêî îïèñûâàåòñÿ ñòðóêòóðà ñàìûõ ðàçëè÷íûõ îáúåêòîâ: îðãàíèçàöèé è ó÷ðåæäåíèé, êíèã è äîêóìåíòîâ, ìàòåìàòè÷åñêèõ ôîðìóë, õèìè÷åñêèõ ñîåäèíåíèé, êîìïüþòåðíûõ ôàéëîâûõ ñèñòåì, ïðîãðàìì è ìíîãîå äðóãîå. Ñ÷èòàåòñÿ, ÷òî ïåðâûì ïîíÿòèå äåðåâà èñïîëüçîâàë Êèðõãîô â 1847ã. ïðè èññëåäîâàíèè ýëåêòðè÷åñêèõ öåïåé. Ñïóñòÿ äåñÿòèëåòèå Êýëè ââåë òåðìèí "äåðåâî" ïðè èçó÷åíèè ñòðóêòóðû óãëåâîäîðîäíûõ ñîåäèíåíèé è ïîëó÷èë ïåðâûå âàæíûå ðåçóëüòàòû â ýòîì ðàçäåëå òåîðèè ãðàôîâ.
3.1. Îñíîâíûå ïîíÿòèÿ Íåîðèåíòèðîâàííûå äåðåâüÿ. Íà ðèñ. 3.1 äàíû òðè
èçîáðàæåíÿ îäíîãî è òîãî æå íåîðèåíòèðîâàííîãî äåðåâà. Íàèáîëåå ñîîòâåòñòâóåò íàçâàíèþ âàðèàíò â, íî îáû÷íî ïðè èçîáðàvs1
vr2
sv4 sv5 v3 r v6 s v7 s @ @ v8 s @ sv9 @ sv10 @ @s s v11 v12 a
vs4 Q v3 s Q Qsv9 v2 s B v7 s v1 sv6 s BBsv11 B B s BBs s BBs v5 v10 v8 v12 á
vs5 vs10 @sv7 sv1 @ sv3 sv2 sv8 sv12 @ @ s sv6 @sv11 v@ 4H HH s v9 â
Ðèñ. 3.1
æåíèè äåðåâüåâ èñïîëüçóþò âàðèàíòû à è á. Èç ðèñóíêà ñòàíîâÿòñÿ ïîíÿòíûìè òåðìèíû êîðåíü è ëèñò, óïîòðåáëÿåìûå ïðè ðàññìîòðåíèè ïîäîáíûõ ãðàôîâ. Ëèñòîì (âèñÿ÷åé âåðøèíîé ) íàçûâàþò âåðøèíó, ñòåïåíü êîòîðîé ðàâíà 1, åñëè îíà íå ðàññìàòðèâàåòñÿ êàê êîðåíü.  êà÷åñòâå êîðíÿ â íåîðèåíòèðîâàííîì äåðåâå ìîæíî ïðèíÿòü ëþáóþ âåðøèíó. Ñóùåñòâóåò íåñêîëüêî ýêâèâàëåíòíûõ îïðåäåëåíèé íåîðèåíòèðîâàííîãî äåðåâà, êàæäîå èç êîòîðûõ îòðàæàåò ðàçëè÷íûå ñâîéñòâà ïîñëåäíåãî. Ïðèâåäåì íåêîòîðûå èç íèõ:
43
1) Äåðåâî ýòî ñâÿçíûé ãðàô áåç öèêëîâ. 2) Äåðåâî ýòî ãðàô, â êîòîðîì ëþáàÿ ïàðà âåðøèí ñâÿçàíà åäèíñòâåííîé öåïüþ. ¤ Äåéñòâèòåëüíî, íàëè÷èå äâóõ è áîëåå öåïåé, ñîåäèíÿþùèõ íåêîòîðóþ ïàðó âåðøèí, îçíà÷àåò ïðèñóòñòâèå öèêëîâ, îáðàçîâàííûõ íåñîâïàäàþùèìè ÷àñòÿìè òàêèõ öåïåé. ¢ 3) Äåðåâî ýòî ñâÿçíûé ãðàô, èìåþùèé n âåðøèí è n−1 ðåáåð. ¤ Íåïîñðåäñòâåííîé ïðîâåðêîé óñòàíàâëèâàåì ñïðàâåäëèâîñòü ýòîãî óòâåðæäåíèÿ ïðè n=1, 2, 3. Äîïóñòèì, ÷òî îíî âåðíî äëÿ äåðåâà ñ n−1 âåðøèíàìè, è ðàññìîòðèì ñëó÷àé, êîãäà äåðåâî T èìååò n âåðøèí. Åñëè â íåì óäàëèòü ëþáîå ðåáðî, òî â ñèëó óòâåðæäåíèÿ 2, ïîëó÷èì äâà äåðåâà ñ n1 ≤(n−1) è n2 ≤(n−1) âåðøèíàìè. Ïî èíäóêòèâíîìó ïðåäïîëîæåíèþ ÷èñëî ðåáåð â íèõ n1 −1 è n2 −1 ñîîòâåòñòâåííî. Ïîýòîìó T ñîäåðæèò [(n1 −1)+(n2 −1)]+1=n1 +n2 −1=n−1 ðåáåð. ¢ Åñòåñòâåííûì ðàñøèðåíèåì ïîíÿòèÿ äåðåâà ÿâëÿåòñÿ ëåñ íåñâÿçíûé ãðàô, âñå êîìïîíåíòû êîòîðîãî äåðåâüÿ. Ëþáîìó ñâÿçíîìó ãðàôó ìîæíî ïîñòàâèòü â ñîîòâåòñòâèå íåêîòîðîå äåðåâî, íàçûâàåìîå îñòîâíûì äåðåâîì, èëè îñòîâîì ýòîãî ãðàôà. Îñòîâ ãðàôà ýòî åãî ìèíèìàëüíûé ñâÿçíûé îñòîâíûé ïîäãðàô.  îáùåì ñëó÷àå ãðàô ìîæåò èìåòü íåñêîëüêî îñòîâîâ.  êà÷åñòâå ïðìåðà íà ðèñ. 3.2,à ïðåäñòàâëåí íåîðèåíòèðîâàííûé ãðàô è âñå åãî îñòîâû (ðèñ. 3.2,á,â,ã ). v1 s
vs2 @ @
v5 s
sv3 v1 s
vs2 @ @
sv4 v5 s
à
sv3 v1 s
vs2 @ @
sv4 v5 s
á
Ðèñ. 3.2
sv3 v1 s
vs2 @ @
sv4 v5 s
â
sv3 sv4
ã
Àíàëîãè÷íî, ëþáîìó íåñâÿçíîìó ãðàôó ìîæíî ïîñòàâèòü â ñîîòâåòñòâèå îñòîâíûé ëåñ ìàêñèìàëüíûé îñòîâíûé ïîäãðàô, íå ñîäåðæàùèé öèêëîâ.
44
Îðèåíòèðîâàííûå äåðåâüÿ. Îðèåíòèðîâàííîå äåðå
âî ýòî ãðàô, â êîòîðîì ïîëóñòåïåíü çàõîäà ó îäíîé âåðøèíû, íàçûâàåìîé êîðíåì, ðàâíà íóëþ, à ó îñòàëüíûõ åäèíèöå. Íà ðèñ. 3.3,à,á,â èçáðàæåíû òðè îðèåíòèðîâàííûõ äåðåâà. vs1 vs2 s sv5 v3 s v4 v6 s v7 s? @ @ I R sv10 @s? v8 s v9 @ I @ @s - s v11 v12 a
vs4 Q Q v ? Q s sv9 + v2 s 3s B s v1 ? s v6 s BN sv11 v7 ? B B s BN s s BN s v5 v10 v8 v12 á
vs5 vs10 I @sv sv1 @ 7 6 6 sv3 sv2 sv8 sv12 I @ I s @sv sv6 @ v@ 4 H * 11 YH 6 H s v9 â
Ðèñ. 3.3
È õîòÿ ïî êîíôèãóðàöèè îíè èäåíòè÷íû (åñëè íå ó÷èòûâàòü îðèåíòàöèþ äóã) ñîîòâåòñòâóþùèì èçîáðàæåíèÿì îäíîãî è òîãî æå äåðåâà íà ðèñ. 3.1,à,á,â, ýòî ñîâåðøåííî ðàçëè÷íûå äåðåâüÿ óæå ïîòîìó, ÷òî ó íèõ ðàçíûå êîðíè: v2 , v4 , v9 . Íåêîòîvs2 vs2 vs2 vs2 @ R sv3 v1 s @ @ @ R sv3 v1 s @ R sv3 v1 s @ @ @ R sv3 v1 s @ @ 6 6 @ @ R R sv4 v5 s - sv4 - s? s? v5 s @ v4 v5 s v4 v5 s @ à á â ã Ðèñ. 3.4
ðûå ñâÿçíûå îðãðàôû òàêæå èìååþò îñòîâû. Íà ðèñ. 3.4,à äàí ïðèìåð òàêîãî ãðàôà è ïîêàçàíû òðè åãî îñòîâà (ðèñ. 3.4,á,â,ã ). vr 2 vr 2 @ R r v3 v1 r @ @ @ R r v3 v1 r @ 6 6 I @ @rv6 6G2 G1 @ I @ @ R @ - r? @r v4 v5 r v4 v5 r Ðèñ. 3.5
Ãðàôû, èçîáðàæåííûå íà ðèñ. 3.5, îñòîâà íå èìåþò. Â ãðàôå G1 åñòü äâå âåðøèíû ñ íóëåâîé ïîëóñòåïåíüþ çàõîäà v2
45
è v5 , ÷òî íàõîäèòñÿ â ÿâíîì ïðîòèâîðå÷èè ñ îïðåäåëåíèåì îðäåðåâà.  ãðàôå G2 òàêàÿ âåðøèíà îäíà v2 , íî èç íåå íåò ïóòåé â âåðøèíû v4 , v5 , v6 . Îáùèì äëÿ G1 è G2 ÿâëÿåòñÿ òî, ÷òî îáà îíè ñëàáîñâÿçíûå, à òàêèå ãðàôû íå ìîãóò èìåòü îðèåíòèðîâàííîãî îñòîâà.
3.2. Îïèñàíèå äåðåâüåâ Ìàòðè÷íîå ïðåäñòàâëåíèå. Äåðåâî, êàê è ëþáîé äðó-
ãîé ãðàô, ìîæíî îïèñàòü ñ ïîìîùüþ ìàòðèö.  êà÷åñòâå ïðèìåðà íèæå ïðèâåäåíû ìàòðèöû ñìåæíîñòè A è èíöèäåíòíîñòè B äëÿ îðäåðåâà, èçîáðàæåííîãî íà ðèñ. 3.4,ã : v1 v1 0 v2 0 A = v3 0 v4 0 v5 1
v2 0 0 0 0 0
v3 0 1 0 0 0
v4 0 0 0 0 1
v5 0 0 1 0 0
a1 a2 a3 a4 v1 0 0 −1 0 v2 1 0 0 0 B = v3 −1 1 0 0 v4 0 0 0 −1 v5 0 −1 1 1
.
Îòìåòèì îñîáåííîñòè òàêèõ ìàòðèö äëÿ äåðåâüåâ. Îòíîøåíèå ÷èñëà ðåáåð äåðåâà ê ÷èñëó åãî âåðøèí, ðàâíîå (n−1)/n, ìèíèìàëüíî äëÿ ñâÿçíîãî ãðàôà, ïîýòîìó ìàòðèöà ñìåæíîñòè äåðåâà âåñüìà ðàçðåæåíà (ñîîòíîøåíèå åäèíèö è íóëåé â íåé ðàâíî (n−1):(n2 −n+1)≈1/n äëÿ îðèåíòèðîâàííîãî äåðåâà è 2(n−1):(n2 −2n+2)≈2/n äëÿ íåîðèåíòèðîâàííîãî). Ìàòðèöà èíöèäåíòíîñòè äåðåâà èìååò ðàçìåð n×(n−1), ò. å. áëèçêà ê êâàäðàòíîé, à ôàêòè÷åñêè òàêîâîé è ÿâëÿåòñÿ, åñëè ïðèíÿòü âî âíèìàíèå åå èçáûòî÷íîñòü ïî ñòðîêàì. Äåéñòâèòåëüíî, óäàëèâ ëþáóþ ñòðîêó, ïîëó÷àåì êâàäðàòíóþ ìàòðèöó, ïî-ïðåæíåìó ïîëíîñòüþ õàðàêòåðèçóþùóþ ãðàô. Åùå îäíà îñîáåííîñòü ìàòðèöû èíöèäåíòíîñòè, êîòîðàÿ áóäåò èñïîëüçîâàíà äàëåå, çàêëþ÷àåòñÿ â ñëåäóþùåì. Ïóòåì ïåðåóïîðÿäî÷åíèÿ ñòðîê è ñòîëáöîâ ìàòðèöà èíöèäåíòíîñòè ëþáîãî äåðåâà ìîæåò áûòü ïðèâåäåíà ê íèæíåé òðàïåöèåâèäíîé ìàòðèöå, êîãäà îäíà èç åäèíèö ñòîëáöà i íàõîäèòñÿ â ñòðîêå i , à äðóãàÿ â îäíîé èç íèæåëåæàùèõ ñòðîê.  êà÷åñòâå îáîñíîâàíèÿ ýòîãî óòâåðæäåíèÿ ìîæíî ðàññìàòðèâàòü ñëåäóþùèé àëãîðèòì. 46
¤ Ïóñòü T çàäàííîå äåðåâî. Âûáèðàåì ëþáóþ âèñÿ÷óþ âåðøèíó v è ïðèñâèâàåì åé (è èíöèäåíòíîìó ðåáðó) íîìåð 1. Çàòåì ðàññìàòðèâàåì äåðåâî8 T1 =T −v è âûïîëíÿåì ñ íèì òó æå îïåðàöèþ. Òåïåðü óæå äðóãàÿ âèñÿ÷àÿ âåðøèíà u ïîëó÷àåò âìåñòå ñ èíöèäåíòíûì åé ðåáðîì íîìåð 2. Íà ñëåäóþùåì øàãå èìååì äåðåâî T2 =T1 −u è ò.ä. Îäíîâðåìåííî ñ îáðàáîòêîé âåðøèí è ðåáåð ôîðìèðóåì ñòîëáöû ìàòðèöû èíöèäåíòíîñòè. Âûáðàííîé âåðøèíå ñîîòâåòñòâóåò åäèíèöà íà ãëàâíîé äèàãîíàëè. Âòîðàÿ (íèæåëåæàùàÿ) åäèíèöà â ñòîëáöå ïîÿâëÿåòñÿ, êîãäà ñîîòâåòñòâóþùàÿ âåðøèíà äåðåâà T, ñòàâøàÿ âèñÿ÷åé, âûáèðàåòñÿ íà î÷åðåäíîì øàãå. Ïðîöåññ çàâåðøàåòñÿ çà n−1 øàãîâ, ïðè÷åì íà ïîñëåäíåì øàãå äåðåâî Tn−1 ñîñòîèò èç îäíîãî ðåáðà, êîíöû êîòîðîãî ïîëó÷àþò íîìåðà n−1 è n. ¢  êà÷åñòâå ïðèìåðà íà ðèñ. 3.6 äàíû äâà âàðèàíòà íóìåðàöèè îäíîãî è òîãî æå ãðàôà: íà ðèñ. 3.6,à ïåðâîíà÷àëüíàÿ, vs3
vs4 sv1 sv5 v2 s u1 s A s A s v7 v6 à Ðèñ. 3.6
us 2
us 3 su7 su4 A s A s u5 u6 á
à íà ðèñ. 3.6,á íóìåðàöèÿ, ïîëó÷åííàÿ îïèñàííûì ñïîñîáîì. Ñîîòâåòñòâóþùèå ìàòðèöû èíöèäåíòíîñòè ïðèâåäåíû íèæå: v1 v2 v3 Bà = v 4 v5 v6 v7
e1 1 1 0 0 0 0 0
e2 1 0 0 1 0 0 0
e3 1 0 0 0 0 1 0
e4 0 0 1 1 0 0 0
e5 0 0 0 0 1 1 0
e6 0 0 0 0 0 1 1
u1 (v2 ) u2 (v3 ) u3 (v4 ) Bá = u4 (v5 ) u5 (v7 ) u6 (v6 ) u7 (v1 )
e1 1 0 0 0 0 0 1
e4 0 1 1 0 0 0 0
e2 0 0 1 0 0 0 1
e5 0 0 0 1 0 1 0
e6 0 0 0 0 1 1 0
e3 0 0 0 0 0 1 1
Ôàêòè÷åñêè, äëÿ ïîëó÷åíèÿ Bá â ìàòðèöå Bà âûïîëíåíà ïåðåñòàíîâêà ñòðîê ïî ñõåìå: 1→7, 2→1, 3→2, 4→3, 5→4, 7→5 è ïåðåñòàíîâêà ñòîëáöîâ ïî ñõåìå: 2→3, 3→6, 4→2, 5→4, 6→5. 8 Çäåñü
è äàëåå çàïèñü T1 =T −v îçíà÷àåò, ÷òî äåðåâî T1 ïîëó÷åíî ïóòåì óäàëåíèÿ âåðøèíû v è èíöèäåíòíîãî åé ðåáðà â äåðåâå T.
47
Òåïåðü ðàññìîòðèì êâàäðàòíóþ ìàòðèöó (Bá )−7 , êîòîðàÿ ïîëó÷àåòñÿ, åñëè óäàëèòü ñåäüìóþ ñòðîêó ìàòðèöû Bá . Îïðåäåëèòåëü ýòîé ìàòðèöû ðàâåí 1. Ñåäüìàÿ ñòðîêà Bá ñîîòâåòñòâóåò ïåðâîé ñòðîêå Bà , ïîýòîìó îðåäåëèòåëü ìàòðèöû (Bà )−1 , ïîëó÷åííîé ïðè âû÷åðêèâàíèè ïåðâîé ñòðîêè â Bà , (ñ ó÷åòîì ÷èñëà ïåðåñòàíîâîê ñòðîê è ñòîëáöîâ) ðàâåí −1. ßñíî, ÷òî âûøåîïèñàííàÿ ïîöåäóðà ïîçâîëÿåò, âûáðàâ íåêîòîðóþ âåðøèíó, ïîëó÷èòü òàêîé âàðèàíò íóìåðàöèè, êîãäà ýòà âåðøèíà èìååò ìàêñèìàëüíûé íîìåð, à ìàòðèöà èíöèäåíòíîñòè ãðàôà (ïîñëå óäàëåíèÿ ïîñëåäíåé ñòðîêè, ñîîòâåòñòâóþùåé âûáðàííîé âåðøèíå) îêàçûâàåòñÿ òðåóãîëüíîé ñ åäèíèöàìè íà ãëàâíîé äèàãîíàëè è îïðåäåëèòåëåì ðàâíûì 1. Ïîýòîìó óäàëåíèå ëþáîé ñòðîêè ìàòðèöû èíöèäåíòíîñòè äåðåâà ïîðîæäàåò êâàäðàòíóþ ìàòðèöó ñ îïðåäåëèòåëåì ðàâíûì +1 èëè −1, à ýòî çíà÷èò, ÷òî ëþáîé ìèíîð ïîðÿäêà n−1 ìàòðèöû èíöèäåíòíîñòè äåðåâà ïî àáñîëþòíîé âåëè÷èíå ðàâåí 1. Êîä Ïðþôåðà. Êàæäîå äåðåâî, èìåþùåå n âåðøèí, ìîæåò áûòü îäíîçíà÷íî îïèñàíî ÷èñëîâûì êîäîì, ñîäåðæàùèì n−2 ýëåìåíòîâ è íàçûâàåìûì êîäîì Ïðþôåðà. Àëãîðèòì ïîëó÷åíèÿ êîäà ñîñòîèò â ñëåäóþùåì. Ïóñòü âåðøèíû äåðåâà ïîìå÷åíû (ïðîíóìåðîâàíû) ÷èñëàìè îò 1 äî n. Îòûñêèâàåì âåðøèíó ñòåïåíè 1 ñ íàèìåíüøèì íîìåðîì è âêëþ÷àåì â êîä íîìåð ñìåæíîé ñ íåé âåðøèíû, ïîñëå ÷åãî óäàëÿåì íàéäåííóþ âåðøèíó (âìåñòå ñ ðåáðîì). Ñ ïîëó÷èâøèìñÿ ïîäãðàôîì âûïîëíÿåì òó æå îïåðàöèþ, ïîâòîðÿÿ åå, ïîêà íå îñ3s
4s s1 s5 2s A s As 7 6 a
3s
4s s1 s5 A s As 7 6 á
4s s1 s5 A s As 7 6 â
s1 s5 A s As 7 6 ã
s5
s 7
ä
s 6
Ðèñ. 3.7
òàíåòñÿ òîëüêî îäíî ðåáðî. Ïðîöåññ ôîðìèðîâàíèÿ êîäà îòðàæàåò ðèñ. 3.7. Íîìåð âåðøèíû, óäàëÿåìîé íà î÷åðåäíîì øàãå, çàêëþ÷åí â ðàìêó.  çàäàííîì ãðàôå (ðèñ. 3.7,à) ñðåäè âåðøèí åäèíè÷íîé ñòåïåíè ìèíèìàëüíûé íîìåð ó âåðøèíû 2. Ñ 48
íåé ñìåæíà âåðøèíà 1. Ñëåäîâàòåëüíî, ïåðâàÿ öèôðà êîäà Ïðþôåðà ðàâíà 1. Óäàëÿÿ âåðøèíó 2, ïîëó÷èì ãðàô, èçîáðàæåííûé íà ðèñ. 3.7,á.  ýòîì ãðàôå ñðåäè âåðøèí åäèíè÷íîé ñòåïåíè ìèíèìàëüíûé íîìåð ó âåøèíû 3, ïîýòîìó âòîðàÿ öèôðà êîäà 4. Âûïîëíèâ åùå òðè èòåðàöèè, êîòîðûì ñîîòâåòñòâóò ãðàôû, èçîáðàæåííûå íà ðèñ. 3.7,â,ã,ä, ïîëó÷èì äåðåâî, ñîñòîÿùåå èç åäèíñòâåííîãî ðåáðà {7; 6} . Ïðîöåññ çàâåðøåí. Ðåçóëüòàòû ïðîäåëàííûõ øàãîâ ïðåäñòàâëåíû â òàáë. 3.1, ïîñëåäíÿÿ ñòðîêà êîòîðîé ñîäåðæèò èñêîìûé êîä 14166. Òàáëèöà 3.1 Èòåðàöèÿ Ãðàô íà ðèñ. 3.7 Ìèíèìàëüíûé íîìåð âåðøèíû Óäàëÿåìîå ðåáðî Ýëåìåíò êîäà Ïðþôåðà
1
2
3
4
5
à 2 {1;2} 1
á 3 {4;3} 4
â 4 {1;4} 1
ã 1 {6;1} 6
ä 5 {6;5} 6
Àëãîðèòì âîññòàíîâëåíèÿ äåðåâà, ïðåäñòàâëåííîãî êîäîì Ïðþôåðà, ïîçâîëÿåò ïîëó÷èòü ñîîòâåòñòâóþùåé ñïèñîê ðåáåð. Íàçîâåì àíòèêîäîì óïîðÿäî÷åííóþ ïî âîçðàñòàíèþ ïîñëåäîâàòåëüíîñòü íîìåðîâ âåðøèí, íå âîøåäøèõ â êîä Ïðþôåðà. Äëÿ ðàññìîòðåííîãî ïðèìåðà àíòèêîä ðàâåí 2357. Äåðåâî ñòðîèòñÿ ïóòåì ïîñëåäîâàòåëüíîãî äîáàâëåíèÿ ðåáåð. Î÷åðåäíîå äîáàâëÿåìîå ðåáðî, íà÷èíàÿ ñ ïåðâîãî, îáðàçóåòñÿ ïàðîé âåðøèí, íîìåðà êîòîðûõ ñòîÿò ïåðâûìè â ñòðîêå êîäà è â ñòðîêå àíòèêîäà. Ïîñëå ýòîãî èñïîëüçîâàííûå ýëåìåíòû ñòðîê âû÷åðêèâàþòñÿ. Åñëè íîìåð, âû÷åðêíóòûé èç ñòðîêè êîäà, íå ñîäåðæèòñÿ ñðåäè îñòàâøèõñÿ â íåé ýëåìåíòîâ, åãî ñëåäóåò äîáàâèòü ê ñòðîêå àíòèêîäà, íå íàðóøàÿ åå óïîðÿäî÷åííîñòü. Îïèñàííûå äåéñòâèÿ ïîâòîðÿþòñÿ ñ "îñòàòêàìè" ñòðîê êîäà è àíòèêîäà, ïîêà íå áóäóò âû÷åðêíóòû âñå ýëåìåíòû ïåðâîé èç íèõ. Ïðè ýòîì ñòðîêà àíòèêîäà áóäåò ñîäåðæàòü äâà ýëåìåíòà, îïðåäåëÿþùèõ ïîñëåäíåå ðåáðî, êîòîðîå ñëåäóåò äîáàâèòü ê ôîðìèðóåìîìó ñïèñêó.  ðåçóëüòàòå ïîëó÷àåì ñïèñîê èç n−1 ðåáåð, ñîîòâåòñòâóþùèé äåðåâó, çàäàííîìó êîäîì Ïðþôåðà.
49
 êà÷åñòâå ïðèìåðà âûïîëíèì âîññòàíîâëåíèå äåðåâà ïî êîäó 14166. Ñîîòâåòñòâóþùèé àíòèêîä, êàê óæå áûëî ïîêàçàíî âûøå, ðàâåí 2357. Ïîýòîìó ïåðâîå ðåáðî äåðåâà áóäåò {1; 2}. Âû÷åðêèâàÿ 1 è 2, ïîëó÷àåì 4166 â ñòðîêå êîäà è 357 â ñòðîêå àíòèêîäà. Íà ñëåäóþùåé èòåðàöèè âû÷åðêèâàåì ïàðó {4; 3} è âêëþ÷àåì â ñòðîêó àíòèêîäà 4 è ò.ä. Ïîñëåäîâàòåëüíîñòü èòåðàöèé ìîæåò áûòü ïðåäñòàâëåíà òàáë. 3.2. Òàáëèöà 3.2 Èòåðàöèÿ Ñòðîêà êîäà Ñòðîêà àíòèêîäà
1 61
2 64
3 61
4 66
62
3 63
5 5 64
7 7 5 61
5 66
6
7 5 65
7 7 6 7 Äîáàâëÿåìîå ðåáðî {1;2} {4;3} {1;4} {6;1} {6;5} {6;7}
Àíàëèçèðóÿ ñïèñîê ðåáåð, óáåæäàåìñÿ, ÷òî ïîëó÷åíî èñõîäíîå äåðåâî. Îòìåòèì, ÷òî ïîðÿäîê ñëåäîâàíèÿ ðåáåð òîò æå, ÷òî è â ïðåäûäóùåé òàáëèöå.
3.3. Çàäà÷è ñ äåðåâüÿìè 3.3.1. Ïåðå÷èñëåíèå îñòîâíûõ äåðåâüåâ Ïóñòü G ÿâëÿåòñÿ (n, m)-ãðàôîì ñ ìàòðèöåé èíöèäåíòíîñòè B è òðåáóåòñÿ ïåðå÷èñëèòü âñå åãî îñòîâû. Î÷åâèäíî, ÷òî ìíîæåñòâî îñòîâîâ ýòî íåêîòîðàÿ ÷àñòü ìíîæåñòâà îñòîâíûõ ïîäãðàôîâ ãðàôà G, èìåþùèõ n−1 ðåáåð. Ìàòðèöû èíöèäåíòíîñòè âñåõ ýòèõ ïîäãðàôîâ ëåãêî ìîãóò áûòü ïîëó÷åíû èç ìàòðèöû B. Äåéñòâèòåëüíî, ëþáàÿ ìàòðèöà, ñîñòàâëåííàÿ èç n−1 ðàçëè÷íûõ ñòîëáöîâ ìàòðèöû B, îïèñûâàåò íåêîòîðûé (n, n−1)-ãðàô, ÿâëÿþùèéñÿ ïî îòíîøåíèþ ê G îñòîâíûì ïîäãðàôîì. ×òîáû âûÿñíèòü, îñòîâ ýòîò ïîäãðàô èëè íåò, âîñïîëüçóåìñÿ ñëåäóþùèì êðèòåðèåì.
50
Åñëè (n, n−1)-ãðàô ÿâëÿåòñÿ äåðåâîì, òî ìîäóëü ëþáîãî ìèíîðà n−1 ïîðÿäêà ìàòðèöû èíöèäåíòíîñòè ñîîòâåòñòâóþùåãî îðãðàôà ðàâåí 1 è ðàâåí 0, åñëè ãðàô íå ÿâëÿåòñÿ äåðåâîì. Ïîä ñîîòâåòñòâóþùèì îðãðàôîì äëÿ íåêîòîðîãî íåîðèåíòèðîâàííîãî ãðàôà áóäåì ïîíèìàòü îðãðàô, ïîëó÷åííûé ïóòåì ïðèäàíèÿ ïðîèçâîëüíîé îðèåíòàöèè ðåáðàì ýòîãî ãðàôà (äîñòàòî÷íî â êàæäîì ñòîëáöå ìàòðèöû èíöèäåíòíîñòè îäíîé èç åäèíèö ïðèïèñàòü çíàê ""). Ïåðâàÿ ÷àñòü ïðèâåäåííîãî óòâåðæäåíèÿ, êàñàþùàÿñÿ äåðåâà, ôàêòè÷åñêè áûëà äîêàçàíà â ðàçä. 3.2 (ñì. ñòð. 48.). Äîêàæåì âòîðóþ ÷àñòü. ¤ Ïóñòü (n, n−1)-ãðàô íå ÿâëÿåòñÿ äåðåâîì è, çíà÷èò, íåñâÿçåí. Òîãäà åãî ìàòðèöà èíöèäåíòíîñòè ñîñòîèò èç íåñêîëüêèõ íåçàâèñèìûõ áëîêîâ, ïðåäñòàâëÿþùèõ ñîáîé ìàòðèöû èíöèäåíòíîñòè êîìïîíåíò ñâÿçíîñòè. Òî æå ñàìîå îòíîñèòñÿ è ê ìàòðèöå èíöèäåíòíîñòè ñîîòâåòñòâóþùåãî îðãðàôà. Êðîìå òîãî, ñòðîêè ýòîé ìàòðèöû ëèíåéíî çàâèñèìû, ïðè÷åì, ïîñêîëüêó ãðàô íåñâÿçíûé, òàêàÿ çàâèñèìîñòü ñóùåñòâóåò â êàæäîé ãðóïïå ñòðîê, îïèñûâàþùåé òó èëè èíóþ êîìïîíåíòó ñâÿçíîñòè. Óäàëèâ íåêîòîðóþ ñòðîêó ìàòðèöû, ïîëó÷èì êâàäðàòíóþ ïîäìàòðèöó ïîðÿäêà n−1, îïðåäåëèòåëü êîòîðîé ðàâåí 0. Äåéñòâèòåëüíî, óäàëåíèå îäíîé ñòðîêè ìîæåò óñòðàíèòü ëèíåéíóþ çàâèñèìîñòü òîëüêî äëÿ ñòðîê, îòíîñÿùèõñÿ ëèøü ê îäíîé êîìïîíåíòå ñâÿçíîñòè. Ñòðîêè, îïðåäåëÿþùèå îñòàëüíûå êîìïîíåíòû îcòàþòñÿ ïî-ïðåæíåìó ëèíåéíî çàâèñèìûìè. Ïîýòîìó ëþáîé ìèíîð n−1 ïîðÿäêà â ðàññìàòðèâàåìîì ñëó÷àå ðàâåí 0, ÷òî è òðåáîâàëîñü äîêàçàòü. ¢  ñîîòâåòñòâèè ñ èçëîæåííûì ïðîöåññ ïîëó÷åíèÿ (ïåðå÷èñëåíèÿ) âñåõ îñòîâîâ ãðàôà G(n, m), ïðåäñòàâëåííîãî ìàòðèöåé èíöèäåíòíîñòè, ìîæíî îðãàíèçîâàòü ñëåäóþùèì îáðàçîì. Ïîñëåäîâàòåëüíî ôîðìèðóþòñÿ ñî÷åòàíèÿ èç m ïî n−1 ñòîëáöîâ çàäàííîé ìàòðèöû, êîòîðûå îáðàçóþò ìàòðèöû èíöèäåíòíîñòè (n−1)-ðåáåðíûõ îñòîâíûõ ïîäãðàôîâ ãðàôà G. Äëÿ êàæäîé òàêîé ìàòðèöû ïîñëå îáðàáîòêè âñåõ åå ñòîëáöîâ (îäíîé èç äâóõ åäèíèö ñòîëáöà ïðèïèñûâàåòñÿ çíàê "") ïîäñ÷èòûâàåòñÿ çíà÷åíèå ëþáîãî ìèíîðà n−1 ïîðÿäêà. Åñëè ïîëó÷àåòñÿ +1 èëè 1, òî ñîîòâåòñòâóþùèé îñòîâíûé ïîäãðàô
51
ÿâëÿåòñÿ îñòîâîì ãðàôà G(n, m) è åãî ìàòðèöà çàïîìèíàåòñÿ, â ïðîòèâíîì ñëó÷àå ïîäãðàô íå îñòîâ è åãî ìàòðèöà íå n−1 ó÷èòûâàåòñÿ. Ïðîöåññ çàâåðøàåòñÿ ïîñëå ïåðåáîðà âñåõ Cm ñî÷åòàíèé ñòîëáöîâ ìàòðèöû èíöèäåíòíîñòè. Âìåñòî ìàòðèöû èíöèäåíòíîñòè ìîæíî ñðàçó âçÿòü ìàòðèöó B−i ðàçìåðà (n−1)×m , ïðåäñòàâëÿþùóþ ñîáîé ìàòðèöó èíöèäåíòíîñòè ñîîòâåòñòâóþùåãî îðãðàôà ñ óäàëåííîé i-é ñòðîêîé, è âû÷èñëÿòü âñå åå ìèíîðû ïîðÿäêà n−1 .  êà÷åñòâå ïðèìåðà ïîëó÷èì âñå îñòîâû ãðàôà G, èçîáðàæåííîãî íà ðèñ. 3.8 è èìåþùåãî ìàòðèöó èíöèäåíòíîñòè B. v1 s G e2 v4 s
e1 e3 e5
e1 e2 e3 e4 e5 v1 1 1 0 0 0 v 1 0 1 1 0 B = v2 3 0 0 0 1 1 v4 0 1 1 0 1
sv2 e4 sv3
Ðèñ. 3.8
Íèæå ïðèâåäåíà ìàòðèöà B−1 è âñå åå ìèíîðû òðåòüåãî ïîðÿäêà (èõ ÷èñëî ðàâíî C53 =10 ): v2 B−1 = v3 v4
"
e1 e2 e3 e4 e5 # −1 0 1 1 0 0 0 0 −1 1 , 0 −1 −1 0 −1
¯ e1 e2 e3 ¯−1 0 1 ¯ ¯ 0 0 0 ¯ 0−1−1 M1
¯ ¯ ¯ ¯ =0 , ¯
¯ e1 e2 e4 ¯−1 0 1 ¯ ¯ 0 0−1 ¯ 0−1 0 M2
¯ ¯ ¯ ¯ =1 , ¯
¯ e1 e2 e5¯ ¯−1 0 0 ¯ ¯ ¯ ¯ 0 0 1 ¯ = − 1, ¯ 0−1−1 ¯ M3
¯ e1 e3 e4¯ ¯−1 1 1 ¯ ¯ ¯ ¯ 0 0−1 ¯ =1, ¯ 0−1 0 ¯ M4
¯ e1 e3 e5¯ ¯−1 1 0 ¯ ¯ ¯ ¯ 0 0 1 ¯ = − 1, ¯ 0−1−1 ¯ M5
¯ e1 e4 e5¯ ¯−1 1 0 ¯ ¯ ¯ ¯ 0−1 1 ¯ = − 1, ¯ 0 0−1 ¯ M6
¯ e2 e3 e4¯ ¯ 0 1 1¯ ¯ ¯ ¯ 0 0−1 ¯ =1, ¯−1−1 0 ¯ M7
¯ e2 e3 e5¯ ¯ 0 1 0¯ ¯ ¯ ¯ 0 0 1 ¯ = − 1, ¯−1−1−1 ¯ M8
¯ e2 e4 e5¯ ¯ 0 1 0¯ ¯ ¯ ¯ 0−1 1 ¯ = − 1, ¯−1 0−1 ¯ M9
¯ e3 e4 e5¯ ¯ 1 1 0¯ ¯ ¯ ¯ 0−1 1 ¯ =0. ¯−1 0−1 ¯ M10
Ìèíîðû M1 è M10 ðàâíû 0, çíà÷èò, îñòîâíûå ïîäãðàôû, îáðàçîâàííûå ìíîæåñòâàìè ðåáåð {e1 , e2 , e3 } è {e3 , e4 , e5 }, îñòîâàìè íå ÿâëÿþòñÿ, òîãäà êàê ïîäãðàôû, îïðåäåëÿåìûå ìè-
52
íîðàìè M2 M9 , îñòîâû. Ýòî íàãëÿäíî ïîäòâåðæäàåò è ðèñ. 3.9, ãäå ïðåäñòàâëåíû âñå òðåõðåáåðíûå îñòîâíûå ïîäãðàôû ðàññìàòðèâàåìîãî ãðàôà è çíà÷åíèÿ ñîîòâåòñòâóþùèõ èì v1 s e2
e1 sv2 e3
e1 sv2
e2
sv3 v4 s M1 =0 v1 s
v1 s
e1 sv2 e4 sv3
v4 s e5 M6 = − 1
v4 s M2 =1 v1 s e2
e4 sv3 sv2
e3 e4 sv3
v4 s M7 =1
v1 s
e1 sv2
v1 s
e2
e1 sv2 e3 e4 sv3
v4 s e5 sv3 M3 = − 1
v4 s M4 =1
v1 s
v1 s
sv2
e2
e4 sv3
e2
sv2 e3
v4 s e5 sv3 M8 = − 1
v4 s e5 M9 = − 1
v1 s
e1 sv2 e3
v4 s e5 sv3 M5 = − 1 v1 s
sv2 e3 e4 e sv3
v4 s 5 M10 =0
Ðèñ. 3.9
ìèíîðîâ òðåòüåãî ïîðÿäêà ìàòðèöû B−1 . Òîëüêî âîñåìü èç äåñÿòè ïîäãðàôîâ ÿâëÿþòñÿ îñòîâàìè, è èìåííî äëÿ íèõ àáñîëþòíàÿ âåëè÷èíà ìèíîðà ðàâíà 1.
3.3.2. Ïåðåñ÷åò îñòîâíûõ äåðåâüåâ Çàäà÷à îïðåäåëåíèÿ ÷èñëà îñòîâíûõ äåðåâüåâ ãðàôà åñòåñòâåííûì îáðàçîì ðåøàåòñÿ â ïðîöåññå ïåðå÷èñëåíèÿ îñòîâîâ. Îäíàêî, åñëè òðåáóåòñÿ çíàòü òîëüêî êîëè÷åñòâî îñòîâîâ, à ïîëó÷àòü ñàìè îñòîâû íåò íåîáõîäèìîñòè, èçëîæåííûé âûøå ïîäõîä íå ðàöèîíàëåí. Ýôôåêòèâíîå ðåøåíèå ðàññìàòðèâàåìîé çàäà÷è ìîæíî ïîëó÷èòü íà îñíîâå òåîðåìû ÁèíåÊîøè äëÿ îïðåäåëèòåëÿ ïðîèçâåäåíèÿ äâóõ ìàòðèö, êîòîðàÿ ôîðìóëèðóåòñÿ òàê.
Òåîðåìà 3.1 Åñëè P ìàòðèöà ïîðÿäêà n×m, à Q ìàò-
ðèöà ïîðÿäêà m×n, ãäå n≤m, òî îïðåäåëèòåëü ìàòðèöû PQ ðàâåí ñóììå ïðîèçâåäåíèé êàæäîãî ìèíîðà ïîðÿäêà n ìàòðèöû P íà ñîîòâåòñòâóþùèé ìèíîð ìàòðèöû Q. Ñîîòâåòñòâóþùèì äëÿ ìèíîðà ïîðÿäêà n ìàòðèöû P, îáðàçîâàííîãî åå ñòîëáöàìè i1 , i2 , . . . , in , ÿâëÿåòñÿ ìèíîð òîãî 53
æå ïîðÿäêà ìàòðèöû Q, îáðàçîâàííûé ñòðîêàìè i1 , i2 , . . . , in ýòîé ìàòðèöû. · 2 −1 ¸ h i 1 3 −1 1 1 , òîÏóñòü, íàïðèìåð, P = −2 0 1 è Q = −1
0
ãäà â ñîîòâåòñòâèè ñ òåîðåìîé Áèíå-Êîøè èìååì: ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ 1 3 ¯ ¯ 2 −1 ¯ ¯ 1 −1 ¯ ¯ 2 −1 ¯ ¯ 3 −1 ¯ ¯ 1 1 ¯ |PQ| = ¯ −2 0 ¯ · ¯ 1 1 ¯ + ¯ −2 1 ¯ · ¯ −1 0 ¯ + ¯ 0 1 ¯ · ¯ −1 0 ¯ =22. Ïåðåìíîæèâ ìàòðèöû íåïîñðåäñòâåííî, ïîëó÷èì: h i · 2 −1 ¸ h i 1 3 −1 6 2 1 1 = PQ= −2 0 1 · −5 2 è, çíà÷èò, |PQ|=22 . −1
0
Åñëè Q=PT , òî â ñèëó ðàâåíñòâà ñîîòâåòñòâóþùèõ ìèíîðîâ ìàòðèö-ñîìíîæèòåëåé èìååì:
|PPT |=M21 +M22 + . . . +M2Cmn , ãäå ñïðàâà îò çíàêà ðàâåíñòâà ñòîèò ñóììà êâàäðàòîâ âñåõ ìèíîðîâ ïîðÿäêà n ìàòðèöû P. Ýòî ïîçâîëÿåò óòâåðæäàòü, ÷òî îïðåäåëèòåëü êâàäðàòà ìàòðèöû ïîðÿäêà n×m, ãäå n≤m, ðàâåí ñóììå êâàäðàòîâ âñåõ åå ìèíîðîâ ïîðÿäêà n. Ñëåäîâàòåëüíî, â òîì ñëó÷àå, êîãäà ëþáîé ìèíîð ïîðÿäêà n â ìàòðèöå ïðèíèìàåò îäíî èç òðåõ çíà÷åíèé: 1, 0 èëè 1, îïðåäåëèòåëü êâàäðàòà ìàòðèöû îêàçûâàåòñÿ ðàâíûì ÷èñëó íåíóëåâûõ ìèíîðîâ. Èç ýòîãî, â ñâîþ î÷åðåäü, ñëåäóåò, ÷òî âìåñòî ïåðåáîðà ìèíîðîâ ìàòðèöû B−i äëÿ ïîëó÷åíèÿ ÷èñëà îñòîâîâ ãðàôà T äîñòàòî÷íî ïîäñ÷èòàòü îïðåäåëèòåëü |B−i ×B−i |. Íàïðèìåð, äëÿ ãðàôà, èçîáðàæåííîãî íà ðèñ. 3.8, èìååì: ¯ −1 0 0 ¯ ¯· ¯ ¯ ¯ ¯ ¯ −1 0 1 1 0 ¸ ¯ ¯ 3 −1 −1 ¯¯ 0 0 −1 T ¯ ¯ ¯ ¯ ¯B−1×B−1 ¯=¯ 0 0 0 −1 1 × 1 0 −1 ¯=¯¯ −1 2 −1 ¯¯ =8 , ¯ 0 −1 −1 0 −1 1 −1 0 ¯ −1 −1 3 ¯ ¯ 0 1 −1 ÷òî ñîâïàäàåò ñ êîëè÷åñòâîì îñòîâîâ, íàéäåííûì ðàíåå.
54
T
Ïîñêîëüêó îïðåäåëèòåëü |B−i ×B−i | ðàâåí àëãåáðàè÷åñêîìó äîïîëíåíèþ ýëåìåíòà ki,i ìàòðèöû Êèðõãîôà, òî â ñèëó ñâîéñòâà ïîñëåäíåé9 ðåøåíèå çàäà÷è î ÷èñëå îñòîâîâ â îêîí÷àòåëüíîì âèäå ìîæåò áûòü ñôîðìóëèðîâàíî â âèäå ñëåäóþùåé òåîðåìû, èçâåñòíîé êàê ìàòðè÷íàÿ òåîðåìà î äåðåâüÿõ, èëè òåîðåìà Êèðõãîôà.
Òåîðåìà 3.2 ×èñëî îñòîâíûõ äåðåâüåâ ñâÿçíîãî ãðàôà ïî-
ðÿäêà n≥2 ðàâíî àëãåáðàè÷åñêîìó äîïîëíåíèþ ëþáîãî ýëåìåíòà ìàòðèöû Êèðõãîôà. Âîñïîëüçóåìñÿ òåîðåìîé äëÿ îïðåäåëåíèÿ ÷èñëà îñòîâîâ ïîëíîãî ãðàôà Kn .  ýòîì ñëó÷àå ìàòðèöà Êèðõãîôà (ïîðÿäêà n) è àëãåáðàè÷åñêîå äîïîëíåíèå ëþáîãî åå äèàãîíàëüíîãî ýëåìåíòà (ïîðÿäêà n−1) âûãëÿäÿò òàê: ¯ ¯ ¯ n−1 −1 . . . −1 ¯ n−1 −1 . . . −1 ¯ −1 n−1 . . . −1 ¯ ¯ ¯ −1 n−1 . . . −1 K(Kn )= .. .. . . .. . . .. ¯ . .. , Ai,i = ¯ .. . . ¯ . . ¯ . . . . ¯ −1 −1 . . . n−1 ¯ −1 −1 . . . n−1 Âû÷òÿ ïåðâóþ ñòðî÷êó îïðåäåëèòåëÿ èç âñåõ íèæåëåæàùèõ è ïðèáàâèâ ê ïåðâîìó ñòîëáöó îñòàëüíûå n−2, ïîëó÷èì: ¯ ¯ ¯ ¯ ¯ n−1 −1 . . . −1 ¯ ¯ 1 −1 . . . −1 ¯ ¯ −n n . . . 0 ¯ ¯ 0 n . . . 0 ¯ ¯ ¯ ¯ ¯ Ai,i = ¯ .. .. .. ¯ = ¯ .. .. .. ¯ =nn−2 . .. .. . . ¯ . ¯ . . . . ¯ . ¯ ¯ −n 0 . . . n ¯ ¯ 0 0 . . . n ¯ Òàêèì îáðàçîì, ÷èñëî îñòîâîâ ïîëíîãî ãðàôà Kn ðàâíî n , à ïîñêîëüêó îñòîâû ïîëíîãî ïîìå÷åííîãî ãðàôà ñîñòàâëÿþò âñå ìíîæåñòâî ïîìå÷åííûõ äåðåâüåâ ñ n âåðøèíàìè, òî ñïðàâåäëèâà ñëåäóþùàÿ òåîðåìà Êýëè. n−2
Òåîðåìà 3.3 ×èñëî ðàçëè÷íûõ ïîìå÷åííûõ äåðåâüåâ ñ n
âåðøèíàìè ðàâíî nn−2 .
Ýòîò ðåçóëüòàò ìîæåò áûòü ëåãêî ïîëó÷åí íà îñíîâå êîäà Ïðþôåðà. Äåéñòâèòåëüíî, ïîñêîëüêó ëþáîå äåðåâî, èìåþùåå n âåðøèí, ïîìå÷åííûõ ÷èñëàìè îò 1 äî n , îäíîçíà÷íî 9 Ðàâåíñòâî
àëãåáðàè÷åñêèõ äîïîëíåíèé ýëåìåíòîâ ìàòðèöû.
55
îïèñûâàåòñÿ (n−2) -ðàçðÿäíûì êîäîì, êàæäûé ðàçðÿä êîòîðîãî ìîæåò ïðèíèìàòü íåêîòîðîå, âïîëíå îïðåäåëåííîå çíà÷åíèå èç ìíîæåñòâà {1, 2, . . ., n}, è íàîáîðîò, êàæäîìó (n−2) ðàçðÿäíîìó êîäó, ñîñòàâëåííîìó íà îñíîâå ÷èñåë èç óêàçàííîãî ìíîæåñòâà, ñîîòâåòñòâóåò êîíêðåòíîå äåðåâî, òî îáùåå ÷èñëî äåðåâüåâ äîëæíî áûòü ðàâíî nn−2 .
3.4. Çàäà÷à î êðàò÷àéøåì îñòîâå ãðàôà Ïóñòü G ñâÿçíûé íåîðèåíòèðîâàííûé ãðàô, êàæäîìó ðåáðó êîòîðîãî ïðèïèñàí íåêîòîðûé âåñ ci,j > 0 . Òðåáóåòñÿ ñðåäè âñåõ îñòîâîâ ãðàôà íàéòè ïî êðàéíåé ìåðå îäèí ñ ìèíèìàëüíîé ñóììîé âåñîâ ðåáåð. Õîòÿ â ðåàëüíîé ñèñòåìå, êîòîðàÿ îïèñûâàåòñÿ ãðàôîì, âåñ ðåáðà ìîæåò ñîîòâåòñòâîâàòü ñòîèìîñòè, òðóäîåìêîñòè, ïðîïóñêíîé ñïîñîáíîñòè è ò. ï., â òåîðèè ãðàôîâ ÷àùå èñïîëüçóþò òåðìèí "äëèíà ðåáðà", à ñàìà çàäà÷à òðàêòóåòñÿ êàê çàäà÷à îòûcêàíèÿ îñòîâà ñ íàèìåíüøåé ñóììîé äëèí ñîñòàâëÿþùèõ åãî ðåáåð, èëè êðàòêî, îñòîâà íàèìåíüøåé äëèíû (êðàò÷àéøåãî îñòîâà). Ýòî îäíà èç íàèáîëåå ïðîñòûõ êëàññè÷åñêèõ îïòèìèçàöèîííûõ çàäà÷ òåîðèè ãðàôîâ, êîòîðàÿ ñ÷èòàåòñÿ ïîëíîñòüþ ðåøåííîé.  íàñòîÿùåì ðàçäåëå ðàññìîòðèì äâà íàèáîëåå èçâåñòíûõ àëãîðèòìà îòûñêàíèÿ êðàò÷àéøåãî îñòîâà.
3.4.1. Àëãîðèòì Êðàñêàëà Îïèñàíèå àëãîðèòìà. Â îñíîâó àëãîðèòìà ïîëîæåíà ïðî-
ñòàÿ è èíòóèòèâíî ÿñíàÿ èäåÿ: ñòðîèòü îñòîâ èç íàèáîëåå "êîðîòêèõ" ðåáåð, íå äîïóñêàÿ ïðè ýòîì îáðàçîâàíèÿ öèêëîâ. Ïðè âûïîëíåíèè àëãîðèòìà ôîðìèðóåòñÿ ïîñëåäîâàòåëüíîñòü ãðàôîâ G1 , G2 , . . . , Gi , . . . , Gn−1 , ãäå G1 îñòîâíûé ïîäãðàô, ñîäåðæàùèé îäíî (ñàìîå êîðîòêîå) ðåáðî ãðàôà; G2 îñòîâíûé ïîäãðàô, ñîäåðæàùèé äâà (ñàìûõ êîðîòêèõ) ðåáðà ãðàôà; Gi ëåñ, ñîäåðæàùèé i ñàìûõ êîðîòêèõ ðåáåð, íå îáðàçóþùèõ öèêëîâ; Gn−1 èñêîìûé êðàò÷àéøèé îñòîâ. Ïóñòü ãðàô ïðåäñòàâëåí ñïèñêîì ðåáåð, ïðåäâàðèòåëüíî óïîðÿäî÷åííûì ïî âîçðàñòàíèþ èõ âåñîâ. 56
Ïðîöåññ íà÷èíàåòñÿ ñ ñàìîãî êîðîòêîãî ðåáðà eêð , êîòîðîå îáÿçàòåëüíî äîëæíî âîéòè â êðàò÷àéøèé îñòîâ. Ïðåäïîëîæèâ îáðàòíîå, ìû ñðàçó ïðèõîäèì ê ïðîòâîðå÷èþ. Äåéñòâèòåëüíî, ïóñòü T êðàò÷àéøèé îñòîâ, íå ñîäåðæàùèé eêð . ßñíî, ÷òî â ãðàôå T +eêð åñòü öèêë. Óäàëèâ ëþáîå ïðèíàäëåæàùåå öèêëó ðåáðî, îòëè÷íîå îò eêð , ïîëó÷àåì îñòîâ, áîëåå êîðîòêèé ÷åì T è ñîäåðæàùèé eêð . Ñëåäîâàòåëüíî ïåðâîå ðåáðî ñïèñêà âñåãäà âêëþ÷àåòñÿ â îñòîâ, îáðàçóÿ íà÷àëüíûé ôðàãìåíò áóäóùåãî îñòîâà ïîä íîìåðîì 1. Ïîñêîëüêó â ãðàôå íåò ïàðàëëåëüíûõ ðåáåð, ïðèñîåäèíåíèå ê îñòîâó âòîðîãî ðåáðà íå ìîæåò ïðèâåñòè ê ïîÿâëåíèþ öèêëà. Ïîýòîìó âòîðîå ïî äëèíå ðåáðî òàêæå äîëæíî âõîäèòü â îñòîâ. Îíî ìîæåò ëèáî "ïðèìêíóòü" ê óæå ñóùåñòâóþùåìó ôðàãìåíòó ëèáî äàñò íà÷àëî íîâîìó (ïîêà îäíîðåáåðíîìó) ôðàãìåíòó ïîä íîìåðîì 2. Äëÿ îñòàëüíûõ ðåáåð íåîáõîäèì àíàëèç íà ïðåäìåò âêëþ÷åíèÿ èëè íåâêëþ÷åíèÿ â îñòîâ. Ïðè ýòîì âîçìîæíû ñëåäóþùèå ÷åòûðå âàðèàíòà: à) êîíöû ðåáðà íå ïðèíàäëåæàò íè îäíîìó ôðàãìåíòó. Ðåáðî äîëæíî áûòü âêëþ÷åíî â îñòîâ, îáðàçóÿ ïðè ýòîì íîâûé ôðàãìåíò, êîòîðîìó ñëåäóåò ïðèñâîèòü î÷åðåäíîé íîìåð; á) òîëüêî îäèí èç êîíöîâ ðåáðà ïðèíàäëåæèò íåêîòîðîìó ôðàãìåíòó. Ðåáðî âêëþ÷àåòñÿ â îñòîâ, ïðèñîåäèíÿñü ê ýòîìó ôðàãìåíòó; â) êîíöû ðåáðà ïðèíàäëåæàò ðàçíûì ôðàãìåíòàì. Ïðè âêëþ÷åíèè ðåáðà â îñòîâ ïðîèñõîäèò îáúåäèíåíèå ýòèõ ôðàãìåíòîâ. "Íîâûé" ôðàãìåíò ïîëó÷àåò ìåíüøèé èç íîìåðîâ îáúåäèíÿåìûõ ôðàãìåíòîâ; ã) êîíöû ðåáðà ïðèíàäëåæàò îäíîìó ôðàãìåíòó. Ðåáðî íåëüçÿ âêëþ÷àòü â îñòîâ, òàê êàê ýòî ïðèâîäèò ê ïîÿâëåíèþ öèêëà. Ïîñòðîåíèå îñòîâà çàâåðøèòñÿ ïîñëå ïðèñîåäèíåíèÿ ê íåìó n−1 ðåáåð. Ê ýòîìó ìîìåíòó âñå ôðàãìåíòû îáúåäèíÿòñÿ â îäèí. Åñëè æå ýòîãî íå ïðîèñõîäèò, õîòÿ âñå m ðåáåð ãðàôà ïðîñìîòðåíû, à îñòîâ ñîäåðæèò ìåíåå ÷åì n−1 ðåáåð, òî ýòî çíà÷èò, ÷òî ãðàô íåñâÿçíûé. 57
Ðàññìîòðèì ïðèìåð. Ïóñòü òðåáóåòñÿ íàéòè êðàò÷àéøèé îñòîâ ãðàôà G ñ ìàòðèöåé âåñîâ C, ïîêàçàííûõ íà ðèñ. 3.10. Ýëåìåíò ci,j =∞, åñëè âåðøèíû vi è vj íå ñâÿçàíû ðåáðîì. G vs1 @ v4 s @
vs2 vs3 @ @ @ s @ s v6 @ sv7 v5
@ s @s v8 v9
s v10
v1 v2 v3 v4 v C= v5 6 v7 v8 v9 v10
v1 ∞ 34 ∞ 7 2 38 ∞ ∞ ∞ ∞
v2 34 ∞ 5 ∞ 30 ∞ 22 ∞ ∞ ∞
v3 ∞ 5 ∞ ∞ ∞ 25 17 ∞ ∞ ∞
v4 7 ∞ ∞ ∞ 3 ∞ ∞ 13 23 ∞
v5 2 30 ∞ 3 ∞ 20 ∞ 10 ∞ ∞
v6 38 ∞ 25 ∞ 20 ∞ ∞ ∞ 14 14
v7 ∞ 22 17 ∞ ∞ ∞ ∞ ∞ ∞ 35
v8 ∞ ∞ ∞ 13 10 ∞ ∞ ∞ 23 ∞
v9 ∞ ∞ ∞ 23 ∞ 14 ∞ 23 ∞ 8
v10 ∞ ∞ ∞ ∞ ∞ 14 35 ∞ 8 ∞
Ðèñ. 3.10
Ñîçäàåì óïîðÿäî÷åííûé ñïèñîê ðåáåð â âèäå òàáë. 3.3, ãäå ñòîëáöû e , a , b , lab ñîäåðæàò ñîîòâåòñòâåííî íîìåðà, ìåòêè êîíöîâ è äëèíû ðåáåð. Äâà ïîñëåäíèõ ñòîëáöà çàïîëíÿþòñÿ â ïðîöåññå ïîñòðîåíèÿ êðàò÷àéøåãî îñòîâà.  ñòîëáöå Ti îòðàæàåòñÿ ïðîöåññ ñîçäàíèÿ, èçìåíåíèÿ è îáúåäèíåíèÿ ôðàãìåíòîâ îñòîâà, à â ñòîëáöå V Ti ôèêñèðóþòñÿ ìíîæåñòâà âåðøèí, ïðèíàäëåæàùèõ ðàçëè÷íûì ôðàãìåíòàì îñòîâà.  ñîîòâåòñòâèè ñ àëãîðèòìîì ôîðìèðóåì ïåðâûé ôðàãìåíò T1 èç ðåáðà e1 ={v1 , v5 } (ñì. ñòîëáåö Ti ). Ìíîæåñòâî âåðøèí, îòíîñÿùèõñÿ ê T1 , ôèêñèðóåì â ïåðâîé ñòðîêå ñòîëáöà V Ti . Ðåáðî e2 ={v4 , v5 } èìååò îáùèé ýëåìåíò ñ ìíîæåñòâîì V T1 . Ïîýòîìó ïðèñîåäèíèì åãî ê ôðàãìåíòó T1 , êîððåêòèðóÿ ìíîæåñòâî V T1 , êîòîðîå òåïåðü ñîäåðæèò v1 , v4 , v5 . Êîíöû òðåòüåãî ðåáðà íå ïðèíàäëåæàò ìíîæåñòâó V T1 , ïîýòîìó ñîçäàåì âòîðîé ôðàãìåíò T2 íà îñíîâå òðåòüåãî ðåáðà. Äëÿ íåãî V T2 = {v2 , v3 }. ×åòâåðòîå ðåáðî ïðîïóñêàåì, òàê êàê îáå åãî âåðøèíû ÿâëÿþòñÿ ýëåìåíòàìè V T1 , à ïÿòîå ðåáðî äàåò íà÷àëî òðåòüåìó ôðàãìåíòó, è ò. ä. Ïðîöåññ ïîñòðîåíèÿ îñòîâà çàâåðøàåòñÿ íà ïÿòíàäöàòîì ðåáðå, êîòîðîå îáúåäèíÿåò äâà îñòàâøèåñÿ ôðàãìåíòà. Íà ðèñ. 3.11 ïðåäñòàâëåíû øåñòü èç ïÿòíàäöàòè ýòàïîâ ïîñòðîåíèÿ îñòîâà. ×èñëî â âåðõíåì ëåâîì óãëó êàæäîé "êàðòèíêè" ñîîòâåòñòâóåò òàáëè÷íîìó íîìåðó àíàëèçèðóåìîãî ðåáðà (íîìåðó èòåðàöèè). 58
Òàáëèöà 3.3 e 1 2 3 4 5 6 7 8 9 10 11 12 13 14
a v1 v4 v2 v1 v9 v5 v4 v6 v6 v3 v5 v2 v8 v4
b v5 v5 v3 v4 v10 v8 v8 v10 v9 v7 v6 v7 v9 v9
lab 2 3 5 7 8 10 13 14 14 17 20 22 23 23
15
v6
v3
25
...
...
...
...
3
vr 1 À
v4 r
T1
r v8 10
r v8
T1
T3 T1 T3 T2 T1
T1
r v5
vr 2 vr 3 T2 r v6 r v7
r v9
r v10
vr 1 À
v4 r
T1 T1 T2
vr 2 vr 3 T2 r v6 r v7
r v5 r T3 r v9 v10
Ti V Ti := {v1 , v5 } {v1 , v5 } := T1 + {v4 , v5 } {v1 , v4 , v5 } := {v2 , v3 } {v2 , v3 } := {v9 , v10 } {v9 , v10 } := T1 + {v5 , v8 } {v1 , v4 , v5 , v8 } := T3 + {v6 , v10 } {v6 , v9 , v10 } := T2 + {v3 , v7 } {v2 , v3 , v7 } := T1 + T3 ; T\3 {v1 , v4 , v5 , v6 ,8 , v9 , v10 } {v1 , v2 , v3 , v4 , v5 , := T1 + T2 ; T\2 v6 , v7 , v8 , v9 , v10 } ... ...
6
vr 1 À
v4 r
T1
r v8 11
r v5 r T3 r v9 v10
vr 1 À
v4 r r v8
T1
vr 2 vr 3 T2 r v6 rv7
r v5
vr 2 vr 3 T2 r v6 rv7
r v9
r v10
Ðèñ. 3.11
59
8
vr 1 À
v4 r
T1
r v8 15
r v5 r T3 r v9 v10
vr 1 À
v4 r r v8
T1
vr 2 vr 3 T2 r v6 r v7
vr 2
vr 3
r v5
r v6 r v7
r v9
r v10
Îáîñíîâàíèå àëãîðèòìà. Ïóñòü TK îñòîâíîå äåðå-
âî, ïîëó÷åííîå ñ ïîìîùüþ àëãîðèòìà Êðàñêàëà, à TS êðàò÷àéøèé îñòîâ. Ñîñòàâèì óïîðÿäî÷åííûé ñïèñîê ðåáåð ãðàôà, îòîáðàçèâ âõîæäåíèå èëè íåâõîæäåíèå ðåáðà â TK è TS çíàêîì + èëè − , êàê ïîêàçàíî íà ðèñ. 3.12. Ïðåäïîëîæèì, ÷òî ó ðåáåð ñ e1 ïî ei−1 âêëþ÷èòåëüíî çíàêè äëÿ TK è TS èäåíTK + + + − + . . . e1 e2 e3 e4 e5 . . .
+ ... ei . . .
− ... ek . . .
TS + + + − + . . .
− ...
+ ...
Ðèñ. 3.12
òè÷íû, à ïåðâîå íåñîâïàäåíèå èìååò ìåñòî äëÿ ei . Õàðàêòåð íåñîâïàäåíèÿ ìîæåò áûòü ±ei èëè ∓ei . Âåðõíèé çíàê ñîîòâåòñòâóåò âõîæäåíèþ (èëè íåâõîæäåíèþ) ðåáðà ei â TK , à íèæíèé â TS . Äîïóñòèì, ÷òî ñî÷åòàíèå çíàêîâ èìååò âèä ∓ei . Ýòî çíà÷èò, ÷òî ðåáðî ei âõîäèò â TS è íå âõîäèò â TK . Ïîñêîëüêó â ñîîòâåòñòâèè ñ àëãîðèòìîì Êðàñêàëà î÷åðåäíîå ðåáðî ïðîïóñêàåòñÿ, åñëè îíî îáðàçóåò öèêë ñ ïðåäøåñòâóþùèìè ðåáðàìè, ñðåäè ðåáåð TS åãî òàêæå áûòü íå ìîæåò. Òàêèì îáðàçîì, åäèíñòâåííî âîçìîæíûì ñî÷åòàíèåì çíàêîâ (ïðè ïåðâîì íåñîâïàäåíèè) ìîæåò áûòü ±ei , ò. å. ðåáðî ei ïðèñóòñòâóåò â TK è îòñóòñòâóåò â TS . Ïóñòü êîíöàìè ýòîãî ðåáðà ÿâëÿþòñÿ âåðøèíû a è b. Ïîñêîëüêó TS ÿâëÿåòñÿ äåðåâîì, â íåì äîëæíà ñóùåñòâîâàòü åäèíñòâåííàÿ öåïü, ñîåäèíÿþùàÿ a è b. Ñðåäè çâåíüåâ ýòîé öåïè èìååòñÿ, ïî êðàéíåé ìåðå, îäíî ðåáðî, íå âõîäÿùåå â TK (â ïðîòèâíîì ñëó÷àå â TK åñòü öèêë, ÷òî íåâîçìîæíî). Îáîçíà÷èì ýòî ðåáðî ek .  ïîñëåäîâàòåëüíîñòè óïîðÿäî÷åííûõ ðåáåð ek ìîæåò íàõîäèòüñÿ òîëüêî "ñïðàâà" îò ei , à ýòî çíà÷èò, ÷òî äëèíà ei íå áîëüøå, ÷åì äëèíà ek . Ïåðåñòðîèì TS , óäàëèâ èç íåãî ek è âêëþ÷èâ ei .  ñèëó ïîðÿäêà ñëåäîâàíèÿ ðåáåð ýòà ïåðåñòðîéêà íå ìîæåò óäëèíèòü îñòîâ, à áîëåå êîðîòêèé ÷åì TS îñòîâ ïîëó÷èòü íåâîçìîæíî. Ýòî çíà÷èò, ÷òî ei è ek èìåþò îäèíàêîâóþ äëèíó.  ðåçóëüòàòå ïåðåñòðîéêè âìåñòî TS ïîëó÷åí îñòîâ TS0 , òàêæå ÿâëÿþùèéñÿ êðàò÷àéøèì, â êîòîðîì
60
áîëüøå ðåáåð, ñîâïàäàþùèõ ñ ðåáðàìè TK . Ïîâòîðÿÿ îïèñàííóþ ïðîöåäóðó äëÿ TK è TS0 , çàòåì äëÿ TK è TS00 è ò. ä., ïîëó÷àåì êîíå÷íóþ ïîñëåäîâàòåëüíîñòü êðàò÷àéøèõ îñòîâîâ, ñõîäÿùóþñÿ ê TK . Ôîðìàëèçîâàííàÿ çàïèñü àëãîðèòìà. Ââåäåì ñëåäóþùèå îáîçíà÷åíèÿ: 1, 2, . . . , n ÷èñëîâûå ìåòêè âåðøèí ãðàôà; i ñ÷åò÷èê ðåáåð ãðàôà; k ñ÷åò÷èê ðåáåð îñòîâà; E ñïèñîê ðåáåð ãðàôà, óïîðÿäî÷åííûõ ïî äëèíå. Êàæäàÿ ñòðîêà ñïèñêà ñîñòîèò èç ïàðû ei,1 è ei,2 , ÿâëÿþùèõñÿ ÷èñëîâûìè ìåòêàìè êîíöîâ i -ãî ðåáðà; t íîìåð ôðàãìåíòà îñòîâà; S ñïèñîê ïðèíàäëåæíîñòè âåðøèí ãðàôà ôðàãìåíòàì îñòîâà. Çíà÷åíèå sj ðàâíî íîìåðó ôðàãìåíòà, êîòîðîìó íà òåêóùåé èòåðàöèè ïðèíàäëåæèò âåðøèíà j. Ïåðâîíà÷àëüíî âñå ýëåìåíòû ñïèñêà ðàâíû íóëþ. Ïî çàâåðøåíèè ðàáîòû àëãîðèòìà âñå ýëåìåíòû S ðàâíû åäèíèöå. Äëÿ ðàññìîòðåííîãî âûøå ïðèìåðà äèíàìèêà èçìåíåíèÿ ñïèñêà îòðàæåíà â òàáë. 3.4. Íà èòåðàöèÿõ 4, 7, 9, 12 14 ñîñòîÿíèå ñïèñêà íå ìåíÿåò ñÿ, òàê êàê ñîîòâåòñòâóþùèå ðåáðà íå ìîãóò áûòü âêëþ÷åíû â îñòîâ. Èòåðàöèÿ (ðåáðî) 0 1 2 3 5 6 8 10 11 15
Òàáëèöà 3.4 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 Ôðàãìåíòû îñòîâà 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 T1 :={1; 5} 1 0 0 1 1 0 0 0 0 0 T1 :=T1 + {4; 5} 1 2 2 1 1 0 0 0 0 0 T2 :={2; 3} 1 2 2 1 1 0 0 0 3 3 T3 :={9; 10} 1 2 2 1 1 0 0 1 3 3 T1 :=T1 + {5; 8} 1 2 2 1 1 3 0 1 3 3 T3 :=T3 + {6; 10} 1 2 2 1 1 3 2 1 1 1 T2 :=T2 + {3; 7} 1 2 2 1 1 1 2 1 1 1 T1 :=T1 + T3 ; T\3 1 1 1 1 1 1 1 1 1 1 T1 :=T1 + T2 ; T\2
61
Ñ èñïîëüçîâàíèåì ââåäåííûõ îáîçíà÷åíèé çàïèñü àëãîðèòìà ïðèíèìàåò âèä:
begin
{ÊÐÀÑÊÀË} i := 1; t := 1; k := 1; { Ôîðìèðîâàòü ïåðâûé ôðàãìåíò îñòîâà } se1,1 := t; se1,2 := t; { íà îñíîâå êðàò÷àéøåãî ðåáðà ãðàôà } output(i); { è íàïå÷àòàòü íîìåð ðåáðà. } while (k<(n−1)) & (i<m) do i := i+1; { Ïåðåéòè ê ñëåäóþùåìó ðåáðó. } if (sei,1 =0) & (sei,2 =0) { Åñëè ðåáðî íå èìååò îáùèõ } { âåðøèí íè ñ îäíèì èç ôðàãìåíòîâ, } k := k+1; { âêëþ÷èòü ðåáðî â îñòîâ, } t := t+1; { ñîçäàâ } then { íîâûé ôðàãìåíò, } sei,2 := t; sei,1 := t; output(i); { è íàïå÷àòàòü íîìåð ðåáðà. } else if (sei,1 =0) & (sei,2 6=0) { Åñëè ðåáðî èìååò îáùóþ } { âåðøèíó ñ îäíèì èç ôðàãìåíòîâ, òî } ( k := k+1; { âêëþ÷èòü ðåáðî â îñòîâ, } then ssi,1 := sei,2 ; { ïðèñîåäèíèâ åãî ê ôðàãìåíòó, } output(i); { è íàïå÷àòàòü íîìåð ðåáðà. } else if (sei,1 6=0) & (ssi,2 =0) { Åñëè ðåáðî èìååò îáùóþ } { âåðøèíó ñ îäíèì èç ôðàãìåíòîâ, òî } ( k := k+1; { âêëþ÷èòü ðåáðî â îñòîâ, } then sei,2 := sei,1 ; { ïðèñîåäèíèâ åãî ê ôðàãìåíòó, } output(i); { è íàïå÷àòàòü íîìåð ðåáðà. } else if (sei,1 6=0) & (sei,2 6=0) & (sei,1 6=sei,2 ) { Åñëè êîíöû ðåáðà } { ïðèíàäëåæàò ðàçíûì ôðàãìåíòàì, } k := k+1; { âêëþ÷èòü ðåáðî â îñòîâ, } { îáúåäèíèâ ôðàãìåíòû } for ½ j := 1 to n do if sj =max(sei,1 , sei,2 ) { ïîä ìåíüøèì } then then sj := min(sei,1 , sei,2 ); { íîìåðîì, } output(i); { è íàïå÷àòàòü íîìåð ðåáðà. } { Êîíöû ðåáðà ïðèíàäëåæàò îäíîìó ôðàãìåíòó } else { Íå âêëþ÷àòü ðåáðî â îñòîâ. } if k = (n − 1) then output ('Ïîëó÷åíî êðàò÷àéøåå îñòîâíîå äåðåâî.' ) else output ('Ïîëó÷åí êðàò÷àéøèé îñòîâíûé ëåñ.' ) end. {ÊÐÀÑÊÀË} 62
Îöåíèì òðóäîåìêîñòü ïðèâåäåííîãî âàðèàíòà ðåàëèçàöèè àëãîðèòìà Êðàñêàëà ïðèìåíèòåëüíî ê (n, m) -ãðàôó.  õóäøåì ñëó÷àå (ñàìîå äëèííîå ðåáðî ïðèíàäëåæèò êðàò÷àéøåìó îñòîâó) âíåøíèé öèêë ïåðåáîðà ðåáåð ãðàôà äîëæåí ïîâòîðèòüñÿ m−1 ðàç. Êðîìå òîãî, â òåõ ñëó÷àÿõ, êîãäà âêëþ÷åíèå ðåáðà ïðèâîäèò ê îáúåäèíåíèþ äâóõ ôðàãìåíòîâ áóäóùåãî îñòîâà, äîëæíà áûòü âûïîëíåíà ïðîöåäóðà îáúåäèíåíèÿ ìíîæåñòâ èõ âåðøèí. ×èñëî ïîâòîðåíèé ñîîòâåòñòâóþùåãî öèêëà ðàâíî n. Ó÷èòûâàÿ âñå ýòî, ìîæíî óòâåðæäàòü, ÷òî òðóäîåìêîñòü àëãîðèòìà íå õóæå ÷åì O(mn). Ýòî âåñüìà çàâûøåííàÿ îöåíêà, ïîñêîëüêó äàëåêî íå âñåãäà ðåáðî ñ ìàêñèìàëüíûì âåñîì âõîäèò â îñòîâ, è ñîâñåì íå îáÿçàòåëüíî, ÷òî âêëþ÷åíèå î÷åðåäíîãî ðåáðà äîëæíî ïðèâîäèòü ê ñëèÿíèþ íåêîòîðîé ïàðû ôðàãìåíòîâ.  çàêëþ÷åíèå îòìåòèì, ÷òî àëãîðèòì ïðåäïîëàãàåò óïîðÿäî÷åííîñòü ñïèñêà ðåáåð, à ýòî, â ñâîþ î÷åðåäü, òðåáóåò âûïîëíåíèÿ åùå ïîðÿäêà O(m log2 m) îïåðàöèé. Ïðè äîñòàòî÷íî áîëüøîì m èìåííî ýòà ñîñòàâëÿþùàÿ ïðîöåññà ïîëó÷åíèÿ êðàò÷àéøåãî îñòîâà ìîæåò îêàçàòüñÿ îñíîâíîé â îáùåì áàëàíñå òðóäîåìêîñòè.
3.4.2. Àëãîðèòì Ïðèìà Îïèñàíèå àëãîðèòìà.  îòëè÷èå îò àëãîðèòìà Êðàñ-
êàëà, àëãîðèòì Ïðèìà îáåñïå÷èâàåò ïîñòðîåíèå îñòîâà ãðàôà G(V, E), çàäàííîãî ñïèñêîì ðåáåð, ïóòåì íàðàùèâàíèÿ åäèíñòâåííîãî äðåâîâèäíîãî ôðàãìåíòà T (V T, ET ), êîòîðûé âíà÷àëå âîîáùå íå èìååò ðåáåð è ñîñòîèò èç îäíîé ïðîèçâîëüíî âûáðàííîé âåðøèíû ãðàôà. Íà êàæäîé èòåðàöèè ê ôðàãìåíòó äîáàâëÿåòñÿ ñàìîå êîðîòêîå ðåáðî èç ÷èñëà ðåáåð, ó êîòîðûõ îäíà èç êîíöîâûõ âåðøèí vi óæå âêëþ÷åíà â ñòðîÿùèéñÿ îñòîâ, à äðóãàÿ vj åùå íåò, ò. å. ETk :=ETk−1 +{vi , vj } è V Tk :=V Tk−1 +vj , ãäå vi ∈V Tk−1 , vj 6∈V Tk−1 , à ci,j ìèíèìàëüíî. Ïðîöåññ çàêàí÷èâàåòñÿ ïîñëå ïðèñîåäèíåíèÿ ê T n−1 ðåáåð. Òàêèì îáðàçîì, ïðè âûïîëíåíèè àëãîðèòìà ôîðìèðóåòñÿ ïîñëåäîâàòåëüíîñòü äåðåâüåâ: T0 , T1 , . . . , Tn−1 , ãäå T0 =h{v}, ∅i, à Tn−1 êðàò÷àéøèé îñòîâ. Åñëè ñïèñîê óïîðÿäî÷åí ïî âîç-
63
ðàñòàíèþ âåñîâ ðåáåð, òî âêëþ÷åíèþ â îñòîâ íà î÷åðåäíîé èòåðàöèè ïîäëåæèò ïåðâîå îò íà÷àëà ñïèñêà ðåáðî {vi , vj }, îòâå÷àþùåå óêàçàííîìó âûøå óñëîâèþ. Ïîñòðîåíèå îñòîâà äëÿ ãðàôà, èçîáðàæåííîãî íà ðèñ. 3.10, èëëþñòðèðóåò òàáë. 3.5, àíàëîãè÷íàÿ òàáë. 3.3. e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
a
b
lab
Ti T0 =h{v1 }, ∅i T1 := T0 + {v1 , v5 } T2 := T1 + {v4 , v5 }
Òàáëèöà 3.5
V Ti {v1 } v1 v5 2 {v1 , v5 } v4 v5 3 {v1 , v4 , v5 } {v1 , v2 , v3 , v4 , v5 , v2 v3 5 T8 := T7 + {v2 , v3 } v6 , v8 , v9 , v10 } v1 v4 7 v9 v10 8 T6 := T5 + {v9 , v10 } {v1 , v4 , v5 , v6 , v8 , v9 , v10 } v5 v8 10 T3 := T2 + {v5 , v8 } {v1 , v4 , v5 , v8 } v4 v8 13 v6 v10 14 T5 := T4 + {v6 , v10 } {v1 , v4 , v5 , v6 , v8 , v10 } v6 v9 14 {v1 , v2 , v3 , v4 , v5 , v3 v7 17 T9 := T8 + {v3 , v7 } v6 , v7 , v8 , v9 , v10 } v5 v6 20 T4 := T3 + {v5 , v6 } {v1 , v4 , v5 , v6 , v8 } v2 v7 22 v8 v9 23 v4 v9 23 v6 v3 25 T7 := T6 + {v3 , v6 }; {v1 , v3 , v4 , v5 , v6 , v8 , v10 } ... ... ... ... ...
i
1 2 8 6 3 5 9 4
7
Çäåñü ñîäåðæèìîå ñòîëáöà Ti ïîêàçûâàåò, êàê ðàñòåò åäèíñòâåííûé äðåâîâèäíûé ôðàãìåíò ôîðìèðóåìîãî îñòîâà, ñòîëáåö V Ti îòðàæàåò ðîñò ìíîæåñòâà âåðøèí, ïðèíàäëåæàùèõ ýòîìó ôðàãìåíòó, à íîìåð èòåðàöèè, íà êîòîðîé ðåáðî âêëþ÷àåòñÿ â îñòîâ, óêàçàí â ñòîëáöå i . Ïóñòü íà÷àëüíûé ôðàãìåíò ñîñòîèò èç âåðøèíû v1 . Àíàëèç ïåðâîãî ðåáðà ñïèñêà ïîêàçûâàåò, ÷òî îíî îòâå÷àåò óñëîâèþ âêëþ÷åíèÿ â îñòîâ. Ïîëó÷åííîå äåðåâî èìååò äâå âåðøèíû v1 è v5 . Ïðîâåðÿÿ âòîðîå ðåáðî, óáåæäàåìñÿ, ÷òî åãî òàêæå ñëåäóåò âêëþ÷èòü â îñòîâ. Íîâûé ôðàãìåíò ñîäåðæèò
64
óæå òðè âåðøèíû V T2 ={v1 , v4 , v5 }. Òðåòüå ðåáðî ïîêà ïðîïóñêàåì, òàê êàê íè v2 íè v3 íå ïðèíàäëåæàò V T2 . Òî æå ñàìîå ìîæíî ñêàçàòü è î ïÿòîì ðåáðå. Îáà êîíöà ÷åòâåðòîãî ðåáðà, íàîáîðîò, ïðèíàäëåæàò V T2 , çíà÷èò, åãî âêëþ÷åíèå ïðèâåäåò ê ïîÿâëåíèþ öèêëà, ÷òî íåäîïóñòèìî. È òîëüêî øåñòîå ðåáðî îòâå÷àåò óñëîâèþ íà âêëþ÷åíèå. Òàêèì îáðàçîì, ïîñëå òðåòüåé èòåðàöèè ïîëó÷àåì äåðåâî T3 , ñîñòîÿùåå èç òðåõ ðåáåð, ò. å. ET3 ={{v1 , v5 }, {v4 , v5 }, {v5 , v8 }}. Íà ÷åòâåðòîé èòåðàöèè ê äåðåâó äîáàâëÿåòñÿ îäèííàäöàòîå ðåáðî, íà ïÿòîé âîñüìîå è ò. ä. Ïîñòðîåíèå îñòîâà çàâåðøàåòñÿ íà äåâÿòîé èòåðàöèè ïðèñîåäèíåíèåì äåñÿòîãî ðåáðà. Íà ðèñ. 3.13 ïðåäñòàâëåíû 3
vr 1 À
v4 r T3 vr 5 r v8 7
r v9
vr 1 À
v4 r r v8
vr 2
vr 3
r v6 rv7
vr 2
r v10
vr 1 À
v4 r
r v10
r v8 vr 3
r T7 r v6 rv7 v5 r v9
5
8
r v8
vr 3
r T5 r v6 rv7 v5 r v9
vr 1 À
v4 r
vr 2
vr 2
r v10
vr 1 À
v4 r
r v10
r v8 vr 3
r T8 r v6 rv7 v5 r v9
6
9
r v8
vr 3
r T6 r v6 rv7 v5 r v9
vr 1 À
v4 r
vr 2
r v10 vr 2
vr 3
r T9 r v6 rv7 v5 r v9
r v10
Ðèñ. 3.13
îòäåëüíûå ýòàïû îïèñàííîãî ïðîöåññà. ×èñëî â âåðõíåì óãëó êàæäîãî ïðÿìîóãîëüíèêà ñîîòâåòñòâóåò èòåðàöèè, íà êîòîðîé ïîëó÷åí èçîáðàæåííûé ôðàãìåíò. Ôîðìàëèçîâàííàÿ çàïèñü àëãîðèòìà. Ââåäåì ñëåäóþùèå îáîçíà÷åíèÿ: 1, 2, . . . , n ìåòêè âåðøèíû ãðàôà; i ñ÷åò÷èê ðåáåð ãðàôà; k ñ÷åò÷èê âåðøèí ãðàôà è ñ÷åò÷èê èòåðàöèé; E ñïèñîê ðåáåð ãðàôà, óïîðÿäî÷åííûõ ïî äëèíå. Êàæäàÿ ñòðîêà ñïèñêà ñîñòîèò èç ïàðû ei,1 è ei,2 , ÿâëÿþùèõñÿ ìåòêàìè êîíöîâ i -ãî ðåáðà; 65
S ñïèñîê ïðèíàäëåæíîñòè âåðøèí ãðàôà ôîðìèðóåìîìó ôðàãìåíòó îñòîâà. Åñëè ê òåêóùåé èòåðàöèè âåðøèíà j óæå âêëþ÷åíà â îñòîâ, òî sj =1, èíà÷å sj =.0 Ïåðâîíà÷àëüíî âñå ýëåìåíòû ñïèñêà ðàâíû íóëþ, êðîìå ýëåìåíòà, ñîîòâåòñòâóþùåãî íà÷àëüíîé âåðøèíå. Ïî çàâåðøåíèè ðàáîòû àëãîðèòìà âñå ýëåìåíòû S ðàâíû åäèíèöå. Äëÿ ðàññìîòðåííîãî âûøå ïðèìåðà äèíàìèêà èçìåíåíèÿ ñïèñêà îòðàæåíà â òàáë. 3.6. Èòåðàöèÿ (ðåáðî) 0 1 2 3 4 5 6 7 8 9
s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 1 1
0 0 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1
0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 1 1 1 1
Òàáëèöà 3.6 Ôðàãìåíòû îñòîâà T0 =h{v1 }, ∅i T1 :=T0 + {1; 5} T2 :=T1 + {4; 5} T3 :=T2 + {5; 8} T4 :=T3 + {5; 6} T5 :=T4 + {6; 9} T6 :=T5 + {3; 6} T7 :=T6 + {3; 2} T8 :=T7 + {2; 3} T9 :=T8 + {3; 7}
Ñ èñïîëüçîâàíèåì ââåäåííûõ îáîçíà÷åíèé çàïèñü àëãîðèòìà ïðèíèìàåò âèä:
begin {ÏÐÈÌ} for k := 1 to n do sk := 0; { Èíèöèàëèçàöèÿ ñïèñêà S }
s1 := 1; { Íà÷àòü ïîñòðîåíèå îñòîâà ñ âåðøèíû v1 } for { Öèêë ôîðìèðîâàíèÿ îñòîâà } k := 1 to n−1 do i := 1; while sei,1 =sei,2 do i := i+1; { Ïîèñê âêëþ÷àåìîãî ðåáðà. } sei,1 :=1; sei,2 :=1; {Ðåáðî íàéäåíî, âêëþ÷èòü åãî â îñòîâ } output(i); { è íàïå÷àòàòü íîìåð. } end. {ÏÐÈÌ}
Îöåíèâàÿ, êàê è ðàíåå, ïî ìàêñèìóìó òðóäîåìêîñòü ýòîãî âàðèàíòà àëãîðèòìà Ïðèìà, óáåæäàåìñÿ, ÷òî åå ïîðÿäîê ðàâåí O(nm) áåç ó÷åòà òðóäîåìêîñòè ñîðòèðîâêè ñïèñêà ðåáåð.
66
Ðàññìîòðèì åùå îäèí âàðèàíò ðåàëèçàöèè àëãîðèòìà, îñíîâàííûé íà òåõíèêå ïîìåòîê âåðøèí, íå òðåáóþùèé ïðåäâàðèòåëüíîé ñîðòèðîâêè ðåáåð è èñïîëüçóþùèé ìàòðèöó âåñîâ C. Ïîêàæåì ýòó òåõíèêó íà ïðèìåðå ãðàôà, èçîáðàæåííîãî íà ðèñ. 3.10. Ìàòðèöà âåñîâ ýòîãî ãðàôà èìååò âèä: v1 v2 v3 v4 v C = v5 6 v7 v8 v9 v10
v1 ∞ 34 ∞ 7 2 38 ∞ ∞ ∞ ∞
v2 34 ∞ 5 ∞ 30 ∞ 22 ∞ ∞ ∞
v3 ∞ 5 ∞ ∞ ∞ 25 17 ∞ ∞ ∞
v4 7 ∞ ∞ ∞ 3 ∞ ∞ 13 23 ∞
v5 2 30 ∞ 3 ∞ 20 ∞ 10 ∞ ∞
v6 38 ∞ 25 ∞ 20 ∞ ∞ ∞ 14 14
v7 ∞ 22 17 ∞ ∞ ∞ ∞ ∞ ∞ 35
v8 ∞ ∞ ∞ 13 10 ∞ ∞ ∞ 23 ∞
v9 ∞ ∞ ∞ 23 ∞ 14 ∞ 23 ∞ 8
v10 ∞ ∞ ∞ ∞ ∞ . 14 35 ∞ 8 ∞
Ïðîöåññ ïîëó÷åíèÿ îñòîâà îòîáðàæåí â òàáë. 3.7. Ñòîëáöû òàáëèöû ñîäåðæàò ÷èñëîâûå ïîìåòêè (âðåìåííûå è ïîñòîÿííûå), ïðèñâàèâàåìûå âåðøèíàì ïðè âûïîëíåíèè àëãîðèòìà. Èòåðàöèè 1 2 3 4 5 6 7 8 9
pred
Òàáëèöà 3.7 v1
v2
v3
v4
v5
v6
v7
v8
v9
v10
p
34 30 30 30 30 30 30 5
∞ ∞ ∞ ∞ 25 25 25
7 3
2
38 20 20 20
∞ 10 10
∞ ∞ 23 23 14
∞ ∞ ∞ ∞ 14 8
6 v1 6 v5 v3
6 v1 v6
6 v1 v5
v1
6 v1 v5
∞ ∞ ∞ ∞ ∞ ∞ 35 17 17 6 v1 6 v10 v3
6 v1 v5
6 v1 6 v4 v6
6 v1 6 v6 v9
v1 v5 v4 v8 v6 v9 v10 v3 v2
Çíà÷åíèå ïîìåòêè ëþáîé âåðøèíû vi , åùå íå âêëþ÷åííîé â îñòîâ, ðàâíî äëèíå ðåáðà, ñâÿçûâàþùåãî vi ñ áëèæàéøåé âåðøèíîé, óæå âîøåäøåé â îñòîâ. Íà êàæäîé èòåðàöèè â îñòîâ
67
âêëþ÷àåòñÿ âåðøèíà ñ ìèíèìàëüíîé âðåìåííîé ïîìåòêîé, êîòîðàÿ â äàëüíåéøåì óæå íå ìåíÿåòñÿ (â òàáëèöå âûäåëåíà øðèôòîì). Ñàìà âåðøèíà ñ÷èòàåòñÿ ïîñòîÿííî ïîìå÷åííîé è ôèêñèðóåòñÿ â ñòîëáöå p òàáëèöû. Ïîñëå ýòîãî ïðîèçâîäèòñÿ ïåðåñ÷åò âðåìåííûõ ïîìåòîê âñåõ âåðøèí, ñîñåäíèõ ñ ïîñëåäíåé ïîñòîÿííî ïîìå÷åííîé âåðøèíîé, ïî ôîðìóëå:
l(vi ) = min[l(vi ), cp,i ], ãäå l(vi ) ïîìåòêà âåðøèíû vi ; p ïîñëåäíÿÿ ïîñòîÿííî ïîìå÷åííàÿ âåðøèíà. Åñëè l(vi ) ìåíÿåò çíà÷åíèå (óìåíüøàåòñÿ), ñëåäóåò ñêîððåêòèðîâàòü ñîäåðæèìîå ñòðîêè pred â ñòîëáöå vi , çàìåíèâ ïðåæíåå çíà÷åíèå íà çíà÷åíèå p. Ïóñòü T0 ñîñòîèò èç åäèíñòâåííîé âåðøèíû v1 . Ðàññìàòðèâàÿ íà ïåðâîé èòåðàöèè v1 êàê ïîñëåäíþ ïîñòîÿííî ïîìå÷åííóþ, çàíîñèì åå â ñòîëáåö p ïåðâîé ñòðîêè. Èñïîëüçóÿ ìàòðèöó C, ïðèñâàèâàåì âñåì îñòàëüíûì âåðøèíàì âðåìåííûå ïîìåòêè l(vi )=c1,i . Ãîâîðÿò, ÷òî âåðøèíû ïîëó÷èëè ñâîè ïîìåòêè èç v1 . Ôèêñèðóåì ýòî â ïîñëåäíåé ñòðîêå òàáëèöû ñòðîêå "âåðøèí-ïðåäøåñòâåííèö", îáîçíà÷åííîé êàê pred. Çàòåì îòûñêèâàåì ìèíèìàëüíóþ âðåìåííóþ ïîìåòêó.  íàøåì ïðèìåðå ýòî ïîìåòêà âåðøèíû v5 , ðàâíàÿ 2. Äàëåå ñ÷èòàåì íàéäåííóþ ïîìåòêó ïîñòîÿííîé, à âåðøèíó v5 ïîñòîÿííî ïîìå÷åííîé, çàïèñûâàåì åå â ñòîëáåö p è âêëþ÷àåì â ôîðìèðóåìûé îñòîâ ðåáðî {v5 , v1 }. Îòìåòèì, ÷òî âåñ âêëþ÷àåìîãî ðåáðà ðàâåí çíà÷åíèþ íàéäåííîé ïîìåòêè. Íà ñëåäóþùåé èòåðàöèè ïåðåñ÷èòûâàåì âðåìåííûå ïîìåòêè ïî ôîðìóëå l(vi )= min[l(vi ), c5,i ]. Ïðè ýòîì, åñëè çíà÷åíèå ïîìåòêè l(vi ) ìåíÿåòñÿ (óìåíüøàåòñÿ), êîððåêòèðóåì è çíà÷åíèå â ïîñëåäíåé ñòðîêå ñòîëáöà vi , çàìåíÿÿ åãî òåêóùèì çíà÷åíèåì p=v5 . Ïîñêîëüêó èçìåíÿþòñÿ l(v2 ), l(v4 ), l(v6 ) è l(v8 ), ñëåäóåò ñêîððåêòèðîâàòü ñîäåðæèìîå 2, 4, 6 è 8 ñòîëáöîâ ïîñëåäíåé ñòðîêè, çàìåíèâ åãî íà v5 . Âíîâü îòûñêèâàåì ìèíèìàëüíóþ âðåìåííóþ ïîìåòêó. Òåïåðü ýòî l(v4 )=3, êîòîðàÿ ñòàíîâèòñÿ ïîñòîÿííîé. Ñîîòâåòñòâåííî ïîñëåäíåé ïîñòîÿííî ïîìå÷åííîé âåðøèíîé p ñòàíîâèòñÿ v4 , à â îñòîâ âêëþ÷àåòñÿ ðåáðî {v4 , v5 }.
68
Íà òðåòüåé èòåðàöèè ïîñëå ïåðåñ÷åòà âðåìåííûõ ïîìåòîê, ïðè÷åì èçìåíÿåòñÿ òîëüêî ïîìåòêà l(v9 ), ìèíèìàëüíîé îêàçûâàåòñÿ ïîìåòêà âåðøèíû v8 , è â îñòîâ âêëþ÷àåòñÿ ðåáðî {v8 , v5 }. Âòîðàÿ âåðøèíà ðåáåðíîé ïàðû áåðåòñÿ èç ïîñëåäíåé ñòðîêè âîñüìîãî ñòîëáöà. Íà ÷åòâåðòîé èòåðàöèè (çíà÷åíèÿ âñåõ ïîìåòîê ñîõðàíÿþòñÿ) ìèíèìàëüíîé îêàçûâàåòñÿ ïîìåòêà l(v6 )=20, íà ïÿòîé (èçìåíÿþòñÿ l(v3 ) è l(v9 ) ) ìèíèìàëüíà l(v9 )=14 è ò. ä. Ïðîöåññ çàâåðøàåòñÿ íà äåâÿòîé èòåðàöèè ïîñëå òîãî, êàê âñå âåðøèíû ïîëó÷àþò ïîñòîÿííûå ïîìåòêè (ñì. òàáë. 3.6).  èòîãå ïîëó÷àåì ñïèñîê ðåáåð, îáðàçóþùèõ êðàò÷àéøèé îñòîâ: {v2 , v3 }, {v3 , v6 }, {v4 , v5 }, {v5 , v1 },{v6 , v5 },{v7 , v3 },{v8 , v5 }, {v9 , v6 },{v10 , v9 }. Ïåðâàÿ âåðøèíà ïàðû áåðåòñÿ èç çàãîëîâêà ñòîëáöà, à âòîðàÿ èç ïîñëåäíåé ñòðîêè òîãî æå ñòîëáöà. Ðåçóëüòàò ïîëíîñòüþ ñîîòâåòñòâóåò îñòîâó íà ðèñ. 3.13(9). Äëèíà íàéäåííîãî îñòîâà ðàâíà ñóììå âñåõ ïîñòîÿííûõ ïîìåòîê, êîòîðûå, êàê ëåãêî ïðîâåðèòü, ðàâíû âåñàì ðåáåð, âîøåäøèõ â îñòîâ. Ñòðîêà âåðøèí-ïðåäøåñòâåííèö pred ìîæåò áûòü ñôîðìèðîâàíà è ïîñëå òîãî, êàê âñå âåðøèíû ïîëó÷àò ïîñòîÿííûå ïîìåòêè. Äëÿ ýòîãî äîñòàòî÷íî â êàæäîì ñòîëáöå òàáëèöû íàéòè ñàìóþ âåðõíþþ ñòðî÷êó ñ ìèíèìàëüíîé ïîìåòêîé. Çíà÷åíèå predi ñîäåðæèòñÿ â ñòîëáöå p ýòîé ñòðîêè.  çàêëþ÷åíèå îòìåòèì, ÷òî òðóäîåìêîñòü ðàññìîòðåííîãî âàðèàíòà ðåàëèçàöèè àëãîðèòìà Ïðèìà èìååò ïîðÿäîê O(n2 ). Äåéñòâèòåëüíî, ÷èñëî èòåðàöèé âíåøíåãî öèêëà ðàâíî n−1 ïðè÷åì íà êàæäîé èòåðàöèè ñëåäóåò îáðàáîòàòü ñòðîêó ìàòðèöû C.
69
4. Ïóòè è ìàðøðóòû â ãðàôàõ Ñóùåñòâóåò áîëüøîå ðàçíîîáðàçèå çàäà÷, ñâÿçàííûõ ñ ïóòÿìè è ìàðøðóòàìè â ãðàôå, íà÷èíàÿ îò ñòàíäàðòíûõ çàäà÷ íà ñóùåñòâîâàíèå, ïåðåñ÷åò è ïåðå÷èñëåíèå è êîí÷àÿ çàäà÷àìè ïîèñêà ïóòåé, îòâå÷àþùèõ îïðåäåëåííûì òðåáîâàíèÿì. Òàêèìè òðåáîâàíèÿìè ìîãóò áûòü: òðåáîâàíèÿ ìàêñèìàëüíîñòè (ìèíèìàëüíîñòè) äëèíû, ïðîïóñêíîé ñïîñîáíîñòè èëè íàäåæíîñòè ïóòè; òðåáîâàíèÿ ê ìíîæåñòâó âåðøèí (ðåáåð), ïðèíàäëåæàùèõ (íå ïðèíàäëåæàùèõ) ïóòè, è ò. ï. Ïðè ýòîì ñàìè ãðàôû ìîãóò èìåòü ðàçëè÷íûå ñâîéñòâà, íàïðèìåð, áûòü èëè íå áûòü îðèåíòèðîâàííûìè, öèêëè÷åñêèìè, âçâåøåííûìè è ò. ä. Íàêîíåö, îäèí è òîò æå ãðàô ìîæåò áûòü îïèñàí ïî-ðàçíîìó. Ïîýòîìó äàæå îäíà è òà æå çàäà÷à äëÿ ðàçëè÷íûõ ïî ñâîèì õàðàêòåðèñòèêàì è ñïîñîáó îïèñàíèÿ ãðàôîâ ìîæåò ðåøàòüñÿ ïî-ðàçíîìó.
4.1. Ñóùåñòâîâàíèå ïóòåé Ýòà çàäà÷à ýêâèâàëåíòíà çàäà÷å íà äîñòèæèìîñòü â îðãðàôå, ðåøåíèå êîòîðîé ðàññìîòðåíî â ðàçä. 2. Äåéñòâèòåëüíî, ìàòðèöà äîñòèæèìîñòè ïîëíîñòüþ îïðåäåëÿåò íàëè÷èå èëè îòñóòñòâèå ïóòè äëÿ ëþáîé óïîðÿäî÷åííîé ïàðû âåðøèí. Ïîýòîìó îãðàíè÷èìñÿ ïðèìåðîì. Íà ðèñ. 4.1 èçîáðàæåíû ãðàô G è åãî ìàòðèöà äîñòèæèìîñòè R , ïîëó÷åííàÿ îäíèì èç ðàíåå ðññìîòðåííûõ ñïîñîáîâ.
G
dr @ 6 ar - r b@ @ R rc @ I @ @? r e
Ðèñ. 4.1
a a 1 b 1 R = c 1 d 1 e 1
b 1 1 1 1 1
c 1 1 1 1 1
d 1 1 1 1 1
e 1 1 1 . 1 1
Ïðîñòàÿ ïðîâåðêà óáåæäàåò, ÷òî äëÿ ëþáîé ïàðû âåðøèí â ãðàôå èìååòñÿ õîòÿ áû îäèí ïóòü. Èìåííî ýòî è ñëåäóåò èç ïðèâåäåííîé ìàòðèöû, ïîñêîëüêó âñå åå ýëåìåíòû ðàâíû 1. 70
4.2. Ïåðåñ÷åò ìàðøðóòîâ è ïóòåé Ïóñòü Γ(vi ) ìíîæåñòâî âåðøèí, ÿâëÿþùèõñÿ êîíöàìè äóã, âûõîäÿùèõ èç vi , à Γ−1 (vj ) ìíîæåñòâî âåðøèí, ÿâëÿþùèõñÿ íà÷àëàìè äóã, âõîäÿùèõ â vj . Òîãäà ïåðåñå÷åíèå Γ(vi )∩Γ−1 (vj ) ïðåäñòàâëÿåò ñîáîé ìíîæåñòâî ïðîìåæóòî÷íûõ âåðøèí, ïðèíàäëåæàùèõ öåïÿì äëèíîé â äâå äóãè ìåæäó vi è vj , à |Γ(vi )∩Γ−1 (vj )| ÷èñëî òàêèõ öåïåé. Ïîñêîëüêó åäèíè÷íûå ýëåìåíòû i - ñòðîêè ìàòðèöû ñìåæíîñòè ñîîòâåòñòâóþò ýëåìåíòàì ìíîæåñòâà Γ(vi ) , à åäèíè÷íûå ýëåìåíòû j - ñòîëáöà ýòîé ìàòðèöû ýëåìåíòàì ìíîæåñòâà Γ−1 (vj ), òî P |Γ(vi )∩Γ−1 (vj )|= nk=1 aik akj . Òî æå ñàìîå ñëåäóåò èç àíàëèçà ñõåì íà ðèñ. 4.2, ãäå ïðåäñòàâëåíû âñå âîçìîæíûå êîìáèíàöèè a á â ã
vi s vi s vi s vi s
vk s aik =0 vsk aik =1 -vsk aik =1 -vsk aik =0
vj s akj =1 -vsj akj =0 vsj akj =1 -vsj
äóãè íåò
akj =0
aik akj =0 äóãà åñòü -
aik akj =1
Ðèñ 4.2
ñóùåñòâîâàíèÿ äóã, îáðàçóþùèõ öåïü äëèíû 2 èç vi â vj ñ ïðîìåæóòî÷íîé âåðøèíîé vk , à òàêæå çíà÷åíèÿ ñîîòâåòñòâóþùèõ ýëåìåíòîâ aik è akj ìàòðèöû ñìåæíîñòè. Åñëè èìåþò ìåñòî ñëó÷àè à, á èëè Pn â, öåïü îòñóòñòâóåò è ñîîòâåòñòâóþùåå ñëàãàåìîå ñóììû k=1 aik akj ðàâíî íóëþ.  ñëó÷àå ã öåïü ñóùåñòâóåò, à ïðîèçâåäåíèå aik akj =1 è, ñëåäîâàòåëüíî, äàåò ñâîé âêëàä â óêàçàííóþ ñóììó. Òàêèì îáðàçîì, çàäà÷à îïðåäåëåíèÿ ÷èñëà öåïåé (ìàðøðóòîâ) äëèíû 2 ìåæäó âñåìè ïàðàìè âåðøèí ãðàôà ìîæåò áûòü ðåøåíà ïðîñòûì âîçâåäåíèåì â êâàäðàò åãî ìàòðèöû ñìåæíîñòè. Àíàëîãè÷íî, êîëè÷åñòâî ìàðøðóòîâ äëèíû 3 ìîæåò áûòü ïîëó÷åíî èç ìàòðèöû A3 è âîîáùå êîëè÷åñòâî ìàðøðóòîâ (l) äëèíû l ìåæäó âåðøèíàìè vi è vj ðàâíî ýëåìåíòó aij ìàòðèöû Al . Íàêîíåö, êîëè÷åñòâî ìàðøðóòîâ äëèíû íå áîëåå p
71
ìåæäó âñåìè ïàðàìè âåðøèí îïðåäåëÿåòñÿ êàê ñóììà p X A+A2 + . . . +Ap = Al . l=1
 êà÷åñòâå ïðèìåðà ïðèâåäåì ðåøåíèå çàäà÷è ïåðåñ÷åòà ìàðøðóòîâ ãðàôà, èçîáðàæåííîãî íà ðèñ. 4.1 ïðè l=1, 2, 3, 4. Èíôîðìàöèþ î ïóòÿõ â îäíó äóãó íåñåò ìàòðèöà ñìåæíîñòè A, îñòàëüíûå òðè ìàòðèöû ïîëó÷àåì ïðîñòûì óìíîæåíèåì: a a 0 b0 A= c 0 d 0 e 1
b 1 0 1 0 0
c 0 0 0 1 1
d 1 1 0 0 0
e 0 1 1 0 0
a a 1 b0 3 c A = 1 d 1 e 1
b 1 3 2 0 0
c 2 0 2 1 2
d 0 1 1 1 2
e 1 2 1 1 2
,
,
a a 0 b1 2 A = c 1 d 0 e 0
b 0 0 0 1 2
c 1 2 1 0 0
d 1 0 1 0 1
e 1 0 1 1 1
a a 1 b 2 4 c A = 1 d 1 e 2
b 3 0 3 2 3
c 1 3 2 2 4
d 2 3 3 1 1
e 3 3 4 1 2
,
.
Íåïîñðåäñòâåííîé ïðîâåðêîé ïî èçîáðàæåíèþ ãðàôà óáåæäàåìñÿ, ÷òî, íàïðèìåð, ìåæäó âåðøèíàìè c è e åñòü 1 ìàðøðóò (ïóòü) äëèíû 2: (c, b, e) ; 1 ìàðøðóò äëèíû 3: (c, e, c, e) ; 4 ìàðøðóòà (öåïè) äëèíû 4: (c, b, e, c, e), (c, b, d, c, e), (c, e, a, b, e), (c, e, c, b, e) ; à ìåæäó e è c åñòü 2 ìàðøðóòà äëèíû 3: (e, c, e, c), (e, a, d, c) (ïóòü); 4 ìàðøðóòà äëèíû 4: (e, c, b, e, c), (e, a, b, d, c) (ïóòü), (e, a, b, e, c) (öåïü), (e, c, b, d, c (öåïü). (l) (l) Ýòî ïîëíîñòüþ ñîîòâåòñòâóåò çíà÷åíèÿì ýëåìåíòîâ ace è aec (âûäåëåíû øðèôòîì è ïîä÷åðêíóòû) ìàòðèö A2 , A3 , A4 . Ê ñîæàëåíèþ, îïðåäåëÿåòñÿ ÷èñëî ìàðøðóòîâ, ñâÿçûâàþùèõ ïàðó âåðøèí, à íå ÷èñëî ïóòåé, êîòîðûå ïðåäñòàâëÿþò íàèáîëüøèé èíòåðåñ. Êîëè÷åñòâî ïóòåé ìîæíî îïðåäåëèòü, åñëè íàéòè âñå ìàðøðóòû è îòáðîñèòü òå èç íèõ, ãäå åñòü ïîâòîðÿþùèå-
72
ñÿ ôðàãìåíòû, ò. å. íåîáõîäèìî ðåøàòü çàäà÷ó ïåðå÷èñëåíèÿ ìàðøðóòîâ. Ïðåæäå ÷åì ïåðåéòè ê ýòîé çàäà÷å, îòìåòèì äâà ôàêòà, êàñàþùèõñÿ çàäà÷è ïåðåñ÷åòà: 1. Îòëè÷íûå îò íóëÿ äèàãîíàëüíûå ýëåìåíòû ìàòðèö óêàçûâàþò íà ïðèñóòñòâèå â ãðàôå ñîîòâåòñòâóþùåãî êîëè÷åñòâà öèêëîâ äëèíû l. Íàïðèìåð, â ìàòðèöå A3 äèàãîíàëüíûé ýëå(3) ìåíò abb =3. Ýòî çíà÷èò, ÷òî â ãðàôå åñòü òðè öèêëà äëèíû 3, âêëþ÷àþùèå âåðøèíó b. Íåïîñðåäñòâåííî ïî ðèñ. 4.1 íàõîäèì: (b, d, c, b) , (b, e, c, b) è (b, e, a, b). 2. Ïîñêîëüêó äëèíà ïóòè â ãðàôå íå ìîæåò ïðåâûøàòü n−1, íå èìååò ñìûñëà âîçâîäèòü A â áîëåå âûñîêóþ ñòåïåíü.
4.3. Ïåðå÷èñëåíèå ìàðøðóòîâ è ïóòåé Ìàòðè÷íûé ïîäõîä, èñïîëüçîâàííûé â ïðåäûäóùèõ ðàçäåëàõ, ëåãêî àäàïòèðóåòñÿ ê çàäà÷å î ïåðå÷èñëåíèè ìàðøðóòîâ. Ïóñòü P(l) ìàòðèöà âñåõ ìàðøðóòîâ c l ïðîìåæóòî÷íûìè âåðøèíàìè (äëèíû l+1 ), ýëåìåíòû êîòîðîé îïðåäåëÿ(l) P þòñÿ êàê pij = qk=1 vk1 vk2 . . . vkl , ãäå vkl ýòî l-ÿ ïî ïîðÿäêó ïðîìåæóòî÷íàÿ âåðøèíà ìàðøðóòà, ñâÿçûâàþùåãî vi è vj , à q êîëè÷åñòâî òàêèõ ìàðøðóòîâ. Åñëè ìàðøðóòîâ äëèíû l+1 (l) ìåæäó vi è vj íåò, òî pij =0. Ñëàãàåìûå vk1 vk2 . . . vkl ïðåäñòàâëÿþò ñîáîé "ïðîèçâåäåíèÿ" âåðøèí, ëåæàùèõ íà íåêîòîðîì ìàðøðóòå ìåæäó vi è vj . Èõ ìîæíî ðàññìàòðèâàòü êàê ðàçìåùåíèÿ áåç ïîâòîðåíèé èëè ñ ïîâòîðåíèÿìè èç n ýëåìåíòîâ ïî l â çàâèñèìîñòè îò òîãî, ÿâëÿåòñÿ ìàðøðóò ïóòåì èëè (3) íåò. Íàïðèìåð, äëÿ ãðàôà íà ðèñ. 4.1 pcd =bea+eab+ecb è, çíà÷èò, èç vi â vj åñòü òðè ìàðøðóòà: (c, b, e, a, d) , (c, e, a, b, d) è (c, e, c, b, d), äâà èç êîòîðûõ ÿâëÿþòñÿ ïóòÿìè, òàê êàê íå ñîäåðæàò ïîâòîðÿþùèõñÿ âåðøèí.  íàëè÷èè óêàçàííûõ ìàðøðóòîâ ëåãêî óáåäèòüñÿ íåïîñðåäñòâåííî ïî ãðàôó, à èõ êîëè(4) ÷åñòâî ðàâíî çíà÷åíèþ ýëåìåíòà acd â ìàòðèöå A4 . Êðîìå P(l) , èñïîëüçóåì âñïîìîãàòåëüíóþ ìàòðèöó P0 , â êîòîðîé ýëåìåíò p0ij ðàâåí vj , åñëè â ãðàôå åñòü äóãà (vi , vj ), è 0, åñëè
73
äóãà îòñóòñòâóåò. Ïîñêîëüêó j - ñòîëáåö ìàòðèöû P(l−1) îòðàæàåò âñå ìàðøðóòû äëèíû l, ñ íà÷àëîì â vk , ãäå k=1, n, è êîíöîì â vj , à i - ñòðîêà ìàòðèöû P0 êîíöû âñåõ äóã Pn 0 (l−1) âèäà (vi , vk ), ãäå k=1, n, òî ñóììà îòðàæàåò k=1 pik pkj âñå ìàðøðóòû èç vi â vj äëèíû l+1. Ñëåäîâàòåëüíî, ìàòðèöà ìàðøðóòîâ P(l) ìîæåò áûòü ïîëó÷åíà êàê P0 ×P(l−1) , ïðè ýòîì ñîìíîæèòåëè â ïðîèçâåäåíèÿõ íå ïåðåóïîðÿäî÷èâàþòñÿ è íå èñïîëüçóåòñÿ ñòåïåííàÿ çàïèñü ïîâòîðÿþùèõñÿ ñîìíîæèòåëåé, ÷òîáû íå ïîòåðÿòü èíôîðìàöèþ î ïîðÿäêå ñëåäîâàíèÿ âåðøèí. Òàêèì îáðàçîì ìîæåò áûòü ñôîðìèðîâàí ðÿä ìàòðèö P(1) , P(2) , P(3) , . . . , P(q−1) , â ñîâîêóïíîñòè îïðåäåëÿþùèõ âñå ìàðøðóòû äëèíû ≤ q äëÿ ëþáîé ïàðû âåðøèí.  êà÷åñòâå ïðèìåðà âûïîëíèì ðàñ÷åòû äëÿ ãðàôà, ïðåäñòàâëåííîãî íà ðèñ. 4.1, èñïîëüçóÿ ñîîòíîøåíèÿ:
P(1) = P0 × P(0) ; P(2) = P0 × P(1) ; P(3) = P0 × P(2) , ãäå â êà÷åñòâå ìàòðèöû P(0) (ïóòè áåç ïðîìåæóòî÷íûõ âåðøèí) ñëåäóåò âçÿòü ìàòðèöó ñìåæíîñòè ãðàôà A. Ìàòðèöà P0 ïîëó÷àåòñÿ, åñëè â ìàòðèöå ñìåæíîñòè åäèíèöû ïåðâîãî ñòîëáöà çàìåíèòü áóêâîé a, åäèíèöû âòîðîãî ñòîëáöà áóêâîé b, òðåòüåãî áóêâîé c è ò. ä.  ðåçóëüòàòå èìååì: a a 0 b0 0 P = c 0 d 0 e a
b b 0 b 0 0
c 0 0 0 c c
d d d 0 0 0
e 0 e e 0 0
,
P(0)
a a 0 b0 =A= c 0 d 0 e 1
b 1 0 1 0 0
c 0 0 0 1 1
d 1 1 0 0 0
Ïîñëå ïåðâîãî óìíîæåíèÿ ïîëó÷àåì ìàòðèöó P(1) :
P(1) = P0 ×P(0)
a b = c d e
a b c 0 0 d e 0 d+e e 0 e 0 c 0 0 a+c 0
74
d b 0 b 0 a
e b 0 b c c
,
e 0 1 1 0 0
.
ïîñëå âòîðîãî óìíîæåíèÿ ìàòðèöó P(2) :
a
b
c
d
e
a be dc bd+be 0 dc b 0 ea dc+ec 0 ea+dc+ec (2) 0 (1) P =P ×P = c be ea+ec bd+be ea ec . d ce 0 ce cb cb e ce 0 ad+ce ab+cb ab+cb
Íàêîíåö, ìàòðèöà P(3) =P0 ×P(2) ïðèíèìàåò âèä:
a
b
c
d
e
dce bea+bdc+bec dce bea+dcb dcb+bdc+bec a b dce+ece 0 ead+dce+ece eab+dcb+ecb eab+dcb+ecb eab+ecb+ c ece bea+bdc+bec ead+ece bea+eab+ecb +bdc+bec . d cea+cec cbd+cbe cea cec cbe abd+cbd+ e abe+cbe cea+adc+cec cea adc+cec +abe+cbe
Êàê âèäíî èç ïðèìåðà, óæå ïðè íåáîëüøèõ çíà÷åíèÿõ l ìàòðèöû ìîãóò áûòü âåñüìà ãðîìîçäêèìè. Îäíàêî, åñëè öåëü ïîèñêà ïóòè, îáúåì âû÷èñëåíèé ìîæíî ñóùåñòâåííî óìåíüøèòü, îòáðàñûâàÿ ïðîèçâåäåíèÿ ñ ïîâòîðÿþùèìèñÿ âåðøèíàìè. Î÷åâèäíî òàêæå, ÷òî â ýòîì ñëó÷àå l≤(n−2), òàê êàê ïóòü â ãðàôå íå ìîæåò ñîäåðæàòü áîëåå ÷åì n−2 ïðîìåæóòî÷íûõ âåðøèí 10 . Êðîìå òîãî, ñ óâåëè÷åíèåì äëèíû êîëè÷åñòâî ïóòåé â îáùåì ñëó÷àå äîëæíî ñîêðàùàòüñÿ.
4.4. Çàäà÷è î êðàò÷àéøèõ ïóòÿõ Áîëüøèíñòâî çàäà÷ ýòîãî âèäà ìîæíî ðàññìàòðèâàòü êàê ðàñøèðåíèå, îáîáùåíèå èëè ìîäèôèêàöèþ ñëåäóþùåé çàäà÷è.  ãðàôå G ñ ìàòðèöåé âåñîâ C=[ci,j ] òðåáóåòñÿ íàéòè ïóòü ìåæäó çàäàííîé ïàðîé âåðøèí s è t, ó êîòîðîãî ñóììà 10 Â
ñëó÷àå çàìêíóòîãî ïóòè (êîíòóðà) l=n−1 .
75
âåñîâ ñîñòàâëÿþùèõ åãî äóã (ðåáåð) ìèíèìàëüíà. Çäåñü s è t ÿâëþòñÿ ñîîòâåòñòâåííî íà÷àëüíîé è êîíå÷íîé âåðøèíàìè. Òàêîå ðàçëè÷èå â îáîçíà÷åíèÿõ êîíöåâûõ âåðøèí ïóòè íåîáõîäèìî äëÿ îðãðàôîâ, òàê êàê â ýòîì ñëó÷àå, â îòëè÷èå îò ïðîñòûõ ãðàôîâ, êðàò÷àéøèå (s, t)- è (t, s)-ïóòè ðàçëè÷íû. Ïîíÿòíî, ÷òî ëþáîé ó÷àñòîê êðàò÷àéøåãî ïóòè ñàì ÿâëÿåòñÿ êðàò÷àéøèì ïóòåì ìåæäó ïàðîé åãî êîíöåâûõ âåðøèí. Çíà÷èò, åñëè íàéäåí êðàò÷àéøèé (s, t) -ïóòü, ïðîìåæóòî÷íûå âåðøèíû êîòîðîãî îáðàçóþò ìíîæåñòâî V 0 , òî ôàêòè÷åñêè ðåøåíà çàäà÷à îòûñêàíèÿ êðàò÷àéøèõ ïóòåé èç s âî âñå âåðøèíû V 0 . Ïîýòîìó ïðåäñòàâëÿåòñÿ åñòåñòâåííûì ñëåäóþùåå îáîáùåíèå ñôîðìóëèðîâàííîé âûøå çàäà÷è. Íàéòè êðàò÷àéøèå ïóòè ìåæäó çàäàííîé íà÷àëüíîé âåðøèíîé s è âñåìè îñòàëüíûìè âåðøèíàìè ãðàôà. Íàêîíåö, â ñàìîé øèðîêîé ïîñòàíîâêå çàäà÷à âûãëÿäèò òàê: íàéòè êðàò÷àéøèå ïóòè ìåæäó âñåìè âåðøèíàìè ãðàôà. Íåòðóäíî âèäåòü, ÷òî îïðåäåëÿþùèì â ïðèâåäåííûõ ôîðìóëèðîâêàõ ÿâëÿåòñÿ êîëè÷åñòâî ïàð êîíöåâûõ âåðøèí, äëÿ êîòîðûõ ñëåäóåò íàéòè êðàò÷àéøèé ïóòü: â ïåðâîé çàäà÷å ýòî îäíà ïàðà, âî âòîðîé n−1 ïàð, à â òðåòüåé Cn2 ïàð (äëÿ ïðîñòîãî ãðàôà) èëè 2Cn2 (äëÿ îðèåíòèðîâàííîãî). Åùå îäíà ðàçíîâèäíîñòü çàäà÷è âîçíèêàåò, êîãäà äëÿ íåêîòîðîé ïàðû âåðøèí êðîìå êðàò÷àéøåãî òðåáóåòñÿ íàéòè åùå k−1 ïóòåé, äëèíû êîòîðûõ ñîñòàâëÿþò íåóáûâàþùóþ ÷èñëîâóþ ïîñëåäîâàòåëüíîñòü Lêð1 ≤Lêð2 ≤ . . . ≤Lêðk . Ýòà çàäà÷à èçâåñòíà êàê çàäà÷à ïîèñêà k êðàò÷àéøèõ ïóòåé ìåæäó äâóìÿ çàäàííûìè âåðøèíàìè.  îáùåì ñëó÷àå ýëåìåíòû ìàòðèöû C ìîãóò áûòü ðàçíûõ çíàêîâ. Íàëè÷èå îòðèöàòåëüíûõ çíà÷åíèé ñðåäè ýëåìåíòîâ ci,j óñëîæíÿåò ðåøåíèå çàäà÷è ïîèñêà êðàò÷àéøèõ ïóòåé. Çàäà÷à ñòàíîâèòñÿ åùå áîëåå ñëîæíîé, åñëè â ãðàôå ïðèñóòñòâóþò öèêëû ñ îòðèöàòåëüíûì ñóììàðíûì âåñîì. Íàîáîðîò, åñëè âûïîëíÿåòñÿ òàê íàçûâàåìîå "ïðàâèëî òðåóãîëüíèêà": ci,j ≤ci,k +ck,j , òî çàäà÷à ñòàíîâèòñÿ ñóùåñòâåííî ïðîùå è ôàêòè÷åñêè ìîæåò ðàññìàòðèâàòüñÿ êàê çàäà÷à ïîèñêà êðàò÷àéøåãî ïóòè â ãðàôå ñ ðåáðàìè (äóãàìè) åäèíè÷íîé äëèíû.
76
4.4.1. Ãðàôû ñ äóãàìè åäèíè÷íîé äëèíû Ðàññìîòðèì ñëó÷àé, êîãäà âåñà âñåõ äóã (ðåáåð) ãðàôà îäèíàêîâû. Íå íàðóøàÿ îáùíîñòè, ìîæíî ñ÷èòàòü, ÷òî äëÿ ëþáîé äóãè (ðåáðà) ci,j =1. Ýôôåêòèâíîå ðåøåíèå çàäà÷è ïîëó÷àåòñÿ ñ ïîìîùüþ ïðîñòîé ïðîöåäóðû, â ðåçóëüòàòå êîòîðîé êàæäàÿ îáðàáîòàííàÿ âåðøèíà ïîëó÷àåò ïîìåòêó, ðàâíóþ ðàññòîÿíèþ îò s. Ïðîöåññ íà÷èíàåòñÿ ñ òîãî, ÷òî âñå v∈Γ(s) ïîëó÷àþò ïîìåòêó, ðàâíóþ åäèíèöå. Íà âòîðîé èòåðàöèè âñå v∈Γ2 (s) ïîìå÷àþòñÿ äâîéêîé, çàòåì âñå v∈Γ3 (s) ïîìå÷àþòñÿ òðîéêîé, è âîîáùå íà i èòåðàöèè äëÿ âñåõ v∈Γi (s) èìååì l(v)=i. Ïðîöåññ çàâåðøàåòñÿ, êîãäà ïîìå÷åííîé îêàçûâàåòñÿ âåðøèíà t. Îïèñàííàÿ ïðîöåäóðà ðàññòàíîâêè ïîìåòîê íàçûâàåòñÿ ïîèñêîì â øèðèíó. Ðàññìîòðèì ðåàëèçàöèþ òàêîãî âèäà ïîèñêà íà ïðèìåðå. Ïóñòü òðåáóåòñÿ íàéòè êðàò÷àéøèé ïóòü ìåæäó âåðøèíàìè v5 è v7 â ãðàôå, ïðåäñòàâëåííîì íà ðèñ. 4.3,à. (1) v1 s @
(0) (3) v5 v8 sg s
@ (2) s @ v2 6 (3)@ v6 @ (4) s s @s(2) v3 v9 6 A A A s(5) A v10 A s sg -As v4 v7 v11 (5) (6) (4)
à
v1 v2 v3 v4 v5 1 1 1 1 1 1 1 1 1 1 1 1 1
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 l(vi ) 1
2
Ðèñ. 4.3
4
5
v6 v7 v8 v9 v10 v11 1 1 1 1 1 1 1
1 1
1 1
1 1
1 3
0
6
3
2
1 1 5
4
á
Äëÿ ðàñ÷åòîâ èñïîëüçóåì ìàòðèöó ñìåæíîñòè ãðàôà, äîïîëíèâ åå ñòðîêîé l(vi ) äëÿ ïîìåòîê âåðøèí, êàê ïîêàçàíî íà ðèñ. 4.3,á. Ñðàçó ïîìåòèì âåðøèíó v5 íóëåâûì çíà÷åíèåì. Íà ïåðâîé èòåðàöèè, ïðîñìàòðèâàÿ ïÿòóþ ñòðîêó ìàòðèöû, íàõîäèì åäèíèöó â ïåðâîì ñòîëáöå. Ñëåäîâàòåëüíî, ïîìåòêà ïåðâîé âåðøèíû l(v1 )=1. Íà âòîðîé èòåðàöèè ïðîñìàò77
ðèâàåì ïåðâóþ ñòðîêó ìàòðèöû. Çäåñü åäèíèöû ñîäåðæàòñÿ âî âòîðîì, ïÿòîì è äåâÿòîì ñòîëáöàõ. Ïÿòàÿ âåðøèíà óæå ïîìå÷åíà, ïîýòîìó ïîìå÷àåì òîëüêî v2 è v9 , çàïèñûâàÿ âî âñïîìîãàòåëüíîé ñòðîêå äâîéêè â ñîîòâåòñòâóþùèõ ñòîëáöàõ. Íà òðåòüåé èòåðàöèè àíàëèçèðóåì âòîðóþ è äåâÿòóþ ñòðîêè ìàòðèöû.  ðåçóëüòàòå ïîìåòêó 3 ïîëó÷àþò v8 è v6 . Ïðîäîëæàÿ ïðîöåññ, â èòîãå ïîëó÷àåì ñîâîêóïíîñòü ïîìåòîê, êàê íà ðèñ. 4.3,á. Ïîñêîëüêó v7 èìååò ïîìåòêó 6, äëèíà èñêîìîãî êðàò÷àéøåãî ïóòè ðàâíà 6. Îñòàåòñÿ íàéòè ñàì ïóòü, ò. å. ìíîæåñòâî ñîñòàâëÿþùèõ åãî äóã (ðåáåð), èëè ÷òî òîæå ñàìîå, ïîñëåäîâàòåëüíîñòü ïðîõîäèìûõ âåðøèí. Ïîèñê íà÷èíàåì ñ v7 . Áóäåì ïåðåõîäèòü îò âåðøèíû ê âåðøèíå, òàê ÷òîáû ïîìåòêà êàæäûé ðàç óìåíüøàëàñü íà åäèíèöó, ïîêà íå äîñòèãíåì âåðøèíû v5 , ïðè÷åì îáðàáîòêó âûïîëíÿåì ïî ñòîëáöû ìàòðèöû.  ñåäüìîì ñòîëáöå èìååòñÿ òîëüêî îäíà åäèíèöà â ÷åòâåðòîé ñòðîêå. Çíà÷èò, ïðåäïîñëåäíåé âåðøèíîé ïóòè ÿâëÿåòñÿ v4 ñ ïîìåòêîé 5.  ÷åòâåðòîì ñòîëáöå åäèíèöû íàõîäÿòñÿ â òðåòüåé, ñåäüìîé è äåñÿòîé ñòðîêàõ. Ñîîòâåòñòâóþùèå âåðøèíû èìåþò ïîìåòêè l(v3 )=4, l(v7 )=6, l(v10 )=5. Èç íèõ ïîäõîäÿùåé ÿâëÿåòñÿ òîëüêî v3 . Ýòî è åñòü òðåòüÿ îò êîíöà âåðøèíà ïóòè. Ñîäåðæèìîå òðåòüåãî ñòîëáöà óêàçûâàåò íà âåðøèíû v4 è v6 . Ïî çíà÷åíèþ ïîìåòêè ( l(v4 )=5, l(v6 )=3 ) ïîäõîäèò òîëüêî v6 . Äåéñòâóÿ àíàëîãè÷íûì îáðàçîì, íàõîäèì åùå äâå ïðîìåæóòî÷íûå âåðøèíû ïóòè v9 è v1 . Îêîí÷àòåëüíî ïîëó÷àåì, ÷òî êðàò÷àéøèé ïóòü èç v5 â v7 ïðîõîäèò ÷åðåç âåðøèíû v1 , v9 , v6 , v3 , v4 . Àëãîðèòì Ëè.  êà÷åñòâå ïðèìåðà ïðèìåíåíèÿ ïîèñêà â øèðèíó ðàññìîòðèì çàäà÷ó òðàññèðîâêè ïå÷àòíûõ ïëàò, ÿâëÿþùèõñÿ ñîñòàâíîé ÷àñòüþ ëþáîé ñîâðåìåííîé ýëåêòðîííîé àïïàðàòóðû. Ïå÷àòíàÿ ïëàòà ýòî òîíêàÿ (1,52ìì) æåñòêàÿ ïëàñòèíà èç ýëåêòðîèçîëÿöèîííîãî ìàòåðèàëà, íà êîòîðîé óñòàíàâëèâàþòñÿ èíòåãðàëüíûå ñõåìû, òðàíçèñòîðû, äèîäû, êîíäåíñàòîðû è ò. ï. Ýëåêòðè÷åñêîå ñîåäèíåíèå âñåõ ýòèõ ýëåìåíòîâ îñóùåñòâëÿåòñÿ ñ ïîìîùüþ ïðîâîäíèêîâ, ïðåäñòàâëÿþùèõ ñîáîé òîí÷àéøèå óçêèå ìåòàëëè÷åñêèå ïîëîñêè, íàíåñåííûå ïî îïðåäåëåííîé òåõíîëîãèè íà ïîâåðõíîñòü ïëàòû. Ñðåäè ïðî÷èõ îïòèìèçàöèîííûõ çàäà÷ ïðè ïðîåêòèðîâàíèè ïå÷àòíûõ ïëàò âàæíîå ìåñòî çàíèìàåò çàäà÷à îòûñêàíèÿ 78
âàðèàíòà ðàçìåùåíèÿ ïðîâîäíèêîâ, îòâå÷àþùåãî ðÿäó òðåáîâàíèé (îòñóòñòâèå ïåðåñå÷åíåèé, îãðàíè÷åíèå ìàêñèìàëüíîé äëèíû ïðîâîäíèêîâ, ìèíèìàëüíîñòü èõ ñóììàðíîé äëèíû è ò. ï.), èçâåñòíàÿ êàê çàäà÷à òðàññèðîâêè. Ìíîãèå ïðàêòè÷åñêèå àëãîðèòìû ðåøåíèÿ ýòîé çàäà÷è â ñâîåé îñíîâå èìåþò êëàññè÷åñêèé àëãîðèòì Ëè, íàçâàííûé òàê ïî èìåíè àâòîðà è ïîçâîëÿþùèé íàéòè êðàò÷àéøèé ïóòü ìåæäó äâóìÿ ÿ÷åéêàìè ïðÿìîóãîëüíîé êîîðäèíàòíîé ñåòêè. Ïóñòü ôðàãìåíò íåêîòîðîé ïå÷àòíîé ïëàòû ïðåäñòàâëåí ñåòêîé, èçîáðàæåííîé íà ðèñ. 4.4. Îòäåëüíûå ÿ÷åéêè (íà ðèñóíêå çàøòðèõîâàíû) çàíÿòû óæå ïðîòðàññèðîâàííûìè ïðîâîäíèêàìè è ïîýòîìó íå ìîãóò èñïîëüçîâàòüñÿ. Íåîáõîäèìî 2
1 s 1 °
1
a
2
3
s 1 °
4
2
1
5
3
2
4
3
5
t °
1
4
4
5
5
5
t °
á Ðèñ. 4.4
ñîåäèíèòü ÿ÷åéêè s è t êðàò÷àéøåé ëîìàíîé ëèíèåé, çàäàþùåé òðàññó áóäóùåãî ïðîâîäíèêà è ñîñòîÿùåé èç ãîðèçîíòàëüíûõ è âåðòèêàëüíûõ îòðåçêîâ, ïðîõîäÿùèõ ïî ñâîáîäíûì ÿ÷åéêàì ñåòêè. Âíà÷àëå âñå ñâîáîäíûå ÿ÷åéêè ïóñòû. Ïðîöåññ íà÷èíàåòñÿ ñ òîãî, ÷òî â ñâîáîäíûå ÿ÷åéêè, ñìåæíûå ñ s, çàïèñûâàþòñÿ åäèíèöû, êàê ïîêàçàíî íà ðèñ. 4.4,à. Äàëåå â ïóñòûå ÿ÷åéêè, ïðèìûêàþùèå ê ÿ÷åéêàì ñ åäèíèöàìè, ïèøóòñÿ äâîéêè. Íà òðåòüåé èòåðàöèè îöèôðîâàííàÿ îáëàñòü ñåòêè îáðàìëÿåòñÿ òðîéêàìè, çàòåì ÷åòâåðêàìè è ò. ä. Ïîñëå ïÿòîé èòåðàöèè ïîëó÷àåì ðàçìåòêó êàê íà ðèñ. 4.4,á. Ñìåíà ðàçìåòêè îò èòåðàöèè ê èòåðàöèè íàïîìèíàåò ðàñïðîñòðàíåíèå âîëíû, ñ òîé ëèøü ðàçíèöåé, ÷òî âûñîòà âîëíîâîãî ôðîíòà ïî
79
ìåðå óäàëåíèÿ îò íà÷àëüíîé òî÷êè s íå óáûâàåò, à ðàñòåò11 . Ïðîöåññ çàâåðøàåòñÿ, êîãäà ôðîíò äîñòèãàåò ÿ÷åéêè t. Ñîîòâåòñòâóþùàÿ ðàçìåòêà ïðèâåäåíà íà ðèñ. 4.5,a. Êîíôèãóðàöèÿ 1
2
1
2
3
4
s 1 °
4
2
1
5
6
3
2
6
7
4
3
5 8
6
7 8
8
s 2 1 °
4
5
6
7
4
¾6 56
16
10 9
3 2
9 10
4 3
10 11
5 4
¾4 ¾5 36
t °
6 5
5
5
5
6
7
7
8
7 6
8
9 10 11
8 7
9
3
8
1 2 1 ¾2 ¾3 4 5 6 7 ? 6
4
6 7
5
2
a
10 9
¾76 ¾8 ¾9 10 66
26
8
8
?
9
10611 11 6
6
7
7
8
8
9 10 11
t °
á Ðèñ. 4.5
ñàìîé òðàññû äëÿ ïðîâîäíèêà âûÿâëÿåòñÿ ïðè äâèæåíèè ïî ÿ÷åéêàì ñåòêè, åñëè, íà÷èíàÿ ñ ÿ÷åéêè t, ïåðåõîäèòü ê ñîñåäíåé ñ ìåíüøèì çíà÷åíèåì ïîìåòêè, ïîêà íå áóäåò äîñòèãíóòà ÿ÷åéêà s. Ýòà îïåðàöèÿ îòîáðàæåíà íà ðèñ. 4.5,á, èç êîòîðîãî ïîëó÷àåì ñëåäóþùèå âàðèàíòû êðàò÷àéøèõ ïóòåé èç s â t : (3, 5) t; (4;5)(4;6)(4;7)(5;7)° (4; 4) s (3;2)(4;2)(5;2)(5;3)(5;4)(4;4)(4;5)(4;6)(4;7)(5;7)° t, ° s (1;2)(1;3)(1;4)(2;4)(3;4) °
ãäå â êðóãëûõ ñêîáêàõ óêàçàíû êîîðäèíàòû ÿ÷ååê â ñîîòâåòñòâèè ñ íóìåðàöèåé ñòðîê è ñòîëáöîâ ñåòêè íà ðèñ. 4.5,á. Ïðàêòè÷åñêè âàðèàíò, èñïîëüçóþùèé êëåòêó (3;5), íå öåëåñîîáðàçåí, òàê êàê ñîäåðæèò áîëüøå óãëîâ è, çíà÷èò, ìåíåå íàäåæåí. r r r r r r r r  êà÷åñòâå äîïîëíèòåëüíîé èëëþñòðàrs r r r e öèè ê ðàññìîòðåííîìó ïðèìåðó íà ðèñ. 4.6 r r r r r r r r r r r r r èçîáðàæåí ãðàô, ñîîòâåòñòâóþùèé ïå÷àòr r r r r r íîé ïëàòå: êàæäàÿ ñâîáîäíàÿ êëåòêà ïðåär r r r r r t e ñòàâëåíà âåðøèíîé, à ôàêò ñîñåäñòâà êëår r r r r r r r r r r r òîê (ïî ãîðèçîíòàëè è âåðòèêàëè) îòîáðàæåí ðåáðîì. Ðèñ. 4.6 11 Ïîýòîìó
àëãîðèòì íàçûâàþò òàêæå âîëíîâûì.
80
Ïóñòü F r1 ìíîæåñòâî êëåòîê (âåðøèí ãðàôà), îáðàçóþùèõ ôðîíò âîëíû íà òåêóùåé èòåðàöèè; F r2 ôðîíò âîëíû íà ñëåäóþùåé èòåðàöèè. Òîãäà ôîðìàëèçîâàííîå îïèñàíèå àëãîðèòìà èìååò âèä:
begin {ÂÎËÍÎÂÎÉ ÀËÃÎÐÈÒÌ} for v∈V do l(v):=∞ ; {Ïîìåòèòü âñå âåðøèíû êàê ñâîáîäíûå}
l(s) := 0 ; F r1 := adj s ; {Ñôîðìèðîâàòü íà÷àëüíûé ôðîíò è} for v∈F r1 do l(v) := 1 ; {ïîìåòèòü åãî âåðøèíû åäèíèöàìè.} while l(t)=∞ do {Ïîêà ôðîíò âîëíû íå äîñòèã âåðøèíû t } F r2 := ∅; for {äëÿ êàæäîé âåðøèíû òåêóùåãî ôðîíòà} v∈F r1 do for w∈ adj v do {ïðîâåðèòü âñå ñîñåäíèå âåðøèíû} {è åñëè íàéäåòñÿ ñâîáîäíàÿ} if l(w)=∞ then ½ l(w) := l(v)+1; {âêëþ÷èòü åå âî âíîâü} F r2 := F r2 +{w}; {ôîðìèðóåìûé ôðîíò.} F r1 := F r2 end. {ÂÎËÍÎÂÎÉ ÀËÃÎÐÈÒÌ}
4.4.2. Ãðàôû ñî âçâåøåííûìè äóãàìè (ðåáðàìè) Êðàò÷àéøèå ïóòè è â ýòîì ñëó÷àå ìîæíî íàõîäèòü ñ ïîìîùüþ âîëíîâîãî àëãîðèòìà. Ïóñòü r íàèáîëüøèé îáùèé äåëèòåëü âåñîâ ðåáåð (äóã) ãðàôà G. Ïðåîáðàçóåì ãðàô, çàìåíèâ êàæäîå èç ðåáåð {vi , vj } ïðîñòîé öåïüþ, ñîñòîÿùåé èç ci,j /r ðåáåð åäèíè÷íîé äëèíû. ßñíî, ÷òî â ïîëó÷åííîì ïðè ýòîì ãðàôå G0 ïîëíîñòüþ ñîõðàíÿòñÿ ìåòðè÷åñêèå ñîîòíîøåíèÿ, õàðàêòåðèçóþùèå ðàññòîÿíèÿ ìåæäó âåðøèíàìè ãðàôà G. Âìåñòå ñ òåì G0 ýòî ãðàô ñ ðåáðàìè (äóãàìè) åäèíè÷íîé äëèíû, äëÿ êîòîðîãî çàäà÷à ðåøàåòñÿ ïî îïèñàííîé âûøå ñõåìå. Î÷åâèäíûé íåäîñòàòîê òàêîãî ïîäõîäà âûñîêàÿ òðóäîåìêîñòü èç-çà áîëüøîé ðàçìåðíîñòè ãðàôà G0 . Äåéñòâèòåëüíî ÷èñëî âåðøèí (è ðåáåð) âPïîñëåäíåì áîëüøå, ÷åì â ãðàôå G íà âåëè÷èíó, ðàâíóþ 1r ci,j −m. Ïîýòîìó èñïîëü{vi ,vj }∈E
çóþò áîëåå ýôôåêòèâíûå àëãîðèòìû ðåøåíèÿ çàäà÷è. Äâà èç íèõ àëãîðèòìû Äåéêñòðû è Ôëîéäà ðàññìîòðåíû íèæå. 81
Àëãîðèòì Äåéêñòðû. Ýòîò àëãîðèòì ïîçâîëÿåò íàéòè
êðàò÷àéøèé ïóòü ìåæäó íåêîòîðîé âåðøèíîé s è îñòàëüíûìè âåðøèíàìè ïðè óñëîâèè, ÷òî â ãðàôå íåò äóã (ðåáåð) ñ îòðèöàòåëüíûì âåñîì. Ðàññìîòðèì îñíîâíóþ èäåþ àëãîðèòìà íà ïðèìåðå ãðàôà G ìàòðèöåé âåñîâ12 C , ïðåäñòàâëåííûõ íà ðèñ. 4.7, âçÿâ â êà÷åñòâå s âåðøèíó v5 . v1 s @ @
G
v2 v s - s3 @ I 6 @ @ @ @ Rs R @? s sv6 v4 ? A vAK5 A A A A R? s -AU s -As - ? s v7 v8 v9 v10
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 3 19 11 v1 v2 10 7 19 22 v3 13 v4 5 3 v5 5 14 20 29 23 C= v 2 8 6 v7 4 v8 8 v9 7 6 v10 9 Ðèñ. 4.7
Âûäåëèì âñå âåðøèíû vi ∈Γ(v5 ) è ïðèïèøåì èì ÷èñëîâûå ìåòêè l(vi ), ðàâíûå âåñàì äóã (v5 , vi ), êàê ïîêàçàíî íà ðèñ. 4.8 (âåñà ïðîñòàâëåíû îêîëî äóã, à ìåòêè îêîëî âåðøèí è çàêëþ÷åíû â êðóãëûå ñêîáêè). Î÷åmin=(5) (14) âèäíî, ÷òî êðàò÷àéøèé ïóòü äî v2 v3 s s v2 ñîñòîèò èç åäèíñòâåííîé äó6 ãè (v5 , v2 ), à åãî äëèíà l(v2 )=5. 5 14 Çàôèêñèðóåì ýòó âåðøèíó è áó(20) (29) äåì ñ÷èòàòü åå ìåòêó ïîñòîÿís 29 - sv6 v4 s 20 íîé. Òàêèì îáðàçîì, äëÿ v2 çàäàv5 ∗ ÷à ðåøåíà. Îòíîñèòåëüíî îñòàëü23 0 íûõ ÷åòûðåõ âåðøèí ìîæíî ëèøü óòâåðæäàòü, ÷òî äëèíû êðàò÷àés øèõ ïóòåé äî íèõ íå ïðåâîñ(23) v8 õîäÿò çíà÷åíèé l(vi ). Ïîýòîìó Ðèñ. 4.8 ñîîòâåòñòâóþùèå ìåòêè ïîêà ñ÷èòàåì âðåìåííûìè.  äàëüíåéøåì, ÷òîáû ðàçëè÷àòü ïîñòîÿííûå è âðåìåííûå ìåòêè, ïîñòîÿííûå áóäåì çàêëþ÷àòü â ðàìêó. 12 Ïóñòûå
êëåòêè â ìàòðèöå îçíà÷àþò, ÷òî ñîîòâåòñòâóþùèõ äóã â ãðàôå íåò. Ìîæíî ñ÷èòàòü òàêæå, ÷òî äóãè åñòü è êàæäàÿ èìååò âåñ ∞ .
82
Âûäåëèì âñå âåðøèíû vi ∈Γ(v2 )={v1 , v3 , v4 , v6 } è ðàññìîòðèì äóãè (v2 , vi ) (èçîáðàæåíû íà ðèñ. 4.9 òîíêèìè ëèíèÿìè). Ïîñêîëüêó l(v2 )+c(v2 , v3 )
83
÷èò, ÷òî âûÿâëåí êðàò÷àéøèé ïóòü (v5 , v2 , v1 ), à ìåòêà âåðøèíû v1 ñòàíîâèòñÿ ïîñòîÿííîé. Ïîñëåäóþùèå äåéñòâèÿ âûïîëíÿþòñÿ àíàëîãè÷íî. Äëÿ v1 , êàê ïîñëåäíåé ïîñòîÿííî ïîìå÷åííîé, íàõîäèì ìíîæåñòâî âåðøèí Γ(v1 )={v4 , v5 , v7 } è àíàëèçèðóåì èõ ìåòêè, ïðèíèìàÿ âî ∗ âíèìàíèå äëèíû äóã, ñâÿçûâà15 5 12 v1 v2 v3 þùèõ v1 ñ ýòèìè âåðøèíàìè. s s -s Òàê êàê l(v1 )+c(v1 , v4 )
84
 òàáë. 4.2 ñîäåðæàòñÿ ðåçóëüòàòû ðàñ÷åòîâ äëÿ ðàçîáðàííîãî âûøå ïðèìåðà. Ïîêàæåì, êàê îíà çàïîëíÿåòñÿ. Èòå ðà öèè 1 2 3 4 5 6 7 8 9 10 pred
Òàáëèöà 4.2 v1
v2
v3
v4
v5
v6
v7
v8
v9
v10
p
l(p)
∞ ∞ 15 15
∞ 5
∞ 14 12
∞ 20 20 20 18
0
∞ 29 27 25 25 25 25 25
∞ ∞ ∞ ∞ 25 23 23
∞ 23 23 23 23 21
∞ ∞ ∞ ∞ ∞ ∞ 29 29 27
v5
v2
v1
v5
v3
v4
v4
v6
v5 v2 v3 v1 v4 v8 v7 v6 v9 v10
0 5 12 15 18 21 23 25 27 33
v2
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 33 33 v6
Íà ïåðâîé èòåðàöèè ïîëàãàåì âðåìåííûå ìåòêè äëÿ âñåõ âåðøèí, êðîìå íà÷àëüíîé, ðàâíûìè ∞, à äëÿ íà÷àëüíîé 0. Ïîñëåäíåé ïîñòîÿííî ïîìå÷åííîé ñ÷èòàåì âåðøèíó v5 , à åå ìåòêó ðàâíîé 0. Íà âòîðîé èòåðàöèè, èñïîëüçóÿ ìàòðèöó C, íàõîäèì âñå âåðøèíû ìíîæåñòâà Γ(v5 ) è ïåðåñ÷èòûâàåì èõ âðåìåííûå ìåòêè ïî ôîðìóëå l(vi )= min{l(vi ), l(p)+c(p, vi )}. Ñðåäè âðåìåííûõ ìåòîê èùåì ìèíèìàëüíóþ. Ýòî ìåòêà âåðøèíû v2 , òåïåðü åå ñ÷èòàåì ïîñòîÿííî ïîìå÷åííîé. Íà òðåòüåé èòåðàöèè íàõîäèì âåðøèíû ìíîæåñòâà Γ(v2 ) è ïåðåñ÷èòûâàåì èõ âðåìåííûå ìåòêè. Ñðåäè âñåõ âðåìåííûõ âíîâü èùåì ìèíèìàëüíóþ ìåòêó. Íà ýòîé èòåðàöèè ïîñòîÿííî ïîìå÷åííîé ñòàíîâèòñÿ âåðøèíà v3 , è ò. ä. Ïðîöåññ çàêàí÷èâàåòñÿ íà äåñÿòîé èòåðàöèè, êîãäà ïîñòîÿííóþ ìåòêó ïîëó÷àåò v10 . Ðåçóëüòàòû äëèíû êðàò÷àéøèõ ïóòåé ñîäåðæàòñÿ â äâóõ ïîñëåäíèõ ñòîëáöàõ òàáëèöû. ×òîáû íàõîäèòü ñàìè ïóòè, ñôîðìèðóåì åùå îäíó ñòðî÷êó òàáëèöû pred, â êîòîðîé äëÿ êàæäîé âåðøèíû ãðàôà óêàçàíà åå ïðåäøåñòâåííèöà íà êðàò÷àéøåì ïóòè. Ñ ýòîé öåëüþ â êàæäîì ñòîëáöå îòûñêèâàåì ñàìóþ íèæíþþ ñòðîêó ñ ïðåäïîñëåäíèì çíà÷åíèåì ìåòêè. Íàïðèìåð, â ïåðâîì ñòîëá85
öå ýòî âòîðàÿ ñòðîêà, â âîñüìîì ïÿòàÿ. Èñêîìàÿ âåðøèíàïðåäøåñòâåííèöà ñîäåðæèòñÿ â ñòîëáöå p íàéäåííîé ñòðîêè. Äëÿ v1 ýòî âåðøèíà v2 , à äëÿ v8 âåðøèíà v4 . Òåïåðü äëÿ îïðåäåëåíèÿ ñàìîãî ïóòè äîñòàòî÷íî çàïèñàòü öåïî÷êó âåðøèí-ïðåäøåñòâåííèö, íà÷èíàÿ ñ êîíå÷íîé âåðøèíû. Òàê, äëÿ v10 èìååì: pred(v10 )=v6 , pred(v6 )=v3 , pred(v3 )=v2 è pred(v2 )=v5 . Ýòî çíà÷èò, ÷òî êðàò÷àéøèé ïóòü ìåæäó v5 è v10 èìååò âèä (v5 , v2 , v3 , v6 , v10 ). Ôîðìàëèçîâàííàÿ çàïèñü àëãîðèòìà Äåéêñòðû, â êîòîðîé èñïîëüçîâàíû îáîçíà÷åíèÿ: p ïîñëåäíÿÿ ïîñòîÿííî ïîìå÷åííàÿ âåðøèíà; l ìàññèâ ÷èñëîâûõ ìåòîê âåðøèí (äëèí ïóòåé); pred ìàññèâ ïðåäøåñòâóþùèõ âåðøèí 13 ; post ìàññèâ ïðèçíàêà ïîñòîÿíîé ìåòêè âåðøèíû; v ∗ âåðøèíà ñ ìèíèìàëüíîé âðåìåííîé ìåòêîé; ìîæåò áûòü ïðåäñòàâëåíà â ñëåäóþùåì âèäå:
begin
{ÀËÃÎÐÈÒÌ ÄÅÉÊÑÒÐÛ} p := s { s ïîñëåäíÿÿ ïîñòîÿííî ïîìå÷åííàÿ âåðøèíà } for(v∈V do { Èíèöèàëèçèðîâàòü : } l(v) := ∞ { ìàññèâ ÷èñëîâûõ ìåòîê âåðøèí, } pred(v) := v { ìàññèâ ïðåäøåñòâóþùèõ âåðøèí, } post(v) := 0 { ìàññèâ ïðèçíàêà ïîñòîÿííîé ìåòêè. } l(p) := 0 post(p) := 1 whle p6=t do { Ïîêà t íå ñòàíåò ïîñòîÿííî ïîìå÷åííîé, } for v∈Γ(p) do { äëÿ âñåõ âåðøèí ìíîæåñòâà Γ(p), } if l(p)+cpv < l(v) {ìåòêè êîòîðûõ > l(p)+cpv , } then { âûïîëíèòü êîððåêöèþ } ½ l(v) := l(p)+cpv { ñàìîé ìåòêè } pred(v) := p { è ïðåäøåñòâóþùåé âåðøèíû } Íàéòè v ∗ { Íàéòè ìèíèìàëüíóþ âðåìåííóþ ìåòêó } ∗ { è äàëåå ñ÷èòàòü ñîîòâåòñòâóþùóþ } p := v post(p) := 1 { âåðøèíó ïîñòîÿííî ïîìå÷åííîé } output (l,pred ) { Âûâîä ìàññèâîâ l è pred } end. {ÀËÃÎÐÈÒÌ ÄÅÉÊÑÒÐÛ} 13 Ôîðìèðóåòñÿ
ïàðàëëåëüíî ñ ìàññèâîì d. Çíà÷åíèå pred(vi ) êîððåêòèðóåòñÿ ïðè êàæäîì èçìåíåíèè l(vi ), ïðèíèìàÿ çíà÷åíèå, ðàâíîå p .
86
Àëãîðèòì Ôëîéäà. Ýòîò àëãîðèòì îáåñïå÷èâàåò ðåøå-
íèå çàäà÷è îòûñêàíèÿ êðàò÷àéøèõ ïóòåé äëÿ âñåõ Cn2 íåóïîðÿäî÷åíûõ ïàð âåðøèí ïðîñòîãî ãðàôà è âñåõ 2Cn2 óïîðÿäî÷åíûõ ïàð âåðøèí îðãðàôà äàæå ïðè íàëè÷èè äóã (ðåáåð) ñ îòðèöàòåëüíûì âåñîì. Åäèíñòâåííûì óñëîâèåì ÿâëÿåòñÿ îòñóòñòâèå â ãðàôå êîíòóðîâ (öèêëîâ) ñ ñóììàðíûì îòðèöàòåëüíûì âåñîì. Áîëåå òîãî, àëãîðèòì ïîçâîëÿåò âûÿâèòü ýòè êîíòóðû. Ïðîíóìåðóåì âåðøèíû ãðàôà ÷èñëàìè 1, 2,...,n è îáîçíà(m) ÷èì ÷åðåç dij äëèíó êðàò÷àéøåãî ïóòè èç âåðøèíû i â âåðøèíó j, êîòîðûé ìîæåò ñîäåðæàòü â êà÷åñòâå ïðîìåæóòî÷íûõ ëþáîå ïîäìíîæåñòâî òîëüêî ïåðâûõ m âåðøèí. Åñëè (m) ìåæäó i è j íåò ïóòè òàêîãî òèïà, ïîëàãàåì dij =∞. Åñòåñòâåííî òàêæå ñ÷èòàòü, ÷òî ïðè îòñóòñòâèè â ãðàôå êîíòóðîâ (m) îòðèöàòåëüíîãî âåñà âñå dii =0 ïðè ëþáîì m. Òåïåðü ýëåìåíò cij ìàòðèöû C ìîæíî ðàññìàòðèâàòü êàê äëèíó êðàò÷àéøåãî ïóòè èç i â j áåç ïðîìåæóòî÷íûõ âåðøèí, è îáîçíà(0) ÷àòü dij , à äëèíó êðàò÷àéøåãî ïóòè ìåæäó i è j (áåç îãðà(n)
íè÷åíèé íà ïðîìåæóòî÷íûå âåðøèíû) îáîçíà÷àòü êàê dij . Ïóñòü D(m) êâàäðàòíàÿ ìàòðèöà ïîðÿäêà n. Ïðè m=0 îíà ñîâïàäàåò ñ ìàòðèöåé C è çàïèñûâàåòñÿ êàê D(0) . Íà÷èíàÿ ñ D(0) , ñ ïîìîùüþ àëãîðèòìà Ôëîéäà ôîðìèðóåòñÿ ðÿä ìàòðèö D(1) , D(2) ,...,D(n) , ïîñëåäíÿÿ èç êîòîðûõ ÿâëÿåòñÿ èñêîìîé ìàòðèöåé äëèí êðàò÷àéøèõ ïóòåé ìåæäó âñåìè ïàðàìè âåðøèí. Àëãîðèòì Ôëîéäà, êàê è àëãîðèòì Óîðøîëëà, "ðàáîòàåò íà ìåñòå", ò. å. íå òðåáóåòñÿ õðàíèòü âñå ìàòðèöû D(m) . Êàæäàÿ ïîñëåäóþùàÿ ìàòðèöà â ýòîì ðÿäó ïîëó÷àåòñÿ èç ïðåäûäóùåé ñ ïîìîùüþ ïðîñòîãî ñîîòíîøåíèÿ: (m)
(m−1)
dij = min{dij
(m−1)
, dim
(m−1)
+dmj
},
â îñíîâå êîòîðîãî ëåæèò ñëåäóþùåå, ïðàêòè÷åñêè î÷åâèäíîå ïîëîæåíèå. Äëèíà êðàò÷àéøåãî ïóòè èç âåðøèíû i â âåðøèíó j, èñïîëüçóþùåãî â êà÷åñòâå ïðîìåæóòî÷íûõ òîëüêî ïåðâûå m âåðøèí, íå ìîæåò áûòü áîëüøå äëèíû êðàò÷àéøåãî ïóòè èç i â j, èñïîëüçóþùåãî â êà÷åñòâå ïðîìåæóòî÷íûõ òîëüêî ïåðâûå m−1 âåðøèí, è íå áîëåå ñóììû äëèí äâóõ êðàò÷àéøèõ 87
ïóòåé èç i â m è èç m â j, â êîòîðûõ ïðîìåæóòî÷íûìè ìîãóò áûòü ëèøü ïåðâûå m−1 âåðøèí. Ðàñ÷åòíîå ñîîòíîøåíèå ñóùåñòâåííî óïðîùàåòñÿ, êîãäà m ÿâëÿåòñÿ íà÷àëüíîé èëè êîíå÷íîé âåðøèíîé ðàññìàòðèâàåìîãî ïóòè. Òîãäà èìååì: (m)
(m−1)
dim = dim
(m)
(m−1)
, dmj = dmj
.
Ýòî îçíà÷àåò, ÷òî m -ÿ ñòðîêà è m -é ñòîëáåö íå ìåíÿþòñÿ ïðè ïåðåõîäå îò ìàòðèöû D(m−1) ê ìàòðèöå D(m) è ïîýòîìó ìîãóò íå ïåðåñ÷èòûâàòüñÿ. Åñëè çàðàíèå èçâåñòíî, ÷òî â ãðàôå íåò êîíòóðîâ îòðèöàòåëüíîãî âåñà, òî è äèàãîíàëüíûå ýëåìåíòû ìàòðèö òàêæå ìîæíî íå ïåðåñ÷èòûâàòü. Îòìå÷åííûå ôàêòû ïîçâîëÿþò óòâåðæäàòü, ÷òî òðóäîåìêîñòü âû÷èñëåíèÿ ëþáîé èç ìàòðèö D(m) ïðîïîðöèîíàëüíà n2 −3n+2. Ó÷èòûâàÿ, ÷òî äëÿ ïîëó÷åíèÿ ðåçóëüòàòà òðåáóåòñÿ n èòåðàöèé, â öåëîì òðóäîåìêîñòü àëãîðèòìà ìîæíî îöåíèòü êàê O(n3 ).  êà÷åñòâå ïðèìåðà íàéäåì ìàòðèöó äëèí êðàò÷àéøèõ ïóòåé ìåæäó âñåìè ïàðàìè âåðøèí äëÿ ãðàôà G, èçîáðàæåííîãî íà ðèñ. 4.12 è èìåþùåãî ìàòðèöó âåñîâ C. Ïîëàãàÿ D(0) =C, v1s - sv2 0 @ 6 ∞ @ G D(0) =C= ∞ @ ? @ R s s 7 v4 v3 0 5 8 18 0 ∞ 0 3 13 ∞ D(2) = , D(3) = ∞ ∞ 0 8 ∞ 7 12 15 0 7
5 0 ∞ 15
10 3 0 20
0 ∞ 13 ∞ , D(1) = ∞ 8 0 7
5 0 ∞ 12
10 3 0 17
∞ 13 , 8 0
5 0 ∞ 12
8 3 0 15
16 0 11 18 , D(4) = 15 8 7 0
5 0 20 12
8 3 0 15
16 11 . 8 0
Ðèñ. 4.12
ñ ïîìîùüþ àëãîðèòìà Ôëîéäà ïîñëåäîâàòåëüíî ïîëó÷àåì ìàòðèöû: D(1) , D(2) , D(3) , D(4) , ïðåäñòàâëåííûå íà ðèñ. 4.12, ïðè÷åì D(4) è åñòü èñêîìàÿ ìàòðèöà äëèí êðàò÷àéøèõ ïóòåé.  êàæäîé ìàòðèöå âûäåëåíû m -é ñòîëáåö è m -ÿ ñòðîêà, íå ïîäëåæàùèå ïåðåñ÷åòó íà ñîîòâåòñòâóþùåé èòåðàöèè.
88
Ïîñêîëüêó âåñà âñåõ äóã íå îòðèöàòåëüíû, äèàãîíàëüíûå ýëåìåíòû ìàòðèö ïîñòîÿííû è ðàâíû íóëþ. Êðîìå òîãî, (m−1)
åñëè dim
(m−1)
(m)
(m−1)
(m)
(m−1)
= ∞ , òî dij = dij
äëÿ âñåõ j
è
åñëè dmj = ∞ , òî dij = dij äëÿ âñåõ i . Èíûìè ñëîâàìè, åñëè i ýëåìåíò âûäåëåííîãî ñòîëáöà ðàâåí ∞, òî âñå ýëåìåíòû i ñòðîêè íà òåêóùåé èòåðàöèè íå èçìåíÿþòñÿ. Àíàëîãè÷íîå óòâåðæäåíèå ñïðàâåäëèâî è äëÿ âûäåëåííîé ñòðîêè. Ó÷åò ïðèâåäåííûõ ñîîòíîøåíèé ïîçâîëÿåò ñîêðàòèòü îáúåì âû÷èñëåíèé íà íà÷àëüíûõ èòåðàöèÿõ, îñîáåííî äëÿ ðàçðåæåííûõ ãðàôîâ. Ïðîèëëþñòðèðóåì ýòî íà ïðèìåðå. Âòîðîé è òðåòèé ýëåìåíòû ïåðâîãî ñòîëáöà, à òàêæå ÷åòâåðòûé ýëåìåíò ïåðâîé ñòðîêè ìàòðèöû D(0) ðàâíû ∞ . Ïîýòîìó, êðîìå ïåðâîãî ñòîëáöà è ïåðâîé ñòðîêè, ïðè ïåðåõîäå ê D(1) ñîõðàíÿþò ñâîå çíà÷åíèå ýëåìåíòû âòîðîé è òðåòüåé ñòðîê, à òàêæå ýëåìåíòû ÷åòâåðòîãî ñòîëáöà. Ïåðåñ÷åòó (0) (0) ïîäëåæàò14 ëèøü d4,2 =15 è d4,3 =20. ×òîáû ïîëó÷èòü, íàïðè(1)
(0)
(0)
ìåð, d4,2 , äîñòàòî÷íî ñëîæèòü d1,2 =5 è d1,4 =7, êîòîðûå íàõîäÿòñÿ â ïåðâîé ñòðîêå è ïåðâîì ñòîëáöå íà ïîçèöèÿõ, ñîîòâåòñòâóþùèõ ïåðåñ÷èòûâàåìîìó ýëåìåíòó, ñðàâíèòü íàéäåííóþ (0) ñóììó ñ d4,2 è âûáðàòü íàèìåíüøåå èç äâóõ ÷èñåë. Ïîëó÷àåì (1)
(1)
d4,2 =12. Òî÷íî òàê æå ðåøàåòñÿ çàäà÷à è äëÿ d4,3 =17. Íåòðóäíî óáåäèòüñÿ, ÷òî íà âòîðîé èòåðàöèè ñëåäóåò âû÷èñëÿòü òîëü(2) (2) (2) êî d1,3 , d1,4 è d4,3 , à âñå îñòàëüíûå ýëåìåíòû ìàòðèöà D(2) "íàñëåäóåò" îò D(1) . Äåéñòâèòåëüíî, âòîðàÿ ñòðîêà è âòîðîé ñòîëáåö íå èçìåíÿþòñÿ ïîòîìó, ÷òî m=2, à ïåðâûé ñòîëáåö è òðåòüÿ ñòðîêà â ñèëó ïðèâåäåííûõ âûøå ñîîòíîøåíèé. Âñå òðè íàçâàííûõ ýëåìåíòà ïîëó÷àþò íîâûå çíà÷åíèÿ, ðàâíûå ñîîòâåòñòâåííî 8, 18 è 15. Íà òðåòüåé èòåðàöèè ñ÷èòàþòñÿ (3) (3) (4) (4) (4) (4) (4) (4) d1,4 è d2,4 , à íà ÷åòâåðòîé d1,2 , d1,3 , d2,3 , d2,1 , d3,1 , d3,2 , ïðè÷åì èç ýòèõ øåñòè òðè ïåðâûå ñîõðàíÿþò ïðåæíèå çíà÷åíèÿ. Åñëè ãðàô èìååò äóãè ñ îòðèöàòåëüíûì âåñîì, öåëåñîîáðàçíî íàðÿäó ñ îñòàëüíûìè ïåðåñ÷èòûâàòü è äèàãîíàëüíûå 14 Ýëåìåíòû,
ïîäëåæàùèå ïåðåñ÷åòó, â ìàòðèöàõ ïîä÷åðêíóòû.
89
ýëåìåíòû ìàòðèö D(m) . Ïîÿâëåíèå íà íåêîòîðîé èòåðàöèè îòðèöàòåëüíûõ çíà÷åíèé íà ãëàâíîé äèàãîíàëè ìàòðèöû ïîêàçûâàåò, ÷òî â ãðàôå åñòü êîíòóð (öèêë) ñ îòðèöàòåëüíûì âåñîì.  ýòîì ñëó÷àå äàëüíåéøèå âû÷èñëåíèÿ òåðÿþò ñìûñë, òàê êàê â ïîäîáíûõ ñèòóàöèÿõ àëãîðèòì "íå ðàáîòàåò". Êðîìå äëèíû, äëÿ êàæäîãî êðàò÷àéøåãî ïóòè íåîáõîäèìî îïðåäåëèòü è ïîñëåäîâàòåëüíîñòü âõîäÿùèõ â íåãî âåðøèí. Ñ ýòîé öåëüþ îäíîâðåìåííî ñ ìàòðèöåé D(m) ôîðìèðó(m) åòñÿ ìàòðèöà "âåðøèí-ïðåäøåñòâåííèö" P(m) . Ýëåìåíò pi,j ýòîé ìàòðöû óêàçûâàåò ïðåäïîñëåäíþþ âåðøèíó êðàò÷àéøåãî (i, j) -ïóòè, êîòîðûé ìîæåò ñîäåðæàòü â êà÷åñòâå ïðîìåæóòî÷íûõ òîëüêî ïåðâûå m âåðøèí ãðàôà. Âíà÷àëå äëÿ âñåõ i è (0) (0) j ïîëàãàåì pi,j =i, åñëè cij 6=∞, è pi,j =0 â ïðîòèâíîì ñëó÷àå. Äàëåå íà êàæäîé èòåðàöèè ìàòðèöà P(m) ïåðåñ÷èòûâàåòñÿ îäíîâðåìåííî ñ ìàòðèöåé D(m) ñ ïîìîùüþ ñîîòíîøåíèÿ ( (m−1) (m−1) (m−1) (m−1) (m) , åñëè d > d + d , p m,j i,j i,m m,j pi,j = (m−1) pi,j â ïðîòèâíîì ñëó÷àå . Òàêèì îáðàçîì, ýëåìåíò ìàòðèöû P(m) êîððåêòèðóåòñÿ ïðè êàæäîì èçìåíåíèè ñîîòâåòñòâóþùåãî ýëåìåíòà ìàòðèöû D(m) . Äëÿ íàøåãî ïðèìåðà èìååì ñëåäóþùèé ðÿä ìàòðèö:
0 0 0 4
P(0) 1 1 0 2 0 3 4 4
0 2 3 0
,
0 0 0 4
P(1) 1 1 0 2 0 0 1 1
0 2 3 0
,
0 0 0 4
P(2) 1 2 0 2 0 0 1 2
2 2 3 0
,
0 0 0 4
P(3) 1 2 0 2 0 0 1 2
3 3 3 0
,
0 4 4 4
P(4) 1 2 0 2 1 0 1 2
3 3 3 0
,
ãäå ïîä÷åðêíóòû ýëåìåíòû, êîòîðûå íà î÷åðåäíîé èòåðàöèè ïîëó÷àþò íîâûå çíà÷åíèÿ. Íàïðèìåð, êàê áûëî ïîêàçàíî ðàíåå, íà ïåðâîé èòåðàöèè â ìàòðèöå D èçìåíèëèñü ýëåìåíòû d4,2 è d4,3 . Ïîýòîìó ñîãëàñíî ñ ïðèâåäåííîìó âûøå ñîîòíîøåíèþ ýëåìåíòû p4,2 è p4,3 ìàòðèöû P ïîëó÷àþò íîâûå çíà÷åíèÿ, ðàâíûå p1,2 è p1,3 ñîîòâåòñòâåííî. È âîîáùå, íà m-é èòåðàöèè èçìåíÿþùèéñÿ ýëåìåíò ìàòðèöû ïîëó÷àåò çíà÷åíèå, ðàâíîå ýëåìåíòó, íàõîäÿùåìóñÿ â òîì æå ñòîëáöå íà 90
m -é ïîçèöèè. Ïîñëåäíÿÿ èç ïîëó÷åííûõ ìàòðèö P(4) ïîçâîëÿåò ñôîðìèðîâàòü êðàò÷àéøèé ïóòü äëÿ ëþáîé ïàðû âåðøèí. Ïóñòü, íàïðèìåð, ýòî 1 è 4, ïðè÷åì 1 íà÷àëüíàÿ, à 4 êîíå÷(4) íàÿ âåðøèíû. Ýëåìåíò p1,4 =3, ò. å. ïðåäïîñëåäíåé âåðøèíîé ïóòè ÿâëÿåòñÿ âåðøèíà 3.  ñâîþ î÷åðåäü, åé ïðåäøåñòâóåò (4) (4) âåðøèíà 2, òàê êàê p1,3 =2. Íàêîíåö, p1,2 =1. Ñëåäîâàòåëüíî, (1,2,3,4) êðàò÷àéøèé (1;4)-ïóòü. Êàê ñëåäóåò èç ìàòðèöû (4) D(4) , äëèíà ýòîãî ïóòè ðàâíà d1,4 =16. Ïóñòü òåïåðü 4 íà(4) ÷àëüíàÿ âåðøèíà ïóòè, à 1 êîíå÷íàÿ. Òàê êàê p4,1 =4, ò. å. ïðåäïîñëåäíÿÿ âåðøèíà ñîâïàäàåò ñ íà÷àëüíîé, êðàò÷àéøèé (4;1)-ïóòü ñîñòîèò èç äóãè, ñâÿçûâàþùåé 4 è 1. Ñ èñïîëüçîâàíèåì ââåäåííûõ ðàíåå îáîçíà÷åíèé ôîðìàëèçîâàííîå îïèñàíèå àëãîðèòìà Ôëîéäà ìîæíî ïðåäñòàâèòü òàê:
begin {ÀËÃÎÐÈÒÌ for i := 1 to n do for j := 1 to n do ½
for
ÔËÎÉÄÀ} { Ôîðìèðîâàíèå } { íà÷àëüíûõ çíà÷åíèé } di,j := ci,j ; { ýëåìåíòîâ } if cij =∞ then pij =0 else pij =i; { ìàòðèö } dii := 0; {DèP} m := 1 to n do { Çàäàíèå ÷èñëà ïðîìåæóòî÷íûõ âåðøèí } for { Ïåðåáîð ñòðîê ìàòðèöû D } i := 1 to n do if (i6=m)&(di,m 6=∞) then for j := 1 to n do{ Ïåðåáîð ñòîëáöîâ ìàòðèöû D} if (j6=m)&(dm,j 6=∞) then if dij > dim +dmj { Åñëè ïóòü ÷åðåç } then ½ { âåðøèíó m êîðî÷å, êîððåêòèðîâàòü } dij := dim +dmj ; { äëèíó ïóòè è } p := p ; { ïðåäïîñëåäíþþ âåðøèíó. }
ij mj for ½ i := 1 to n do if dii < 0 then Ïðåêðàòèòü ïðîöåññ; { Â ãðàôå îáíàðóæåí öèêë îòðèöàòåëüíîãî âåñà. } output (D,P ) { Âûâîä ìàòðèö D è P } end. {ÀËÃÎÐÈÒÌ ÔËÎÉÄÀ}
91
4.4.3. Àöèêëè÷åñêèå îðãðàôû Êðàò÷àéøèé ïóòü. Çàäà÷à îòûñêàíèÿ êðàò÷àéøåãî ïó-
òè â àöèêëè÷åñêîì îðãðàôå âïîëíå ìîæåò áûòü ðåøåíà ñ ïîìîùüþ àëãîðèòìà Äåéêñòðû. Îäíàêî ñóùåñòâóåò áîëåå ýêîíîìè÷íûé ñïîñîá, èñïîëüçóþùèé ñïåöèôèêó òàêèõ ãðàôîâ. Ïóñòü â àöèêëè÷åñêîì îðãðàôå ñ ìàòðèöåé âåñîâ [ci,j ] âåðøèíû ïðîíóìåðîâàíû òàê, ÷òî äëÿ ëþáîé äóãè (vi , vj ) âûïîëíÿåòñÿ îòíîøåíèå i<j, ò. å. äóãà âñåãäà íàïðàâëåíà îò âåðøèíû ñ ìåíüøèì èíäåêñîì (íîìåðîì) ê âåðøèíå ñ áîëüøèì èíäåêñîì (íîìåðîì). Ïîäîáíàÿ íóìåðàöèÿ âñåãäà ìîæåò áûòü âûïîëíåíà íà îñíîâå ïîðÿäêîâîé ôóíêöèè ãðàôà. Íå íàðóøàÿ îáùíîñòè, áóäåì ñ÷èòàòü, ÷òî èìååòñÿ òîëüêî îäíà âåðøèíà s ñ íóëåâîé ïîëóñòåïåíüþ çàõîäà è îäíà âåðøèíà t ñ íóëåâîé ïîëóñòåïåíüþ èñõîäà, íàçûâàåìûå ñîîòâåòñòâåííî èñòîêîì è ñòîêîì. Òðåáóåòñÿ íàéòè êðàò÷àéøèé ïóòü èç s â t. Êàê è â ñëó÷àå àëãîðèòìà Äåéêñòðû, ôàêòè÷åñêè îòûñêèâàþòñÿ êðàò÷àéøèå ïóòè äî âñåõ âåðøèí ãðàôà. Äëèíà êðàò÷àéøåãî ïóòè l(vj ) äî âåðøèíû vj ëåãêî íàõîäèòñÿ, åñëè èçâåñòíû äëèíû êðàò÷àéøèõ ïóòåé äî âñåõ âåðøèí vi ∈Γ− (vj ), ò. å. âåðøèí, ÿâëÿþùèõñÿ íà÷àëàìè äóã, âõîäÿùèõ â âåðøèíy vj . Î÷åâèäíî, ÷òî
l(vj ) =
min [l(vi )+ci,j ] ,
vi ∈Γ− (vj )
ïðè÷åì |Γ− (vj )|<j, òàê êàê ïðè èñïîëüçóåìîé ñèñòåìå íóìåðàöèè âåðøèí ÷èñëî âõîäÿùèõ äóã äëÿ ëþáîé âåðøèíû âñåãäà ìåíüøå, ÷åì åå èíäåêñ (íîìåð). Ïîëàãàÿ l(s)=l(v1 )=0, íà ïåðâîé èòåðàöèè ïîëó÷àåì, ÷òî l(v2 )=l(v1 )+c1,2 =c1,2 , òàê êàê âåðøèíà v2 ìîæåò èìåòü ëèøü îäíó âõîäÿùóþ äóãó. Íà âòîðîé èòåðàöèè ïîëó÷àåì l(v3 ) = = min [l(vi )+ci,3 ] (íå áîëåå äâóõ âõîäÿùèõ äóã). Çàòåì l(v4 ) = − vi ∈Γ (v3 )
= min [l(vi )+ci,4 ] (íå áîëåå òðåõ âõîäÿùèõ äóã) è ò. ä., ïîêà − vi ∈Γ (v4 )
íå áóäåò ïîëó÷åíà äëèíà êðàò÷àéøåãî ïóòè äëÿ s . Ðàññìîòðèì ïðèìåð. Ïóñòü òðåáóåòñÿ íàéòè äëèíó êðàò÷àéøåãî ïóòè ìåæäó âåðøèíàìè v1 (èñòîê) è v13 (ñòîê) â 92
àöèêëè÷åñêîì ãðàôå, èçîáðàæåííîì íà ðèñ. 4.13. Íåòðóäíî óáåäèòüñÿ, ÷òî íóìåðàöèÿ âåðøèí ãðàôà ÿâëÿåòñÿ "ïðàâèëüíîé" â óêàçàííîì âûøå ñìûñëå. 12 -vs12
vs11 -vs13 19 14 I @ I @ 6 6 6 @ 15 17@ 21 8 @ @ 9 @vs sv8 @vs4 - sv10 13 6 I @ 6 18 6 6 3 30 11@ 8 14 30 @ v6 26 sv5 s - sv7 @sv2 9 @ 6 16 I 11 @ 19 7 5 @ 10 s @s v3 v1
Ðèñ. 4.13
Ïðîöåññ âû÷èñëåíèé ìîæíî âûïîëíèòü íåïîñðåäñòâåííî ïî ðèñóíêó, ïðèíÿâ l(v1 )=0, è äàëåå ïåðåõîäÿ îò âåðøèíû ê âåðøèíå. Ïðè ýòîì ñîâñåì íå îáÿçàòåëüíî ñîáëþäàòü î÷åðåäíîñòü îáðàáîòêè âåðøèí ñòðîãî â ñîîòâåòñòâèè ñ èõ íóìåðàöèåé. Äëÿ äàííîãî ãðàôà âïîëíå äîïóñòèì, íàïðèìåð, è òàêîé ïîðÿäîê: v1 , v3 , v5 , v2 , v7 , v4 , v10 , v6 , v8 , v9 , v11 , v12 , v13 . Âàæíî òîëüêî, ÷òîáû ê ìîìåíòó îáðàáîòêè î÷åðåäíîé âåðøèíû âñå åå "ïðåäøåñòâåííèöû" áûëè îáðàáîòàíû. Òîãäà â ëþáîì ñëó÷àå ðåçóëüòàò (çíà÷åíèÿ ïîìåòîê âåðøèí) áóäåò òàêèì, êàê ïîêàçàíî íà ðèñ. 4.14,à, ïðè÷åì ïîìåòêà v13 ðàâíà 44. Äëÿ ïîëó÷åíèÿ òðàññû êðàò÷àéøåãî ïóòè ñëåäóåò âûïîëíèòü ïðîöåäóðó "îáðàòíîãî õîäà". Ñïåðâà îòûñêèâàåòñÿ ïðåäøåñòâåííèöà äëÿ v13 , ëåæàùàÿ íà èñêîìîì êðàò÷àéøåì ïóòè. Ýòî îäíà èç òðåõ âåðøèí v10 , v11 , v12 , à èìåííî òà, äëÿ êîòîðîé âûïîëíÿåòñÿ ñîîòíîøåíèå l(v13 )−l(vi )=ci,13 , ãäå vi ∈{v10 , v11 , v12 }. Òàêîé âåðøèíîé ÿâëÿåòñÿ v12 . Äëÿ íåå òàêæå èùåòñÿ âåðøèíà-ïðåäøåñòâåííèöà, ëåæàùàÿ íà êðàò÷àéøåì ïóòè. Èç òðåõ âîçìîæíûõ v4 , v8 è v11 òàêîâîé îêàçûâàåòñÿ v8 . Â
93
ñâîþ î÷åðåäü, ýòîé âåðøèíå ïðåäøåñòâóåò v2 , à åé v1 . Çàïèñûâàÿ íàéäåííóþ ïîñëåäîâàòåëüíîñòü â îáðàòíîì ïîðÿäêå, ïîëó÷àåì ñîáñòâåííî ñàì êðàò÷àéøèé ïóòü (v1 , v2 , v8 , v12 , v13 ). Íà ðèñ. 4.14,à ñîñòàâëÿþùèå åãî äóãè èçîáðàæåíû æèðíûìè ëèíèÿìè. Ïðîöåññ îáðàòíîãî õîäà ìîæíî óïðîñòèòü, åñëè ó÷åñòü, ÷òî âåðøèíà v13 ïîëó÷èëà ñâîþ ïîìåòêó èç v12 , êîòîðàÿ, â ñâîþ î÷åðåäü, ïîëó÷èëà ïîìåòêó èç v8 , è ò. ä. Ïîýòîìó íà ýòàïå ïðÿìîãî õîäà öåëåñîîáðàçíî íàðÿäó ñ ïðèñâîåíèåì ïîìåòêè î÷åðåäíîé âåðøèíå äîïîëíèòåëüíî îòìå÷àòü è òó âåðøèíó, èç êîòîðîé ýòà ïîìåòêà ïîëó÷åíà. Òîãäà íà ýòàïå îáðàòíîãî õîäà îñòàåòñÿ òîëüêî ïðîéòè îò ñòîêà ê èñòîêó, äâèãàÿñü ëèøü ïî ýòèì äîïîëíèòåëüíî îòìå÷åííûì âåðøèíàì. Çàäà÷ó ìîæíî ðåøàòü è íå ïðèáåãàÿ ê èçîáðàæåíèþ ãðàôà. Òåõíèêà ïîëó÷åíèÿ ïîìåòîê âåðøèí íåïîñðåäñòâåííî ïî ìàòðèöå âåñîâ C äàíà íà ðèñ. 4.14,á. Êàê è ðàíåå, âåðøèíû äîëæíû áûòü ïðîíóìåðîâàíû òàê, ÷òîáû äëÿ ëþáîé äóãè (vi , vj ) âûïîëíÿëîñü îòíîøåíèå i<j. Îòìåòèì, ÷òî ìàòðèöà â ýòîì ñëó÷àå îêàçûâàåòñÿ âåðõíåé òðåóãîëüíîé. Íåçàïîëíåííûå ïîçèöèè îçíà÷àþò, ÷òî ñîîòâåòñòâóþùèõ äóã â ãðàôå íåò, èëè äóãè åñòü, íî èõ âåñ ðàâåí ∞. Ðåçóëüòàòû âû÷èñëåíèé öåëåñîîáðàçíî ðàçìåùàòü íà ãëàâíîé äèàãîíàëè, ò. å. ñ÷èòàòü, ÷òî cii =l(vi ). Íà ðèñ. 4.14,á ýòè ýëåìåíòû âûäåëåíû æèðíûì øðèôòîì è çàêëþ÷åíû â ðàìêó. Ñëåâà ïðèâåäåí ðàñ÷åò çíà÷åíèÿ ñîîòâåòñòâóþùåãî äèàãîíàëüíîãî ýëåìåíòà. Íàïðèìåð, â äåâÿòîì ñòîëáöå ìàòðèöû åñòü òðè "íå ïóñòûõ" çíà÷åíèÿ c3,9 =26, c5,9 =3 è c8,9 =13. Ýòî çíà÷èò, ÷òî ñóùåñòâóþò òðè äóãè, âõîäÿùèå â v9 , íà÷àëüíûå âåðøèíû êîòîðûõ èìåþò ïîìåòêè 15 l(v3 )=10, l(v5 )=19 è l(v8 )=13.  ýòîì ñëó÷àå ðàñ÷åòíîå ñîîòíîøåíèå âûãëÿäèò òàê: min[26+10; 3+19; 13+13]=21, ò. å. ïîìåòêà v9 ðàâíà 21. Î÷åâèäíî, ÷òî âåðøèíîé-ïðåäøåñòâåííèöåé ÿâëÿåòñÿ v5 , ïîýòîìó äîïîëíèòåëüíî ïîìå÷àåì çâåçäî÷êîé ýëåìåíò c5,9 . Ïîäîáíûì îáðàçîì îáðàáàòûâàåì âñå ñòîëáöû ìàòðèöû, íà÷èíàÿ ñî âòîðîãî. Íà ýòàïå îáðàòíîãî õîäà ïîðÿäîê ïðîñìîòðà ñòîëáöîâ ìåíÿåòñÿ íà îáðàòíûé. Îòûñêèâàåì ïîìå÷åííûé çâåçäî÷êîé ýëåìåíò ïîñëåäíåãî ñòîëáöà. 15 Ñì.
ñîîòâåòñòâóþùèå äèàãîíàëüíûå ýëåìåíòû c3,3 , c5,5 è c8,8 .
94
Ñòðîêà, â êîòîðîé îí íàõîäèòñÿ, îïðåäåëÿåò ïðåäïîñëåäíþþ âåðøèíó êðàò÷àéøåãî ïóòè.  ñòîëáöå, ñîîòâåòñòâóþùåì ýòîé âåðøèíå, âíîâü èùåì ïîìå÷åííûé ýëåìåíò ïîëó÷àåì òðåòüþ 12 -(30) s
(37) s -(44) s 19 14 I @ I @ 6 6 6 @ 15 17@ 21 8 @ @ - s(37) @(22) s¾ s(13) @(19) s 13 6 I @ 6 18 6 ¢¸ 6 @ 8 14 30 3 11 30 ¢ @ (7) @ s(5) - s(14) 26¢ s(19) s¾ ¢ ¡ 9 µ µ@ I 6 16¡¡ ¢ ¡ 11 @ 19 7 5 ¡ @ ¢¡ 10 @s¡ s¢¡ ¾ (10) (0)
à
á
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 0 5∗ 10∗ 19∗ 7∗ 5 14∗ 16 9∗ 8∗ 10 11 26 30 ∗ min[14+5]= 19 18 21 ∗ min[19;11+10]= 19 3 min[7; 16+5]= 7 11 min[9+5]= 14 30 17∗ min[8+5; 11+7]= 13 13 min[26+10; 3+19; 13+13]= 22 15∗ min[18+19; 30+14]= 37 min[30+10; 15+22]= 37 19 min[21+19; 17+13; 19+37]= 30 min[8+37; 12+37; 14+30]=
v13
8 12 14∗
44
Ðèñ. 4.14
(îò êîíöà) âåðøèíó êðàò÷àéøåãî ïóòè è ò. ä., ïîêà ïîìå÷åííûì íå îêàæåòñÿ ýëåìåíò â ïåðâîé ñòðîêå ìàòðèöû.
95
 ôîðìàëèçîâàííîé çàïèñè (ñ èñïîëüçîâàíèåì ðàíåå ââåäåííûõ îáîçíà÷åíèé) ðàññìîòðåííûé àëãîðèòì âûãëÿäèò òàê:
begin
{ Àëãîðèòì ïîèñêà êðàò÷àéøåãî } { ïóòè â àöèêëè÷åñêîì îðãðàôå } l(v1 ) := 0; forj := 2 to n do Íàéòè vi∗ ∈Γ− (vj ), äëÿ êîòîðîé l(vi∗ )+ci,j ìèíèìàëüíî; l(vj ) := l(vi∗ )+c∗i,j ; pred(v ) := v ∗ ; j i output{l(vn )}; v := vn ; while ½ v6=v1 do v → ñòåê; v := pred(v); output{v1 , ñîäåðæèìîå ñòåêà}; { Àëãîðèòì ïîèñêà êðàò÷àéøåãî } end. { ïóòè â àöèêëè÷åñêîì îðãðàôå }
Î÷åâèäíî, ÷òî òðóäîåìêîñòü ïåðâîãî ýòàïà ðàâíà O(m), ïîñêîëüêó íåîáõîäèìî ïðîñìîòðåòü âñå ðåáðà, à òðóäîåìêîñòü âòîðîãî O(n), òàê êàê, â õóäøåì ñëó÷àå, êðàò÷àéøèé ïóòü ìîæåò âêëþ÷àòü âñå âåðøèíû ãðàôà. Êðèòè÷åñêèé ïóòü. Àöèêëè÷åñêèå îðãðàôû ÿâëÿþòñÿ íàãëÿäíûì ñðåäñòâîì îòîáðàæåíèÿ âçàèìîñâÿçåé è ïîðÿäêà ñëåäîâàíèÿ ýòàïîâ ñëîæíûõ äîëãîâðåìåííûõ ïðîåêòîâ, òàêèõ êàê ñòðîèòåëüñòâî êðóïíûõ ñîîðóæåíèé, ïðîâåäåíèå øèðîêîìàñøòàáíûõ íàó÷íî-èññëåäîâàòåëüñêèõ ðàáîò è ò. ï. Ïóñòü êàæäàÿ äóãà ãðàôà îòîáðàæàåò îïðåäåëåííóþ ðàáîòó ïðè âûïîëíåíèè íåêîòîðîãî ïðîåêòà, à âåñ äóãè óêàçûâàåò ïðîäîëæèòåëüíîñòü ýòîé ðàáîòû. Òîãäà âåðøèíû ãðàôà ìîæíî ðàññìàòðèâàòü êàê ñîáûòèÿ, ñîñòîÿùèå â çàâåðøåíèè îäíèõ ðàáîò (âõîäÿùèå äóãè) è íà÷àëå äðóãèõ (èñõîäÿùèå äóãè). Ïðè ýòîì ïðåäïîëàãàåòñÿ, ÷òî íè îäíà "èñõîäÿùàÿ" ðàáîòà íå ìîæåò íà÷àòüñÿ, ïîêà íå áóäóò çàâåðøåíû âñå "âõîäÿùèå". Ïðè òàêîé èíòåðïðåòàöèè ãðàô íà ðèñ. 4.13 âïîëíå ìîæåò ðàññìàòðèâàòüñÿ êàê ñåòåâîé ãðàôèê íåêîòîðîãî ïðîåêòà. Ïðè ýòîì åñòåñòâåííî âîçíèêàåò çàäà÷à îïðåäåëåíèÿ íàèáîëåå ðàííèõ ñðîêîâ åãî çàâåðøåíèÿ. ßñíî, ÷òî ìèíèìàëüíîå âðåìÿ 96
âûïîëíåíèÿ ïðîåêòà ðàâíî ñàìîìó äëèííîìó ïóòè ìåæäó íà÷àëüíîé è êîíå÷íîé âåðøèíàìè. Ýòîò ïóòü íàçûâàþò êðèòè÷åñêèì. Ìåòîä îòûñêàíèÿ òàêîãî ïóòè òîò æå, ÷òî è â çàäà÷å 12 -(79) s
à
(60) -(93) s s 19 14 6 6 6 @ I @ I @ 15 17@ 21 8 @ @ @(45) s¾ s(32) @(19) s - s(44) 13 6 6 18 6 @ I ¢¸ 6 30 3 11@ 8 14 30 ¢ @ (21) @s(5) - s(14) 26¢ s(21) s¾ ¢ ¡ 9 µ 6 16¡¡ µ@ I ¢ ¡ 11 @ 19 7 5 ¡ @ ¢¡ 10 @¡ ¢¡ s¾ s (10) (0) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 0 5∗ 10∗ 19 7 ∗ 5 14 16∗ 9∗ 8 10 11∗ 26 30 19 18 21 3 ∗ 21 11 Îñíîâíîå 14 30∗ ðàñ÷åòíîå 32 13∗ ñîîòíîøåíèå 45 15∗ z }| { l(vj ) = max [l(vi )+ci,j ], j=2, 13 44 vi ∈Γ− (vj ) 60 Êðèòè÷åñêèé ïóòü
v1 v2 v3 v4 v5 v6 á v7 v8 v9 v10 v11 v12 z }| { v13 v1 −v2 −v6 −v8 −v9 −v11 −v12 −v13
v12 v13
21
17
8 19 12 79 14∗ l(v13 ) = 93 ∗
Ðèñ. 4.15
î êðàò÷àéøåì ïóòè, òîëüêî â îñíîâíîì ðàñ÷åòíîì ñîîòíîøåíèè âìåñòî ìèíèìóìà èùåòñÿ ìàêñèìóì. Íà ðèñ. 4.15,à,á ïðèâåäåíî ðåøåíèå çàäà÷è î êðèòè÷åñêîì ïóòè äëÿ ðàññìàòðèâàåìîãî ãðàôà. Êðèòè÷åñêèé ïóòü âûäåëåí æèðíûìè ëèíèÿìè. 97
5. Öèêëû 5.1. Ôóíäàìåíòàëüíûå öèêëû è ðàçðåçû Áóäåì ïðåäñòàâëÿòü öèêëû (n, m)-ãðàôà â âèäå m -ðàçðÿäíûõ äâîè÷íûõ êîäîâ, â êîòîðûõ ðàçðÿä j ðàâåí 1, åñëè ðåáðî ej ïðèíàäëåæèò öèêëó, è 0, åñëè ðåáðî öèêëó íå ïðèíàäëåæèò. Ïóñòü, íàïðèìåð, ìíîæåñòâî ðåáåð íåêîòîðîãî ãðàôà E={e1 , e2 , . . . , e10 }, è â ãðàôå åñòü öèêë (e1 , e2 , e6 , e9 , e8 , e4 ), òîãäà ñîîòâåòñòâóþùèé êîä çàïèøåòñÿ êàê C=1101010110 .  îáùåì ñëó÷àå ãðàô ìîæåò ñîäåðæàòü ìíîæåñòâî öèêëîâ. Òàê, â ãðàôå, èçîáðàæåííîì íà ðèñ. 5.1, ñóùåñòâóåò øåñòü e1 s e2 s e3 s s ¿ º · ³ ² ¯¶ ²¯ ²¯ e4 C1 e5 C2 e 6 C3 e 7 ± ° ± ° ±° µ ´ ¹ ¸ À sÁ s s s A e e8AA e 9 10 A A C4 C6 C5 Ðèñ. 5.1
öèêëîâ C1 − C6 . Îäíàêî îíè íå ÿâëÿþòñÿ íåçàâèñèìûìè, ïîñêîëüêó ëþáîé èç ýòèõ öèêëîâ ìîæåò áûòü ïðåäñòàâëåí êàê ñóïåðïîçèöèÿ äðóãèõ (ñ ïîìîùüþ îïåðàöèè ïîðàçðÿäíîãî ñëîæåíèÿ ñîîòâåòñòâóþùèõ êîäîâ ïî ìîäóëþ äâà), â ÷àñòíîñòè, öèêë C6 =C1 ⊕C2 ⊕C3 , öèêë C4 =C1 ⊕C2 è öèêë C5 =C2 ⊕C3 .  ýòèõ ïðèìåðàõ öèêëû C1 , C2 è C3 âûñòóïàþò êàê "ïîëíîå" ìíîæåñòâî íåçàâèñèìûõ öèêëîâ, òàê êàê íà èõ îñíîâå ìîæíî ïîëó÷èòü ëþáîé èç îñòàëüíûõ öèêëîâ ãðàôà. Ñðåäè òàêèõ ìíîæåñòâ íåçàâèñèìûõ öèêëîâ âûäåëÿþò ìíîæåñòâà ôóíäàìåíòàëüíûõ (áàçèñíûõ) öèêëîâ16 . Ìíîæåñòâîì ôóíäàìåíòàëüíûõ öèêëîâ ãðàôà îòíîñèòåëüíî îñòîâà T ýòîãî ãðàôà ïðèíÿòî íàçûâàòü ìíîæåñòâî öèêëîâ, êàæäûé èç êîòîðûõ ïîëó÷àåòñÿ ïðè äîáàâëåíèè ê T íåêîòîðîãî ðåáðà ãðàôà, íå ïðèíàäëåæàùåãî T. Èç îïðåäåëåíèÿ ñëåäóåò, ÷òî ìîùíîñòü ìíîæåñòâà ôóíäàìåíòàëüíûõ öèêëîâ íå çàâèñèò îò âûáðàííîãî îñòîâà è âñå16 Ãîâîðÿò
òàêæå "ôóíäàìåíòàëüíîå (áàçèñíîå) ìíîæåñòâî öèêëîâ".
98
ãäà ðàâíà ν=m−n+1. Ýòî öèêëîìàòè÷åñêîå ÷èñëî îäíà èç âàæíåéøèõ õàðàêòåðèñòèê ãðàôà. ßñíî òàêæå, ÷òî âñå öèêëû òàêîãî ìíîæåñòâà íåçàâèñèìû, ïîñêîëüêó êàæäûé èç íèõ ñîäåðæèò ðåáðî, ïðèíàäëåæàùåå òîëüêî ýòîìó öèêëó.  êà÷åñòâå ïðèìåðà íà ðèñ. 5.2 ïðåäñòàâëåíû âñå ôóíäàìåíòàëüíûå öèêëû ãðàôà îòíîñèòåëüíî îñòîâà, îáðàçîâàííîãî ðåáðàìè e5 , e6 , e7 , e8 , e9 (âûäåëåíû æèðíûìè ëèíèÿìè). Íà ðèñ. 5.3 ïîêàçàíî ïîëíîå ìíîæåñòâî íåçàâèñèìûõ öèêëîâ òîãî s J º· e1 J e5 Φ1 J Js s e6¹¸ ¶³ J
J º· Φ 3
J e4 e2 eJ 3 µ´ Φ4 J Φ2 J
e7¹¸ J
Js s s e8 e9
s J º· J e5 e1 C 1 J ¹¸ Js s e6º· J J º· º· C 3 J e4 e2 J ¹¸ C4 J C2 eJ e7¹¸ 3 ¹¸ Js Js s e8 e9
Ðèñ. 5.2
Ðèñ. 5.3
æå ãðàôà, êîòîðîå íå ÿâëÿåòñÿ ìíîæåñòâîì ôóíäàìåíòàëüíûõ öèêëîâ, òàê êàê íåò ñîîòâåòñòâóþùåãî îñòîâà17 . Îïèñàíèå ôóíäàìåíòàëüíûõ öèêëîâ óäîáíî âûïîëíÿòü â âèäå ìàòðèöû Φ = [φij ], ñòðîêè êîòîðîé ñîîòâåòñòâóþò öèêëàì, à ñòîëáöû ðåáðàì, ïðè÷åì φij ðàâíî 1, åñëè ej ïðèíàäëåæèò öèêëó Φi , èëè 0, åñëè íå ïðèíàäëåæèò. Êàíîíè÷åñêàÿ ôîðìà çàïèñè ìàòðèöû ïîëó÷àåòñÿ, åñëè ïðåäâàðèòåëüíî ïðîíóìåðîâàòü ñíà÷àëà âñå íåîñòîâíûå ðåáðà, à çàòåì îñòîâíûå, êàê íà ðèñ 5.2.  ýòîì ñëó÷àå ìàòðèöà âûãëÿäèò òàê:
e1 e2 e3 e4 e5 e6 e7 e8 e9
Φ1 1 0 Φ 0 1 Φ = Φ2 0 0 3 Φ4 0 0
0 0 1 0
0 0 0 1
1 0 0 0
1 1 1 0
0 1 1 1
0 1 0 0
0 0 0 , 1
èëè ñîêðàùåííî Φ=(Iν |Φ0 ), ãäå Iν åäèíè÷íàÿ ìàòðèöà ïîðÿäêà ν, à Φ0 ìàòðèöà ðàçìåðà ν×(n−1), îïðåäåëÿþùàÿ, êàêèå ðåáðà îñòîâà ïðèíàäëåæàò ñîîòâåòñòâóþùåìó öèêëó. 17 Öèêë
C3 íå ìîæåò áûòü ïîëó÷åí ïóòåì ñóïåðïîçèöèè C1 , C2 , C4 , è ïîýòîìó íåçàâèñèì.
99
Ñ ïîíÿòèåì öèêëà òåñíî ñâÿçàíî ïîíÿòèå ðàçðåçà ìíîæåñòâà ðåáåð S, óäàëåíèå êîòîðûõ ïðèâîäèò ê íåñâÿçíîìó ãðàôó. Ïðèìåðû ðàçðåçîâ äàíû íà ðèñ. 5.4,a,á ýòî ìíîæåñòâà ðåáåð, ïåðåñåêàåìûõ ëèíèÿìè S , S1 − S6 . s e3
e1 S s
e2
e1 S2s e2 s ±°" ! S1 S3 e3 e4 e5 ²¯# à S4 S s s s 6 e6 S e7 5
s
s
e4
s
e5 ² S s s e6 e7 µ ´
à
Ðèñ. 5.4
á
Ðàçðåç íàçûâàåòñÿ ïðîñòûì èëè ïðàâèëüíûì, åñëè íèêàêîå åãî ñîáñòâåííîå ïîäìíîæåñòâî íå ÿâëÿåòñÿ ðàçðåçîì. Èíûìè ñëîâàìè, ïðîñòîé ðàçðåç ÿâëÿåòñÿ ìèíèìàëüíûì ðàçðåçîì è âñåãäà ðàçáèâàåò ãðàô íà äâå êîìïîíåíòû. Íåêîòîðîå ìíîæåñòâî ïðîñòûõ ðàçðåçîâ ãðàôà ïîêàçàíî íà ðèñ. 5.4,á : S1 = {e1 , e3 } , S4 = {e3 , e6 } ,
S2 = {e1 , e2 , e4 } , S5 = {e4 , e6 , e7 } ,
S3 = {e2 , e5 } , S6 = {e5 , e7 } .
Ðàçðåç S={e1 , e5 , e6 , e7 } íà ðèñ. 5.4,à ïðîñòûì íå ÿâëÿåòñÿ, òàê êàê ñîñòîèò èç äâóõ ïðîñòûõ {e1 , e6 } è {e5 , e7 } . Ïî àíàëîãèè ñ öèêëàìè áóäåì îïèñûâàòü ðàçðåçû m-ðàçðÿäíûìè äâîè÷íûìè êîäàìè, â êîòîðûõ ðàçðÿä j ðàâåí 1, åñëè ðåáðî ej ïðèíàäëåæèò ðàçðåçó, è 0, åñëè íå ïðèíàäëåæèò.  ýòîì ñëó÷àå îïèñàíèå ðàçðåçîâ S1 − S6 èìååò âèä: S1 = 1010000 , S4 = 0010010 ,
S2 = 1101000 , S5 = 0001011 ,
S3 = 0100100 , S6 = 0000101 .
Ëåãêî çàìåòèòü, ÷òî êîä ëþáîãî èç ýòèõ øåñòè ðàçðåçîâ ìîæåò áûòü ïîëó÷åí êàê ñóììà îñòàëüíûõ ïÿòè ïî ìîäóëþ 2, ò. å. ðàçðåçû S1 −S6 çàâèñèìû. Åñëè æå îãðàíè÷èòüñÿ ëþáûìè ïÿòüþ èç íèõ, òî ïîëó÷èì ìíîæåñòâî ïðîñòûõ íåçàâèñèìûõ ðàçðåçîâ, ñ ïîìîùüþ êîòîðûõ ìîæíî ñôîðìèðîâàòü ëþáîé ðàçðåç â ãðàôå. Òàê, ðàçðåç S íà ðèñ. 5.4,a ìîæíî ðàññìàòðèâàòü êàê ñóììó S=S2 ⊕S3 ⊕S5 . Ñðåäè ìíîæåñòâ íåçàâèñèìûõ ðàçðåçîâ âûäåëÿþò ìíîæåñòâà ôóíäàìåíòàëüíûõ (áàçèñíûõ) ðàçðåçîâ.
100
Ìíîæåñòâîì ôóíäàìåíòàëüíûõ ðàçðåçîâ ãðàôà îòíîñèòåëüíî íåêîòîðîãî îñòîâà T ýòîãî ãðàôà íàçûâàþò ìíîæåñòâî ïðîñòûõ ðàçðåçîâ, êàæäûé èç êîòîðûõ ñîäåðæèò òîëüêî îäíî ðåáðî, ïðèíàäëåæàùåå T. Èç îïðåäåëåíèÿ ñëåäóåò, ÷òî ìîùíîñòü ìíîæåñòâà ôóíäàìåíòàëüíûõ ðàçðåçîâ íå çàâèñèò îò âûáðàííîãî îñòîâà è ðàâíà ρ=n−1. Ýòî êîöèêëîìàòè÷åñêîå ÷èñëî ãðàôà. Òàêîå íàçâàíèå îáúÿñíÿåòñÿ òåì, ÷òî íàðÿäó ñ òåðìèíîì "ôóíäàìåíòàëüíûé ðàçðåç" èñïîëüçóþò è òåðìèí "êîöèêë", ïîä÷åðêèâàÿ ýòèì ñâÿçü ôóíäàìåíòàëüíûõ öèêëîâ è ðàçðåçîâ. Îïèñàíèå ôóíäàìåíòàëüíûõ ðàçðåçîâ óäîáíî âûïîëíÿòü â âèäå ìàòðèöû S=[sij ], ñòðîêè êîòîðîé ñîîòâåòñòâóþò ðàçðåçàì, à ñòîëáöû ðåáðàì, ïðè÷åì sij ðàâíî 1, åñëè ej ïðèíàäëåæèò ðàçðåçó Si , èëè 0, åñëè íå ïðèíàäëåæèò. Êàíîíè÷åñêàÿ ôîðìà çàïèñè ìàòðèöû ïîëó÷àåòñÿ, åñëè ïðîíóìåðîâàòü ñíà÷àëà âñå íåîñòîâíûå ðåáðà, à çàòåì îñòîâíûå. Òîãäà ìàòðèöà ôóíäàìåíòàëüíûõ ðàçðåçîâ ãðàôà íà ðèñ. 5.5,à âûãëÿäèò êàê S1 s J ª e1 Je5 © S2 s e6 J Js S3 J ª
J e4 e2 · e3J
e7 Jº S4 S J J J
Js 5 s s
e8 e9
à
S1 S2 S = S3 S4 S5 Ðèñ. 5.5
e1 1 1 0 0 0
e2 0 1 1 1 0
e3 0 1 1 0 0
e4 0 0 1 0 1
e5 1 0 0 0 0
e6 0 1 0 0 0
e7 0 0 1 0 0
e8 0 0 0 1 0
e9 0 0 0 0 1
á
íà ðèñ. 5.5,á, èëè ñîêðàùåííî S=(S0 |Iρ ), ãäå Iρ åäèíè÷íàÿ ìàòðèöà ïîðÿäêà ρ, îïðåäåëÿþùàÿ, êàêîå ðåáðî îñòîâà ïðèíàäëåæèò ðàçðåçó, à S0 ìàòðèöà ðàçìåðà ρ×ν. Óñòàíîâèì ñâÿçü ìàòðèö Φ è S. ×èñëî îáùèõ ðåáåð ëþáîãî öèêëà è ëþáîãî ðàçðåçà ìîæåò áûòü òîëüêî ÷åòíûì (â òîì ÷èñëå è íóëåâûì), à ýòî çíà÷èò, ÷òî êîëè÷åñòâî åäèíèö, ñòîÿùèõ íà îäèíàêîâûõ ïîçèöèÿõ â ñòðîêå i ìàòðèöû Φ è â ñòðîêå j ìàòðèöû S, ÷åòíî. Ñëåäîâàòåëüíî, ΦST ≡ 0 (mod 2). Ñ äðóãîé ñòîðîíû, åñëè ïðèíÿòü âî âíèìàíèå áëî÷íóþ
101
ñòðóêòóðó Φ è S, òî, ïî ïðàâèëàì óìíîæåíèÿ áëî÷íûõ ìàòðèö, ìîæíî çàïèñàòü à ! 0T S ΦST =(Iν |Φ0 )(S0 |Iρ )T =(Iν |Φ0 ) =Iν S0 T +Φ0 Iρ =S0 T +Φ0 , T Iρ ãäå Iν è Iρ åäèíè÷íûå ìàòðèöû ïîðÿäêà ν è ρ ñîîòâåòñòâåííî, à îïåðàöèè âûïîëíÿþòñÿ ïî ìîäóëþ 2. Ó÷èòûâàÿ, ÷òî ΦST ≡ 0 (mod 2), èìååì S0 T +Φ0 =0, îòêóäà ñëåäóåò, ÷òî S0 T =Φ0 , òàê êàê ñëîæåíèå âåäåòñÿ ïî ìîäóëþ 2.
5.2. Ýéëåðîâû öèêëû 5.2.1. Îïðåäåëåíèå è óñëîâèÿ ñóùåñòâîâàíèÿ Ýéëåðîâ öèêë ýòî ïðîñòîé öèêë, ñîäåðæàùèé âñå ðåáðà ñâÿçíîãî íåîðèåíòèðîâàííîãî ìóëüòèãðàôà. Ïðîñòóþ öåïü, ïðîõîäÿùóþ ÷åðåç âñå ðåáðà, íàçûâàþò ýéëåðîâîé öåïüþ. Ãðàô, â êîòîðîì åñòü ýéëåðîâ öèêë, íàçûâàåòñÿ ýéëåðîâûì, à ãðàô, ñîäåðæàùèé ýéëåðîâó öåïü ïîëóýéëåðîâûì. vr1 vr2 @ @ @r v 5 v6 r @ @ @r @r v4 G v3 1
vr1 @
vr2 @ @r
@ r @r v4 G v3 2 Ðèñ. 5.6
v5
vr1 @
vr2
@ r @r v4 G v3 3
Ñðåäè ãðàôîâ, ïðåäñòàâëåííûõ íà ðèñ. 5.6, ãðàô G1 ÿâëÿåòñÿ ýéëåðîâûì, òàê êàê â íåì åñòü öèêë, ñîäåðæàùèé âñå ðåáðà, íàïðèìåð, (v1 , v2 , v3 , v4 , v1 , v3 , v5 , v2 , v4 , v6 , v1 ); â ãðàôå G2 ïîäîáíûé öèêë îòñóòñòâóåò, íî åñòü ýéëåðîâà öåïü, íàïðèìåð (v1 , v2 , v3 , v4 , v1 , v3 , v5 , v2 , v4 ), ïîýòîìó ãðàô G2 ïîëóýéëåðîâ; íàêîíåö, ãðàô G3 íå ýéëåðîâ è íå ïîëóýéëåðîâ: â íåì íåò ñîîòâåòñòâóþùåãî öèêëà èëè öåïè. Ñâîèì íàçâàíèåì ðàñìàòðèâàåìûå çäåñü öèêëû îáÿçàíû Ýéëåðó, êîòîðûé óñòàíîâèë ïðîñòîé ïðèçíàê ñóùåñòâîâàíèÿ òàêèõ öèêëîâ â ãðàôå, ðåøèâ çíàìåíèòóþ â ñâîå âðåìÿ çàäà÷ó î êåíèãñáåðãñêèõ ìîñòàõ. Ñàìà çàäà÷à ñîñòîèò â ñëåäóþùåì. Ñåìü ìîñòîâ â òîãäàøíåì Êåíèãñáåðãå (íûíå Êàëèíèíãðàä) 102
ñîåäèíÿëè áåðåãà ðåêè Ïðåãåëü, à òàêæå äâà îñòðîâà íà íåé, â ñîîòâåòñòâèè ñî ñõåìîé, èçîáðàæåííîé íà ðèñ. 5.6,a. Ñïðàøèâàåòñÿ, ìîæíî ëè, âûéäÿ èç íåêîòîðîãî ïóíêòà â ãîðîäå, âåðíóòüñÿ îáðàòíî, ïðîéäÿ îäèí ðàç ïî êàæäîìó ìîñòó? ®
A
© ®
B C
ª
à
D
r A P PPG PP PP r P ³r D B ³ ³ ³ ³³ ³ r C ³
© ª
Ðèñ. 5.7
á
Äàäèì ãðàôîâîå ïðåäñòàâëåíèå ñõåìû íà ðèñ. 5.7,à, îòîáðàçèâ ÷åòûðå ó÷àñòêà ñóøè A,B,C,D, ðàçäåëåííûå ðåêîé, ÷åòûðüìÿ âåðøèíàìè A, B, C, D, à ñåìü ìîñòîâ, ñâÿçûâàþùèõ ýòè ó÷àñòêè, ñåìüþ ðåáðàìè ìóëüòèãðàôà G, êàê ïîêàçàíî íà ðèñ. 5.7,á. Ïðè òàêîì ïðåäñòàâëåíèè çàäà÷ó î êåíèãñáåðãñêèõ ìîñòàõ ìîæíî ñôîðìóëèðîâàòü èíà÷å: åñòü ëè â ãðàôå G öèêë, ñîäåðæàùèé âñå åãî ðåáðà?  äàííîì ñëó÷àå îòâåò îòðèöàòåëåí â ñîîòâåòñòâèè ñî ñëåäóþùåé òåîðåìîé, íîñÿùåé òàêæå èìÿ Ýéëåðà. Òåîðåìà 5.1 Ñâÿçíûé íåîðèåíòèðîâàííûé ãðàô ñîäåð æèò ýéëåðîâ öèêë òîãäà è òîëüêî òîãäà, êîãäà ñòåïåíè âñåõ åãî âåðøèí ÷åòíû. ¤ Íåîáõîäèìîñòü. Ïóñòü ãðàô ñîäåæèò ýéëåðîâ öèêë. Ïîñòàâèì â ñîîòâåòñòâèå êàæäîé âåðøèíå ñ÷åò÷èê ñ íóëåâûì íà÷àëüíûì çíà÷åíèåì. Îáîéäåì öèêë, íà÷èíàÿ ñ ïðîèçâîëüíîãî ðåáðà è óâåëè÷èâàÿ íà 2 ñîäåðæèìîå ñ÷åò÷èêà âåðøèíû ïðè êàæäîì åå ïðîõîæäåíèè, ÷òî ñîîòâåòñòâóåò èñïîëüçîâàíèþ äâóõ î÷åðåäíûõ èíöèäåíòíûõ âåðøèíå ðåáåð. Î÷åâèäíî, ÷òî ïî îêîí÷àíèè îáõîäà, êîãäà âñå ðåáðà èñïîëüçîâàíû, ñ÷åò÷èêè áóäóò ñîäåðæàòü ñòåïåíè âåðøèí, êîòîðûå ïðè âûøåóêàçàííîì ïðèðàùåíèè ìîãóò èìåòü òîëüêî ÷åòíûå çíà÷åíèÿ. Äîñòàòî÷íîñòü. Ïóñòü ñòåïåíè âñåõ âåðøèí ãðàôà G(V,E) ÷åòíû. Òàêîé ãðàô ÿâëÿåòñÿ, ïî êðàéíåé ìåðå, äâóñâÿçíûì è, ñëåäîâàòåëüíî, ñîäåðæèò öèêë. Äëÿ ïîñòðîåíèÿ öèêëà ïðîèçâîëüíî âûáåðåì îäíó èç âåðøèí. Ïóñòü ýòî áóäåò v1 . Ïåðåéäåì ïî íåêîòîðîìó ðåáðó â ñìåæíóþ âåðøèíó, ïîìåòèâ ðåáðî êàê 103
èñïîëüçîâàííîå. Áóäåì ïîâòîðÿòü ýòó îïåðàöèþ, êàæäûé ðàç âûáèðàÿ íîâîå ðåáðî, ïîêà íå îêàæåìñÿ â èñõîäíîé âåðøèíå v1 . Îáîçíà÷èì íàéäåííûé öèêë êàê C1 . Åñëè C1 âêëþ÷àåò âñå ðåáðà ãðàôà G, òî ýòî è áóäåò òðåáóåìûé ýéëåðîâ öèêë.  ïðîòèâíîì ñëó÷àå ðàññìîòðèì ãðàô G1 (V, E−EC1 ), ïîëó÷àþùèéñÿ ïðè óäàëåíèè èç G âñåõ ðåáåð, îòíîñÿùèõñÿ ê C1 . Ýòîò ãðàô ìîæåò áûòü êàê ñâÿçíûì, òàê è íåñâÿçíûì, íî ëþáàÿ åãî êîìïîíåíòà â ñèëó ñâÿçíîñòè G èìååò õîòÿ áû îäíó îáùóþ âåðøèíó ñ ãðàôîì C1 . Òàê êàê êàæäàÿ âåðøèíà â G è C1 èìååò ÷åòíóþ ñòåïåíü, òî è â G1 ñòåïåíè âñåõ âåðøèí äîëæíû áûòü ÷åòíûìè. Ïóñòü v2 îáùàÿ âåðøèíà G1 è C1 , íå ÿâëÿþùàÿñÿ èçîëèðîâàííîé â ãðàôå G1 . Íàéäåì â G1 öèêë, ñîäåðæàùèé ýòó âåðøèíó, è îáîçíà÷èì åãî êàê C2 . Îáúåäèíèì öèêëû C1 è C2 , êàê ïîêàçàíî íà ðèñ. 5.8. Åñëè öèêë vs1 6
-s s @ v2 @ Rs C @ Rs C1 @ 2 @ I s s @s
C1 = v1 → . . . →v2 → . . . →v1 C2 = v2 → . . . →v2
C2
z }| { C1 ∪C2 = v1 → . . . →v2 → . . . → v2 → . . . →v1 | {z } | {z } Ðèñ. 5.8
C10
C100
C1 ∪C2 ýéëåðîâ, òî ïðîöåññ çàâåðøåí.  ïðîòèâíîì ñëó÷àå ñëåäóåò ïåðåéòè ê ðàññìîòðåíèþ ãðàôà G2 (V, E−EC1 −EC2 ), îòûñêàòü â íåì öèêë C3 , êîòîðûé ñëåäóåò îáúåäèíèòü ñ C1 è C2 è ò. ä. Òàê êàê êàæäûé ðàç êîëè÷åñòâî íåèñïîëüçîâàííûõ ðåáåð óìåíüøàåòñÿ, òî îïèñàííûé ïðîöåññ êîíå÷åí è äîëæåí çàêîí÷èòüñÿ ïîñòðîåíèåì ýéëåðîâà öèêëà. ¢ Àíàëîãè÷íàÿ òåîðåìà äëÿ îðãðàôîâ ôîðìóëèðóåòñÿ òàê: Òåîðåìà 5.2 Ñâÿçíûé îðèåíòèðîâàííûé ãðàô ñîäåðæèò ýéëåðîâ îðöèêë (îðöåïü) òîãäà è òîëüêî òîãäà, êîãäà ïîëóñòåïåíè èñõîäà è ïîëóñòåïåíè çàõîäà âñåõ âåðøèí óäîâëåòâîðÿþò óñëîâèÿì: deg+ v = deg− v ∀v ∈ V â ñëó÷àå îðöèêëà; deg+ v = deg− v ∀v 6= (u èëè w) è deg+ u = deg− u+1, deg− w = deg+ w+1 â ñëó÷àå îðöåïè, ãäå u íà÷àëüíàÿ, w êîíå÷íàÿ âåðøèíû öåïè.
104
5.2.2. Àëãîðèòì ïîèñêà ýéëåðîâà öèêëà Ñóùåñòâóåò î÷åíü ïðîñòàÿ è íàãëÿäíàÿ ïðîöåäóðà îòûñêàíèÿ ýéëåðîâà öèêëà, èçâåñòíàÿ êàê àëãîðèòì Ôëåðè, êîòîðàÿ çàêëþ÷àåòñÿ â ñëåäóþùåì. Íà÷èíàÿ ñ íåêîòîðîé âåðøèíû, ïðîèçâîëüíûì îáðàçîì "èäåì" ïî ñìåæíûì ðåáðàì ãðàôà, óäàëÿÿ ïðîéäåííîå ðåáðî è âåðøèíó, ñòàâøóþ ïîñëå óäàëåíèÿ ðåáðà èçîëèðîâàííîé. Íå ïðîõîäèì ïî ðåáðó, åñëè ïîñëå åãî óäàëåíèÿ ãðàô ñòàíîâèòñÿ íåñâÿçíûì. Íåòðóäíî ïîêàçàòü, ÷òî ïðîöåññ çàâåðøàåòñÿ ïîñëå îáõîäà (óäàëåíèÿ) âñåõ ðåáåð, à çíà÷èò, è âåðøèí ãðàôà, è îáÿçàòåëüíî â èñõîäíîé âåðøèíå, ñòåïåíü êîòîðîé ê ýòîìó ìîìåíòó ñòàíîâèòñÿ íóëåâîé. Îòìåòèì, ÷òî êàæäàÿ âåðøèíà (â îòëè÷èå îò ðåáåð, ïðîõîäèìûõ îäíîêðàòíî), âîîáùå ãîâîðÿ, ìîæåò áûòü ïðîéäåíà íåîäíîêðàòíî, òî÷íåå deg vi /2 ðàç. Ïîðÿäîê, â êîòîðîì áûëè ïðîéäåíû ðåáðà, îïðåäåëÿåò êîíôèãóðàöèþ íàéäåííîãî öèêëà. Ïóñòü, íàïðèìåð, òðåáóåòñÿ íàéòè ýéëåðîâ öèêë â ãðàôå, ïðåäñòàâëåííîì íà ðèñ. 5.9,à. Íåïîñðåäñòâåííîé ïðîâåðêîé vr 1 vr 2 @ @ @r v4 @r v5 v3 r @ @ @r @r v6 v7 a
vr 1 1- vr 2 5 2 ¡@ @ 6@ R ª r v3 4 3 r¡ v4 @r v5 @ ¡@ Rr ª 6@ @r¡ v6 v7 á Ðèñ. 5.9
vr 1 - vr 2 ¡@ I ¡ µ@ 6R r¡ ª v3 r¡ @ v4 @r v5 ¡@ ?¡ @ I ¡ R r¡µ @rª ¾ @ v6 v7 â
óáåæäàåìñÿ, ÷òî ñòåïåíè âñåõ âåðøèí ÷åòíû, ò. å. ãðàô ýéëåðîâ.  êà÷åñòâå íà÷àëüíîé âåðøèíû âûáåðåì v1 . Íà ïåðâîé èòåðàöèè ïåðåéäåì â âåðøèíó v2 è óäàëèì ðåáðî {v1 , v2 } 18 . Íà âòîðîé èòåðàöèè ïåðåéäåì â âåðøèíó v4 è óäàëèì ðåáðî {v2 , v4 }, íà òðåòüåé â v6 , óäàëèâ {v4 , v6 }, çàòåì âíîâü ïîïàäàåì â v1 , ïîòîì åùå ðàç â v4 è, íàêîíåö, â v7 . Òî, ÷òî ïîëó÷èòñÿ ïîñëå ýòîãî, ïðåäñòàâëåíî íà ðèñ. 5.9,á. Âåðøèíà v4 îêàçàëàñü èçîëèðîâàííîé è ìîæåò áûòü óäàëåíà. Ðåáðî {v7 , v6 } ñòàëî ìîñòîì. Ïîýòîìó äîïóñòèì ïåðåõîä òîëüêî â v2 èëè â v5 . Ïåðåéäåì â âåðøèíó v5 , óäàëèâ ðåáðî {v7 , v5 }, 18 Óäàëåííûå
ðåáðà ïðîíóìåðîâàíû è îòîîáðàæåíû òîíêèìè ëèíèÿìè ñî ñòðåëêàìè, ïîêàçûâàþùèìè íàïðàâëåíèå îáõîäà.
105
êàê ïîêàçàíî íà ðèñ.5.9,â. Òåïåðü "îñòàòîê" ãðàôà ïðîñòàÿ öåïü (v5 , v2 , v7 , v6 , v3 , v1 ), ñëåäîâàòåëüíî, äàëüíåéøèå ïåðåõîäû îïðåäåëåíû îäíîçíà÷íî. Îêîí÷àòåëüíî ïîëó÷àåì (v1 , v2 , v4 , v6 , v1 , v4 , v7 , v5 , v2 , v7 , v6 , v3 , v1 ) ýéëåðîâ öèêë. Âûøåîïèñàííàÿ ïðîöåäóðà ïîèñêà ýéëåðîâà öèêëà îðèåíòèðîâàíà ãëàâíûì îáðàçîì íà ðàáîòó ñ èçîáðàæåíèåì ãðàôà è èäåàëüíî ïîäõîäèò äëÿ ðåøåíèÿ çàäà÷-ãîëîâîëîìîê òèïà "íàðèñîâàòü ãðàô (êàðòèíêó), íå îòðûâàÿ êàðàíäàø îò áóìàãè è íå ïîâòîðÿÿ ëèíèé". Åñëè æå ãðàô çàäàí èíà÷å, íàïðèìåð â ìàòðè÷íîé ôîðìå, èëè â âèäå ñïèñêà, òî, ÷òîáû óñòàíîâèòü, íå ÿâëÿåòñÿ ëè î÷åðåäíîå âûáèðàåìîå ðåáðî ìîñòîì (íå ïðèáåãàÿ ê èçîáðàæåíèþ), òðåáóþòñÿ äîïîëíèòåëüíûå îïåðàöèè. Ïîýòîìó äëÿ êîìïüþòåðíîé ðåàëèçàöèè ëó÷øå ïîäõîäèò àëãîðèòì, îñíîâàííûé íà ïðîöåäóðå, èñïîëüçîâàííîé ïðè äîêàçàòåëüñòâå òåîðåìû 5.1, â ñîîòâåòñòâèè ñ êîòîðûì ïåðâîíà÷àëüíî íàéäåííûé öèêë ïîñëåäîâàòåëüíî ðàñøèðÿåòñÿ çà ñ÷åò îáúåäèíåíèÿ ñ äðóãèìè öèêëàìè, ïîêà íå áóäóò çàäåéñòâîâàíû âñå ðåáðà. Ôîðìàëèçîâàííàÿ çàïèñü àëãîðèòìà èìååò âèä:
begin select v∈V ;
{ÝÉËÅÐ} { Âûáðàòü ïðîèçâîëüíóþ âåðøèíó } v→S; { è çàíåñòè â ñòåê. } while S6=∅ do { Ïîêà ñòåê íå ïóñò, âûïîëíÿòü äåéñòâèÿ: } if Γ(s1 )6=∅ { åñëè îêðóæåíèå âåðøèíû s1 , } { íàõîäÿùåéñÿ â âåðõóøêå ñòåêà, íå ïóñòî, } { òî } select u∈Γ(s1 ); { âûáðàòü îäíó èç åå } u→S; { "ñîñåäîê" è çàíåñòè â ñòåê, } then Γ(s1 ) := Γ(s1 )−{u}; { à çàòåì óäàëèòü } Γ(u) := Γ(u)−{s1 } { ïðîéäåííîå ðåáðî; } { èíà÷å } ( S→v; { ïîëó÷èòü èç ñòåêà } output(v) { è âûâåñòè î÷åðåäíóþ } else { âåðøèíó öèêëà. } end. {ÝÉËÅÐ}
Ïðåäïîëàãàåòñÿ, ÷òî ãðàô çàäàí ñïèñêîì âåðøèí (ñïèñêîì ñìåæíîñòè), à â êà÷åñòâå îñíîâíîé ðàáî÷åé ñòðóêòóðû äàííûõ, ïîçâîëÿþùåé ëåãêî çàôèêñèðîâàòü ïîñëåäîâàòåëüíîñòü ïðîõîæäåíèÿ âåðøèí, èñïîëüçîâàí ñòåê S. 106
Ðàññìîòðèì ðàáîòó àëãîðèòìà íà ïðèìåðå. Ïóñòü òðåáóåòñÿ íàéòè ýéëåðîâ öèêë äëÿ ãðàôà, èçîáðàæåííîãî íà ðèñ. 5.10 è çàäàííîãî ñïèñêàìè ñìåæíîñòè. Ôàêòè÷åñêè ìû èìååì ìóëüsv3
v1 v2 v3 v4
v2 s @ @sv4
v1 s
: : : :
v2 , v 2 v1 , v 1 , v 3 , v 4 v2 , v 4 v2 , v 3
Ðèñ. 5.10
òèãðàô, ïîýòîìó ñïèñêè äëÿ âåðøèí v1 è v2 ñîäåðæàò ïîâòîðÿþùèåñÿ ýëåìåíòû, îòðàæàÿ íàëè÷èå ïàðàëëåëüíûõ ðåáåð. Âûáåðåì â êà÷åñòâå íà÷àëüíîé âåðøèíó v1 è çàíåñåì åå â ñòåê. Äàëüíåéøèå äåéñòâèÿ îòðàæåíû â òàáë. 5.1 è 5.2. Èòåðàöèÿ
1 2 3 4 5 6
Èòåðàöèÿ
v1 v2 v3 v4
: : : :
Ñòåê
v1 v1 v2 v1 v2 v1 v1 v2 v1 v2 v3 v1 v2 v3 v4
S← Óäàëÿåìîå S→ ðåáðî v2 v1 − v3 v4 v2
{v1 , v2 } {v2 , v1 } − {v2 , v3 } {v3 , v4 } {v4 , v2 }
− − v1 − − −
Èòåðàöèÿ
7 8 9 10 11
Òàáëèöà 5.1 Ñòåê
S→
v1 v2 v3 v4 v2 v1 v2 v3 v4 v1 v2 v3 v1 v2 v1 ∅
v2 v4 v3 v2 v1 −
Òàáëèöà 5.2 1
2
3
4
5
6
7
6 v2 , v2 6 v1 , v1 , v3 , v4 v2 , v4 v2 , v3
6 v2 6 v 1 , v3 , v 4 v2 , v4 v2 , v3
∅ v3 , v 4 v2 , v 4 v2 , v 3
∅ 6 v 3 , v4 6 v 2 , v4 v 2 , v3
∅ v4 6 v4 v2 , 6 v3
∅ 6 v4 ∅ 6 v2
∅ ∅ ∅ ∅
 òàáë. 5.1 ïðåäñòàâëåíû îïåðàöèè ñî ñòåêîì, à â òàáë. 5.2 ïîêàçàíî, êàê èçìåíÿþòñÿ ñïèñêè âåðøèí îò èòåðàöèè ê èòåðàöèè (ñòîëáöû) ïî ìåðå óäàëåíèÿ ðåáåð. Ñíà÷àëà â âåðøèíå ñòåêà íàõîäèòñÿ v1 . Ïîýòîìó â ñïèñêå ñìåæíîñòè äëÿ v1 ïðîèçâîëüíî âûáèðàåì íåêîòîðóþ âåðøè-
107
íó (â äàííîì ñëó÷àå ýòî ìîæåò áûòü òîëüêî v2 ) è çàíîñèì åå â ñòåê. Óäàëÿåì ïðîéäåííîå ðåáðî {v1 , v2 }. Äëÿ ýòîãî èç ñïèñêà ñìåæíîñòè äëÿ v1 èñêëþ÷àåì âåðøèíó v2 , à èç ñïèñêà ñìåæíîñòè äëÿ v2 âåðøèíó v1 . Òåïåðü ñîñòîÿíèå ñòåêà ñîîòâåòñòâóåò âòîðîé ñòðîêå òàáë. 5.1, à âèä ñïèñêà ñìåæíîñòè âòîðîìó ñòîëáöó òàáë. 5.2. Íà âòîðîé èòåðàöèè â âåðøèíå ñòåêà ñîäåðæèòñÿ v2 . Òåïåðü âûáèðàåì âåðøèíó èç òåêóùåãî ñïèñêà ñìåæíîñòè äëÿ v2 (ñì. âòîðîé ñòîëáåö òàáë. 5.2). Ïóñòü ýòî áóäåò âåðøèíà v1 . Çàíåñåì åå â ñòåê è óäàëèì ðåáðî {v2 , v1 }.  ðåçóëüòàòå íîâîå ñîñòîÿíèå ñòåêà ñîîòâåòñòâóåò òðåòüåé ñòðîêå òàáë. 5.1, à âèä ñïèñêà ñìåæíîñòè òðåòüåìó ñòîëáöó òàáë. 5.2. Íà òðåòüåé èòåðàöèè ñïèñîê ñìåæíîñòè äëÿ âåðøèíû v1 , íàõîäÿùåéñÿ â âåðõóøêå ñòåêà, îêàçàëñÿ ïóñòûì. Âûòàëêèâàåì åå èç ñòåêà. Ýòî îçíà÷àåò, ÷òî â ãðàôå íàéäåí öèêë, ñîäåðæàùèé âñå ðåáðà, èíöèäåíòíûå v1 , íî íå ÿâëÿþùèéñÿ ýéëåðîâûì. Íà òðåõ ïîñëåäóþùèõ èòåðàöèÿõ â ñòåê çàíîñÿòñÿ âåðøèíû v3 , v4 , v2 , à èç ñïèñêîâ ñìåæíîñòè óäàëÿþòñÿ âñå îñòàâøèåñÿ ýëåìåíòû. Òàêèì îáðàçîì, ê íà÷àëó ñåäüìîé èòåðàöèè ñîäåðæèìîå ñòåêà âûãëÿäèò òàê: v1 , v2 , v3 , v4 , v2 , ïðè÷åì âåðøèíå ñîîòâåòñòâóåò ñàìûé ïðàâûé ýëåìåíò v2 . Òàê êàê âñå ñïèñêè ñìåæíîñòè òåïåðü ïóñòû, â òå÷åíèå ïîñëåäíèõ ïÿòè èòåðàöèé (7 11) âûïîëíÿåòñÿ òîëüêî âûòàëêèâàíèå âåðøèí èç ñòåêà. Ñïèñîê âñåõ âåðøèí, âûäàííûõ èç ñòåêà (â ïîðÿäêå âûäà÷è), èìååò âèä (v1 ,v2 ,v4 ,v3 ,v2 ,v1 ) è, êàê íåòðóäíî çàìåòèòü, ñîîòâåòñòâóåò ýéëåðîâó öèêëó äàííîãî ãðàôà.  ýòîì ãðàôå åñòü åùå îäèí ýéëåðîâ öèêë (v1 ,v2 ,v3 ,v4 ,v2 ,v1 ). ßñíî, ÷òî ëþáûå äâà òàêèõ öèêëà îòëè÷àþòñÿ äðóã îò äðóãà òîëüêî ïîðÿäêîì îáõîäà ðåáåð.
5.2.3. Î êîëè÷åñòâå ýéëåðîâûõ ãðàôîâ Çàäà÷à îïðåäåëåíèÿ ÷èñëà ýéëåðîâûõ ãðàôîâ ÿâëÿåòñÿ äîñòàòî÷íî ñëîæíîé. Ðàññìîòðåíèþ ýòîé, à òàêæå äðóãèõ çàäà÷ ïåðåñ÷åòà è ïåðå÷èñëåíèÿ ãðàôîâ ïîñâÿùåíà ðàáîòà [4]. Çäåñü îãðàíè÷èìñÿ òåîðåìîé, õàðàêòåðèçóþùåé äîëþ ýéëåðîâûõ ãðàôîâ â îáùåì ÷èñëå ïðîñòûõ ïîìå÷åííûõ ãðàôîâ.
108
Òåîðåìà 5.3 Ïî÷òè âñå ãðàôû íå ÿâëÿþòñÿ ýéëåðîâûìè. ¤ Ïóñòü G(n) ìíîæåñòâî âñåõ ïðîñòûõ ïîìå÷åííûõ ãðàôîâ ïîðÿäêà n , à G÷ (n) ìíîæåñòâî âñåõ ãðàôîâ èç G(n) , íå èìåþùèõ âåðøèí íå÷åòíîé ñòåïåíè. Ëþáîé ãðàô èç G÷ (n) ìîæíî ïîëó÷èòü, äîáàâëÿÿ ê íåêîòîðîìó ãðàôó èç G(n−1) åùå îäíó âåðøèíó è ñîåäèíÿÿ åå ñî âñåìè âåðøèíàìè íå÷åòíîé ñòåïåíè (åñëè òàêîâûå èìåþòñÿ), ïîýòîìó |G÷ (n)|<|G(n−1)| . Òàê êàê ìíîæåñòâî ýéëåðîâûõ ãðàôîâ Gý (n) ÿâëÿåòñÿ ïîäìíîæåñòâîì G÷ (n) , çàïèøåì |Gý (n)|<|G(n−1)| . Ðàçäåëèâ îáå ÷àñòè íåðàâåíñòâà íà |G(n)| è ó÷èòûâàÿ, ÷òî |G(n)|=2C(n,2) è |G(n−1)|=2C(n−1,2) , ïîëó÷èì |Gý (n)|/|G(n)| < 2C(n−1,2)−C(n,2) . Óïðîñòèâ ïîêàçàòåëü ñòåïåíè (n−1)! n! C(n−1, 2) − C(n, 2) = 2!(n−3)! − 2!(n−2)! = (n−1)(n−2) − n(n−1) = 2 2 = −(n−1) , îêî÷àòåëüíî èìååì, ÷òî |Gý (n)|/|G(n)| < 2−(n−1) , à ïåðåõîäÿ ê ïðåäåëó ïðè n→∞ , lim |Gý (n)|/|G(n)|=0 . Ýòî n→∞ çíà÷èò, ÷òî ïðè íåîãðàíè÷åííîì óâåëè÷åíèè ÷èñëà âåðøèí, â îáùåì ÷èñëå ãðàôîâ äîëÿ ýéëåðîâûõ ñòàíîâèòñÿ èñ÷åçàþùå ìàëîé, ò. å. |Gý (n)| = o|G(n)| . ¢
5.2.4. Çàäà÷à ïî÷òàëüîíà Ïóñòü G ñâÿçíûé ãðàô, èìåþùèé k âåðøèí íå÷åòíîé ñòåïåíè è çàäàííûé ìàòðèöåé âåñîâ ðåáåð. Òðåáóåòñÿ íàéòè êðàò÷àéøèé çàìêíóòûé ìàðøðóò, ïðîõîäÿùèé ïî âñåì ðåáðàì ãðàôà.  êà÷åñòâå ïðèëîæåíèé, ãäå ìîæåò ïîòðåáîâàòüñÿ ðåøåíèå ýòîé èëè ñõîäíîé çàäà÷è, ìîæíî óêàçàòü êîíòðîëü ðàçëè÷íûõ êîììóíèêàöèîííûõ ñåòåé (äîðîæíûõ, ýëåêòðè÷åñêèõ, ãàçîâûõ è ò. ï.), êîãäà íåîáõîäèìî ïðîâåðÿòü âñå ïðîòÿæåííûå êîìïîíåíòû ñåòè.  ëèòåðàòóðå ïî òåîðèè ãðàôîâ ñôîðìóëèðîâàííàÿ âûøå çàäà÷à íàçûâàåòñÿ çàäà÷åé ïî÷òàëüîíà. Ïîñëåäíåìó äàëåêî íå áåçðàçëè÷íî çíàíèå íàèáîëåå êîðîòêîãî çàìêíóòîãî ìàðøðóòà îáõîäà âñåõ óëèö ñâîåãî ó÷àñòêà (èëè íåêîòîðîãî èõ ïîäìíîæåñòâà). Àíàëîãè÷íàÿ çàäà÷à ñòîèò è ïåðåä êóðüåðîì áîëüøîãî ó÷ðåæäåíèÿ, äîñòàâëÿþùèì äîêóìåíòû îò îäíîãî "èñòî÷íèêà" ê ðàçëè÷íûì ïîëó÷àòåëÿì.
109
Ïîêàæåì, êàê ìîæíî ðåøèòü ðàññìàòðèâàåìóþ çàäà÷ó. ßñíî, ÷òî â ãðàôå ñóùåñòâóþò k(k−1)/2 êðàò÷àéøèõ ïðîñòûõ öåïåé, ñâÿçûâàþùèõ âñå ïàðû âåðøèí íå÷åòíîé ñòåïåíè. Âûáåðåì èç íèõ k/2 öåïåé, òàêèõ, ÷òî à) íèêàêèå äâå íå èìåþò îäèíàêîâûõ êîíå÷íûõ âåðøèí; á) ñóììàðíàÿ äëèíà âñåõ ýòèõ öåïåé ìèíèìàëüíà. Çàìåòèì, ÷òî âûáðàííûå öåïè íå ìîãóò èìåòü îáùèõ ðåáåð, êàê íà ðèñ. 5.11, ÷òî ïðîòèâîðå÷èëî áû ïóíêòó á. Äåéñòâèòåëüíî, åñëè öåïü (v1 , . . . , v2 ) èìååò îáùåå ðåáðî e ñ öåïüþ (v3 , . . . , v4 ), òî, óäàëèâ ýòî ðåáðî, ïîëó÷èì äâå öåïè, ñâÿçûâàþùèõ v1 ñ v3 è v2 ñ v4 , ñóììàðíàÿ äëèíà êîòîðûõ ìåíüøå, ÷åì ó äâóõ ïåðâûõ, íà âåëè÷èíó, s s v1 s H ðàâíóþ óäâîåííîìó âåñó ðåáðà Hsv2 @ e @s s e. Ïðîäóáëèðóåì ðåáðà âñåõ âûs s v3 H áðàííûõ öåïåé â ãðàôå G.  ðåHs s HHsv4 çóëüòàòå ïîëó÷èì ýéëåðîâ ìóëüòèãðàô G0 , â êîòîðîì íåòðóäíî Ðèñ. 5.11 íàéòè ýéëåðîâ öèêë. Ýòîò öèêë è îïðåäåëÿåò èñêîìûé ìàðøðóò, îòëè÷àÿñü îò íåãî òåì, ÷òî âìåñòî îáõîäà äâóõ ïàðàëëåëüíûõ ðåáåð â ãðàôå G0 äâàæäû ïðîõîäèò ïî ñîîòâåòñòâóþùåìó ðåáðó â ãðàôå G. Î÷åâèäíî, ÷òî äëèíà ìàðøðóòà ðàâíà ñóììå äëèí ðåáåð G0 . vs1 @
vs1 7 vs2 7 vs3 @4 9 3 6 @ 1 @ 3 @ s v5 5 sv6 v4 s 2 @ 2 9 6 3 @ 6 @ 4@ s s s v7 4 v8 3 v9 G
vs2
vs3
@
v4 s
s v7
@ @ s v5 @ @ s v8 G0
sv6 @ @s v9
Ðèñ. 5.12
Ðàññìîòðèì ïðèìåð. Ïóñòü òðåáóåòñÿ íàéòè "ìàðøðóò ïî÷òàëüîíà" â ãðàôå G, èçîáðàæåííîì íà ðèñ. 5.12 (âåñà ðåáåð ïðîñòàâëåíû íà ðèñóíêå). Èìåþòñÿ ÷åòûðå âåðøèíû íå÷åòíîé ñòåïåíè v1 , v3 , v7 è v9 , èç êîòîðûõ ìîæíî ñîñòàâèòü C42 =6 110
ðàçëè÷íûõ ïàð. Íàéäåì êðàò÷àéøóþ öåïü äëÿ êàæäîé ïàðû. Ñ ýòîé öåëüþ ñîñòàâèì ìàòðèöó âåñîâ ãðàôà è, èñïîëüçóÿ àëãîðèòì Ôëîéäà, ïîëó÷èì ìàòðèöó D(9) äëèí êðàò÷àéøèõ ïóòåé (öåïåé) ìåæäó âñåìè âåðøèíàìè19 . Âûäåëèì èç íåå ïîä(9) ìàòðèöó D1,3,7,9 , îáðàçîâàííóþ ñòðîêàìè è ñòîëáöàìè ñ íîìåðàìè 1, 3, 7 è 9. Ýòî ìàòðèöà äëèí âñåõ êðàò÷àéøèõ öåïåé, ñâÿçûâàþùèõ òîëüêî âåðøèíû íå÷åòíîé ñòåïåíè â ðàññìàòðè(9) âàåìîì ãðàôå. Îáå ìàòðèöû D(9) è D1,3,7,9 ïðèâåäåíû íèæå: v1 v2 v3 v4 5 12 6 0 7 3 7 0 10 3 10 0 1 8 2 6 3 7 7 9 8 7 4 5 5 8 5 8 6
v1 0 v2 5 v3 12 v4 6 D(9) = v5 4 v6 9 v7 10 v8 v9
v5 4 1 8 2 0 5 6 3 4
v6 v7 9 10 6 7 3 9 7 8 5 6 0 6 6 0 2 4 5 7
v8 7 4 5 5 3 2 4 0 3
v9 8 5 8 6 (9) D 4 , 1,3,7,9 = 5 7 3 0
v1 v3 v7 v1 0 12 10 v3 12 0 9 v7 10 9 0 v9 8 8 7
v9 8 8 . 7 0
(9)
Òåïåðü, èñïîëüçóÿ ìàòðèöó D1,3,7,9 , ñëåäóåò âûáðàòü ïàðó öåïåé, îòâå÷àþùèõ ïðèâåäåííûì ðàíåå óñëîâèÿì. Èìååòñÿ âñåãî òðè âàðèàíòà îáðàçîâàíèÿ òàêèõ ïàð öåïåé, ïðåäñòàâëåííûå â òàáë. 5.3. Ïîýòîìó çàäà÷à ðåøàåòñÿ ïóòåì ïðîñòîãî ïåðåáîðà. Ïàðà öåïåé
1 2 3
Òàáëèöà 5.3
Öåïü
Äëèíà
Öåïü
Äëèíà
v1 − v3 v1 − v7 v1 − v9
12 10 8
v7 − v9 v3 − v9 v3 − v7
7 8 9
Îáùàÿ äëèíà
12+7=19 10+8=18 8+9=17
Êàê ñëåäóåò èç òàáëèöû, íàèëó÷øèì ÿâëÿåòñÿ âàðèàíò 3. Cëåäîâàòåëüíî, äóáëèðîâàíèþ ïîäëåæàò ðåáðà, îáðàçóþùèå êðàò÷àéøèå öåïè èç v1 â v9 è èç v3 â v7 . Íåïîñðåäñòâåííî ïî ðèñ. 5.12 ëåãêî óñòàíîâèòü, ÷òî ýòî öåïè (v1 , v5 , v9 ) è 19 Â
îáùåì ñëó÷àå, êðîìå D(n) , íåîáõîäèìî âû÷èñëÿòü è ìàòðèöó âåðøèí-ïðåäøåñòâåííèö P(n) (ñì. ðàçä. 4).
111
(v3 , v6 , v8 , v7 ). Ïîñëå äóáëèðîâàíèÿ ïÿòè âõîäÿùèõ â íèõ ðåáåð ïîëó÷àåì ýéëåðîâ ìóëüòèãðàô G0 , èçîáðàæåííûé íà ðèñ. 5.12. Èñïîëüçóÿ, àëãîðèòì Ôëåðè, íàõîäèì ñëåäóþùèé âàðèàíò ýéëåðîâà öèêëà â ãðàôå G0 : (v1 , v2 , v3 , v6 , v3 , v5 , v2 , v4 , v1 , v5 , v4 , v7 , v8 , v7 , v5 , v6 , v9 , v8 , v6 , v8 , v5 , v9 , v5 , v1), êîòîðûé îäíîâðåìåííî ÿâëÿåòñÿ è êðàò÷àéøèì çàìêíóòûì ìàðøðóòîì ïî÷òàëüîíà â ãðàôå G ïðè óñëîâèè, ÷òî ðåáðà {v1 ,v5 },{v5 ,v9 },{v3 ,v6 },{v6 ,v8 }, {v7 , v8 } îáõîäÿòñÿ äâàæäû.  ðàññìîòðåííîì ïðèìåðå ãðàô ñîäåðæàë òîëüêî ÷åòûðå âåðøèíû íå÷åòíîé ñòåïåíè. Ïîýòîìó ïîèñê îïòèìóìà ïîòðåáîâàë àíàëèçà âñåãî òðåõ âàðèàíòîâ ðåøåíèÿ. Ïðè áîëüøåì ÷èñëå âåðøèí êîëè÷åñòâî âàðèàíòîâ áûñòðî âîçðàñòàåò. Òàê, åñëè k=6, òî ñóùåñòâóåò C62 =15 ðàçëè÷íûõ êðàò÷àéøèõ öåïåé, ñâÿçûâàþùèõ ïàðû âåðøèí íå÷åòíîé ñòåïåíè. Ïðè ýòîì ÷èñëî âîçìîæíûõ êîìáèíàöèé ïî òðè öåïè ñ ðàçëè÷íûìè êîíöåâûìè âåðøèíàìè ðàâíî 15. Åñëè k=8, òî ÷èñëî âîçìîæíûõ êîìáèíàöèé ñîñòàâëÿåò 105, ïðè÷åì êàæäàÿ âêëþ÷àåò â ñåáÿ ïî ÷åòûðå öåïè.  îáùåì æå ñëó÷àå êîëè÷åñòâî êîìáèíàöèé, êîòîðûå ïðèäåòñÿ àíàëèçèðîâàòü, îïðåäåëÿåòñÿ êàê 3·5·7. . .(k−1), ãäå k ÷èñëî âåðøèí íå÷åòíîé ñòåïåíè. Òàêèì îáðàçîì, ôàêòè÷åñêè ïðèõîäèòñÿ ðåøàòü ñàìîñòîÿòåëüíóþ çàäà÷ó, ýêâèâàëåíòíóþ çàäà÷å îòûñêàíèÿ íàèáîëüøåãî ïàðîñî÷åòàíèÿ20 ìèíèìàëüíîãî âåñà â ïîëíîì ãðàôå ñ ÷åòíûì ÷èñëîì âåðøèí.
5.3. Ãàìèëüòîíîâû öèêëû 5.3.1. Îïðåäåëåíèå è óñëîâèÿ ñóùåñòâîâàíèÿ Ãàìèëüòîíîâûì íàçûâàþò ïðîñòîé öèêë, âêëþ÷àþùèé âñå âåðøèíû ñâÿçíîãî íåîðèåíòèðîâàííîãî ãðàôà. Àíàëîãè÷íî îïðåäåëÿåòñÿ ãàìèëüòîíîâ êîíòóð äëÿ îðãðàôà. Ãðàô (îðãðàô), â êîòîðîì åñòü ãàìèëüòîíîâ öèêë (êîíòóð), íîñèò íàçûâàíèå ãàìèëüòîíîâà. 20 Ïàðîñî÷åòàíèåì
íàçûâàåòñÿ ìíîæåñòâî ðåáåð ãðàôà, âûáðàííûõ òàê, ÷òî íèêàêèå äâà èç íèõ íå ÿâëÿþòñÿ ñìåæíûìè.
112
Ñëîâî "ãàìèëüòîíîâ" â ýòèõ îïðåäåëåíèÿõ ÿâëÿåòñÿ ïðîèçâîäíûì îò èìåíè Ó. Ãàìèëüòîíà , ïðåäëîæèâøåãî ñëåäóþùóþ èãðó ïîä íàçâàíèåì "Êðóãîñâåòíîå ïóòåøåñòâèå". Êàæäîé èç äâàäöàòè âåðøèí äîäåêàýäðà ïðèïèñàíî íàçâàíèå îäíîãî èç ãîðîäîâ ìèðà. Òðåáóåòñÿ, ïåðåõîäÿ ïî ðåáðàì äîäåêàýäðà îò îäíîãî ãîðîäà ê äðóãîìó è ïîñåòèâ êàæäûé èç íèõ òîëüêî îäèí ðàç, îêàçàòüñÿ â èñõîäíîé òî÷êå. Î÷åâèäíî, ÷òî çàäà÷à ñâîäèòñÿ ê îòûñêàíèþ â ãðàôå äîäåêàýäðà (ãðàô G1 íà ðèñ. 5.13) ïðîñòîãî öèêëà, ïðîõîäÿùåãî ÷åðåç âñå âåðøèíû. r r
r r rr rr r r r rrr r r r r r r G1
r
J
J
r r Jr
J
J
J J r
r J
Jr G2
r
r r r
r r @ @r G3
Ðèñ. 5.13
 ãðàôå G2 , èçîáðàæåííîì íà ðèñ. 5.13, ãàìèëüòîíîâ öèêë îòñóòñòâóåò, íî èìååòñÿ ïðîñòàÿ öåïü, âêëþ÷àþùàÿ âñå âåðøèíû. Òàêóþ öåïü íàçûâàþò ãàìèëüòîíîâîé öåïüþ, à ñîäåðæàùèé åå ãðàô ïîëóãàìèëüòîíîâûì. Íàêîíåö, â ãðàôå G3 íà òîì æå ðèñóíêå íå ñóùåñòâóåò íè ãàìèëüòîíîâîé öåïè, íè òåì áîëåå, ãàìèëüòîíîâà öèêëà.  òàêîì ñëó÷àå ãîâîðÿò, ÷òî ãðàô íåãàìèëüòîíîâ. Ðàññìîòðèì ñëåäóþùóþ çàäà÷ó ïëàíèðîâàíèÿ, õàðàêòåðíóþ äëÿ õèìè÷åñêîé ïðîìûøëåííîñòè. Èìååòñÿ åäèíñòâåííûé êîìïëåêñ àïïàðàòóðû èëè ðåàêòîð, íà êîòîðîì ìîæíî ïðîèçâîäèòü n ðàçëè÷íûõ âèäîâ ïðîäóêöèè vi , ïðè÷åì â ëþáîé ìîìåíò âðåìåíè ïðîèçâîäèòñÿ òîëüêî îäèí âèä. Ïðè ïåðåõîäå ê ïðîèçâîäñòâó äðóãîãî âèäà â çàâèñèìîñòè îò êîíêðåòíîãî ñî÷åòàíèÿ ïðåäøåñòâóþùåãî è ïîñëåäóþùåãî âèäîâ ëèáî òðåáóåòñÿ ïîäãîòîâêà àïïàðàòóðû (íàñòðîéêà, î÷èñòêà, îõëàæäåíèå è ò. ï.), ëèáî íå òðåáóåòñÿ. Ïðîäóêòû ïðîèçâîäÿòñÿ â íåïðåðûâíîì öèêëå, òàê ÷òî ïîñëå ïðîèçâîäñòâà â çàäàííûõ êîëè÷åñòâàõ âñåõ n âèäîâ ïðîöåññ ïîâòîðÿåòñÿ. Åñòåñòâåííî âîçíèêàåò âîïðîñ î òîì, ñóùåñòâóåò ëè öèêëè÷åñêàÿ ïîñëåäîâàòåëüíîñòü ïðîèçâîäñòâà n ïðîäóêòîâ, âîîáùå íå òðåáóþùàÿ îñòàíîâîê äëÿ ïîäãîòîâêè àïïàðàòóðû. 113
Ïóñòü G îðãðàô, âåðøèíû êîòîðîãî ñîîòâåòñòâóþò ïðîäóêòàì vi è vj , à äóãè (vi , vj ) îòðàæàþò òîò ôàêò, ÷òî ïðîäóêò vj ìîæåò ïðîèçâîäèòüñÿ ïîñëå vi áåç îñòàíîâêè àïïàðàòóðû. Òåïåðü îòâåò íà ïîñòàâëåííûé âîïðîñ çàâèñèò îò òîãî, ñóùåñòâóåò ëè â ãðàôå ãàìèëüòîíîâ êîíòóð èëè íå ñóùåñòâóåò. Ñðàâíèâàÿ îïðåäåëåíèÿ ýéëåðîâà è ãàìèëüòîíîâà öèêëîâ, íåëüçÿ íå çàìåòèòü èõ ñóùåñòâåííîå ñõîäñòâî.  ïåðâîì ñëó÷àå íàêëàäûâàåòñÿ òðåáîâàíèå îäíîêðàòíîãî ïðîõîæäåíèÿ êàæäîãî ðåáðà ãðàôà (âåðøèíû ìîæíî ïðîõîäèòü íåîäíîêðàòíî), à âî âòîðîì òðåáîâàíèå îäíîêðàòíîãî ïðîõîæäåíèÿ êàæäîé âåðøèíû. È ïîñêîëüêó äëÿ ýéëåðîâûõ öèêëîâ èìååòñÿ âåñüìà ïðîñòîå íåîáõîäèìîå è äîñòàòî÷íîå óñëîâèå ñóùåñòâîâàíèÿ, åñòåñòâåííî ïðåäïîëîæèòü (â ñèëó îòìå÷åííîãî ñõîäñòâà), ÷òî è äëÿ ãàìèëüòîíîâûõ öèêëîâ åñòü ïîäîáíûé êðèòåðèé. Îäíàêî òàêîé êðèòåðèé íå íàéäåí.  íàñòîÿùåå âðåìÿ èçâåñòíî íåñêîëüêî óñëîâèé ñóùåñòâîâàíèÿ ãàìèëüòîíîâûõ öèêëîâ. Îäíî èç íèõ óñòàíàâëèâàåò ñëåäóþùàÿ òåîðåìà Îðå.
Òåîðåìà 5.4 Åñëè äëÿ ëþáîé ïàðû {v, w} íåñìåæíûõ âåð-
øèí ãðàôà G ïîðÿäêà n≥3 âûïîëíÿåòñÿ íåðàâåíñòâî deg v+ + deg w ≥ n , òî G ãàìèëüòîíîâ ãðàô.
¤ Äîïóñòèì, ÷òî ñóùåñòâóåò íåãàìèëüòîíîâ ãðàô G(V, E), â êîòîðîì äëÿ ëþáîé ïàðû íåñìåæíûõ âåðøèí âûïîëíÿåòñÿ íåðàâåíñòâî deg v + deg w ≥ n . Áóäåì äîáàâëÿòü ê ãðàôó íîâûå âåðøèíû, ñîåäèíÿÿ êàæäóþ èç íèõ ñ êàæäîé âåðøèíîé G, äî òåõ ïîð, ïîêà ïîëó÷àþùèéñÿ ïðè ýòîì ãðàô G0 (V 0 , E 0 ) íå ñòàíåò ãàìèëüòîíîâûì. Îáîçíà÷èì ÷åðåç k ìèíèìàëüíîå êîëè÷åñòâî òàêèõ äîïîëíèòåëüíûõ âåðøèí. Ïóñòü (v, p, w, . . . , v) ãàìèëüòîíîâ öèêë â ãðàôå G0 , ãäå v, w ∈ V, à p îäíà èç äîáàâëåííûõ âåðøèí. Çàìåòèì, ÷òî âåðøèíû v è w íå ÿâëÿþòñÿ ñìåæíûìè íè â G0 , íè òåì áîëåå, â G (â ïðîòèâíîì ñëó÷àå, ïðè óêàçàííîé ñòðóêòóðå öèêëà âåðøèíà p íå íóæíà, ÷òî ïðîòèâîðå÷èò ïðåäïîëîæåíèþ î ìèíèìàëüíîñòè k ). Áîëåå òîãî, ëþáàÿ âåðøèíà w0 ∈ adj w íå ìîæåò ñëåäîâàòü çà âåðøèíîé v 0 ∈ adj v, ïîòîìó ÷òî â ýòîì ñëó÷àå öèêë ïðèíèìàåò âèä (v, p, w, . . . , v 0 , w0 , . . . , v), è òîãäà îïÿòü âåðøèíà p îêàçûâàåòñÿ ëèøíåé. Äåéñòâèòåëüíî, åñëè ôðàãìåíò w, . . . , v 0 "ïåðåâåðíóòü" v 0 , . . . , w , òî öèêë ìîæíî 114
îðãàíèçîâàòü òàê: (v, v 0 , . . . , w, w0 , . . . , v), íå èñïîëüçóÿ p. Òàêèì îáðàçîì, â ãàìèëüòîíîâîì öèêëå ãðàôà G0 íå ìîæåò áûòü ôðàãìåíòîâ v 0, w0 , ò. å. çà êàæäîé âåðøèíîé, ñìåæíîé ñ v, äîëæíà ñëåäîâàòü âåðøèíà, íå ñìåæíàÿ ñ w. Ýòî âîçìîæíî ïðè óñëîâèè, ÷òî |adj w|≥ deg v, ãäå adj w ìíîæåñòâî âåðøèí, íå ñìåæíûõ ñ w. Êîëè÷åñòâî òàêèõ âåðøèí â ãðàôå G0 , î÷åâèäíî, ðàâíî n+k− deg w. Ïîýòîìó ïðèâåäåííîå óñëîâèå ìîæíî ïåðåïèñàòü òàê: n+k− deg w≥ deg v, èëè, ñîáèðàÿ ñòåïåíè â ïðàâîé ÷àñòè, n+k≥ deg w+ deg v. Ïðè ïîñòðîåíèè ãðàôà G0 ñòåïåíü êàæäîé âåðøèíû ãðàôà G óâåëè÷èëàñü íà k, çíà÷èò ïðèìåíèòåëüíî ê G íåðàâåíñòâî ïðèíèìàåò âèä n+k≥ deg w+ deg v+2k, à ñ ó÷åòîì èñõîäíîãî ïðåäïîëîæåíèÿ deg v+ deg w≥n, èìååì n+k ≥ n+2k. Ïîñëåäíåå íåðàâåíñòâî óäîâëåòâîðÿåòñÿ ëèøü ïðè k=0. Ïîýòîìó G0 =G è, ñëåäîâàòåëüíî, èñõîäíûé ãðàô ãàìèëüòîíîâ. ¢ Èç äîêàçàííîé òåîðåìû âûòåêàåò òåîðåìà Äèðàêà:
Òåîðåìà 5.5 Åñëè äëÿ ëþáîé âåðøèíû v ãðàôà G ïîðÿä-
êà n>3 âûïîëíÿåòñÿ íåðàâåíñòâî deg v≥n/2, òî G ãàìèëüòîíîâ ãðàô.
Ê ñîæàëåíèþ, ýôôåêòèâíîñòü ïðèâåäåííûõ â îáåèõ òåîðåìàõ êðèòåðèåâ îñòàâëÿåò æåëàòü ëó÷øåãî. Äåéñòâèòåëüíî, òàê êàê ñóììà ñòåïåíåé âñåõ âåðøèí ãðàôà ðàâíà óäâîåííîìó ÷èñëó åãî ðåáåð, òî î÷åâèäíî, ÷òî â ãàìèëüòîíîâîì ãðàôå, îòâå÷àþùåì óñëîâèÿì ïîñëåäíåé òåîðåìû, äîëæíî áûòü íå ìåíåå n2 /4 ðåáåð.  ÷àñòíîñòè, ïðè n=20 ýòî ñîñòàâëÿåò 100 ðåáåð. Îäíàêî ãðàô ñ òàêèì êîëè÷åñòâîì âåðøèí ìîæåò áûòü ãàìèëüòîíîâûì è ïðè ñóùåñòâåííî ìåíüøåì ÷èñëå ðåáåð. Íàïðèìåð, â ãðàôå G1 íà ðèñ. 5.13, òàêæå èìåþùåì äâàäöàòü âåðøèí, âñåãî òðèäöàòü ðåáåð, è ñòåïåíè âñåõ åãî âåðøèí ðàâíû òðåì (à íå äåñÿòè, êàê òîãî òðåáóåò òåîðåìà), íî îí ãàìèëüòîíîâ. Åùå áîëåå ðàçèòåëüíûì ïðèìåðîì ÿâëÿåòñÿ ïðîñòîé öèêë C20 , â êîòîðîì òîëüêî äâàäöàòü ðåáåð, à ñòåïåíè âåðøèí ðàâíû äâóì. Íåñêîëüêî óòðèðóÿ ñóòü äåëà, ìîæíî ñêàçàòü: äàííûå êðèòåðèè îòðàæàþò òîò î÷åâèäíûé ôàêò, ÷òî ïðè îäíîì è òîì æå ÷èñëå âåðøèí ÷åì áîëüøå â ãðàôå ðåáåð, òåì âûøå âåðîÿòíîñòü òîãî, ÷òî îí ãàìèëüòîíîâ.
115
Íèçêàÿ ýôôåêòèâíîñòü ïîäîáíûõ êðèòåðèåâ, ïî-âèäèìîìó, îáúÿñíÿåòñÿ òåì, ÷òî ãðàíèöà ìåæäó ãàìèëüòîíîâûìè è íåãàìèëüòîíîâûìè ãðàôàìè îïðåäåëÿåòñÿ íå òîëüêî âåëè÷èíîé åãî ñâÿçíîñòè, êîòîðàÿ âî ìíîãîì îïðåäåëÿåòñÿ ñòåïåíÿìè âåðøèí, íî è äðóãèìè ñòðóêòóðíûìè îñîáåííîñòÿìè ãðàôà. Íàãëÿäíûì ïîäòâåðæäåíèåì ýòîãî ìîæåò ñëóæèòü ñëåäóþùàÿ òåîðåìà, ÿâëÿþùàÿñÿ îäíèì èç íàèáîëåå ýôôåêòèâíûõ êðèòåðèåâ, êàñàþùèõñÿ ãàìèëüòîíîâûõ ãðàôîâ.
Òåîðåìà 5.6 Ëþáîé 4-ñâÿçíûé21 ïëàíàðíûé22 ãðàô ÿâëÿ-
åòñÿ ãàìèëüòîíîâûì.  ïëàíå ðàññìîòðåíèÿ âîïðîñà î êðèòåðèÿõ ãàìèëüòîíîâîñòè íåñêîëüêî "óòåøàåò" ôàêò, äåêëàðèðóåìûé ñëåäóþùåé òåîðåìîé, êîòîðàÿ îòðàæàåò òèïè÷íûé ñëó÷àé.
Òåîðåìà 5.7 Ïî÷òè âñå ãðàôû ãàìèëüòîíîâû. Ýòî çíà÷èò, ÷òî ñ ðîñòîì ÷èñëà âåðøèí äîëÿ ãàìèëüòîíîâûõ ãðàôîâ óâåëè÷èâàåòñÿ, ñòðåìÿñü â ïðåäåëå ê 1. Òàê, èç 34 ãðàôîâ, èìåþùèõ 5 âåðøèí, òîëüêî 8 ãàìèëüòîíîâûõ (23,5%), òîãäà êàê ñðåäè 156 ãðàôîâ ñ 6 âåðøèíàìè èõ óæå 48 (30,8%).
5.3.2. Ìåòîäû ïîèñêà ãàìèëüòîíîâûõ öèêëîâ  îñíîâå ýòèõ ìåòîäîâ ëåæèò òîò èëè èíîé ñïîñîá ðåàëèçàöèè ïåðåáîðà ðàçëè÷íûõ âàðèàíòîâ öåïåé. Íàèáîëåå ïðîñòûì, íî âìåñòå ñ òåì è íàèáîëåå òðóäîåìêèì ïðåäñòàâëÿåòñÿ ðåøåíèå, êîãäà ïîñëå âûáîðà âåðøèíû víà÷ ðàññìàòðèâàþòñÿ ðàçëè÷íûå ïåðåñòàíîâêè èç ìíîæåñòâà îñòàëüíûõ n−1 âåðøèí è äëÿ êàæäîé ïðîâåðÿåòñÿ íàëè÷èå â ãðàôå ñîîòâåòñòâóþùåé ãàìèëüòîíîâîé öåïè. Åñëè òàêàÿ öåïü åñòü è ïîñëåäíÿÿ âåðøèíà öåïè ñâÿçàíà ñ víà÷ , íàéäåí ãàìèëüòîíîâ öèêë. Î÷åâèäíî, ÷òî â õóäøåì ñëó÷àå ïðè ýòîì ìåòîäå ïîòðåáóåòñÿ ñôîðìèðîâàòü âñå (n−1)! ïåðåñòàíîâîê, ïðè÷åì áîëüøàÿ ÷àñòü ðàáîòû 21 Ñâÿçíîñòü
(ðåáåðíàÿ) îïðåäåëÿåòñÿ êàê íàèìåíüøåå êîëè÷åñòâî ðåáåð, óäàëåíèå êîòîðûõ ïðèâîäèò ê íåñâÿçíîìó ãðàôó. 22 Ïëàíàðíûì íàçûâàåòñÿ ãðàô, êîòîðûé ìîæåò áûòü èçîáðàæåí íà ïëîñêîñòè òàê, ÷òî íèêàêèå äâà ðåáðà íå ïåðåñåêàþòñÿ.
116
îêàçûâàåòñÿ ïðîäåëàííîé âïóñòóþ. Íà ïðàêòèêå ïðèìåíÿþò ìåòîäû ÷àñòè÷íîãî ïåðåáîðà, â îñíîâå êîòîðûõ ëåæàò ðàçëè÷íûå êðèòåðèè, ïîçâîëÿþùèå èñêëþ÷èòü ðàñìîòðåíèå âàðèàíòîâ öåïåé, îòñóòñòâóþùèõ â çàäàííîì ãðàôå. Ðàññìîòðèì äâà òàêèõ ìåòîäà, äåìîíñòðèðóþùèõ ðàçíûå ïîäõîäû ê ïîèñêó ãàìèëüòîíîâûõ öèêëîâ.
Àëãåáðàè÷åñêèé ìåòîä.  ðàçä. 4.3 áûëà ââåäåíà ìàò-
ðèöà âñåõ ìàðøðóòîâ ñ l ïðîìåæóòî÷íûìè âåðøèíàìè äëÿ âñåõ óïîðÿäî÷åííûõ ïàð âåðøèí ãðàôà, îáîçíà÷åííàÿ êàê P(l) è îïðåäåëÿåìàÿ ñ ïîìîùüþ ðåêóððåíòíîãî ñîîòíîøåíèÿ
P(l) =P0 ×P(l−1) , ãäå l=1, 2, . . . , â êà÷åñòâå P(0) áåðåòñÿ ìàòðèöà ñìåæíîñòè ãðàôà, à P0 ïîëó÷àåòñÿ èç òîé æå ìàòðèöû ñìåæíîñòè, åñëè â êàæäîì åå ñòîëáöå åäèíèöû çàìåíèòü ìåòêîé âåðøèíû, ñîîòâåòñòâóþùåé ñòîëáöó. Î÷åâèäíî, ÷òî ìàòðèöó âñåõ ãàìèëüòîíîâûõ öåïåé ãðàôà ìîæíî ïîëó÷èòü, èñêëþ÷èâ èç ìàòðèöû P(n−2) ïðîèçâåäåíèÿ ñ ïîâòîðÿþùèìèñÿ ñîìíîæèòåëÿìè (ñ÷èòàÿ è êîíå÷íûå âåðøèíû öåïåé). Äèàãîíàëüíûå ýëåìåíòû îáðàáîòàííîé òàêèì îáðàçîì ìàòðèöû P(n−2) â ñîâîêóïíîñòè îïèñûâàþò âñå ïðîñòûå öèêëû ãðàôà, ñîäåðæàùèå n−1 âåðøèí, à äèàãîíàëüíûå ýëåìåíòû ìàòðèöû P(n−1) ïîñëå àíàëîãè÷íîé îáðàáîòêè äàþò âñå ïðîñòûå öèêëû ãðàôà, âêëþ÷àþùèå n âåðøèí, ò. å. ãàìèëüòîíîâû öèêëû, ïðè÷åì ëþáîé äèàãîíàëüíûé ýëåìåíò îòðàæàåò âñå öèêëû. Ýòî çíà÷èò, ÷òî âìåñòî ìàòðèöû P(n−1) äîñòàòî÷íî ñôîðìèðîâàòü òîëüêî îäèí èç åå ñòîëáöîâ, ñîîòâåòñòâóþùèé ïðîèçâîëüíî âûáðàííîé âåðøèíå v. Èñêîìûé ðåçóëüòàò ñîäåðæèòñÿ â ñòðîêå v íàéäåííîãî ñòîëáöà. Äëÿ âû÷èñëåíèé ìîæíî èñïîëüçîâàòü ñîîòíîøåíèå 0 (l−1) P(l) , v = P × Pv (l)
ãäå l=1, 2, . . . , (n−1), à Pv ñòîëáåö ìàòðèöû P(l) , ñîîò(0) âåòñòâóþùèé âåðøèíå v.  êà÷åñòâå Pv ñëåäóåò ïðèíÿòü ñòîëáåö v ìàòðèöû ñìåæíîñòè ãðàôà. 117
(l)
Ðàáîòà òîëüêî ñ îäíèì ñòîëáöîì ìàòðèöû Pv ïîçâîëÿåò â n ðàç óìåíüøèòü òðóäîåìêîñòü âû÷èñëåíèé. Ïîñëåäíÿÿ, îäíàêî, è â ýòîì ñëó÷àå îñòàåòñÿ âåñüìà ñóùåñòâåííîé O(n3 ). Äîïîëíèòåëüíûé âûèãðûø ìîæíî ïîëó÷èòü, åñëè íà êàæ(l) äîì øàãå ïîñëå ïîëó÷åíèÿ î÷åðåäíîãî ñòîëáöà Pv èñêëþ÷àòü èç íåãî ïðîèçâåäåíèÿ ñ ïîâòîðÿþùèìèñÿ ñîìíîæèòåëÿìè, à òàêæå ïðîèçâåäåíèÿ, â êîòîðûõ õîòü îäèí èç ýëåìåíòîâ ñîâïàäàåò ñ êîíöåâîé âåðøèíîé ñîîòâåòñòâóþùåé öåïè. Êðîìå òîãî, öåëåñîîáðàçíî "îáíóëÿòü" è äèàãîíàëüíûé ýëåìåíò ñòîëáöà, òàê êàê ïîñëåäíèé îòðàæàåò ëèøü öèêëû äëèíû (l+1)
a b c A= d e f
a 0 0 1 0 0 1
b 1 0 0 0 0 1
c 0 1 0 1 1 1
d 0 0 1 0 1 0
e 0 1 0 0 0 0
f 0 0 0 1 0 0
Ðèñ. 5.14 (0)
Òîãäà Pa ïåðâûé ñòîëáåö ìàòðèöû ñìåæíîñòè, à ìàòðèöà P0 ïîëó÷àåòñÿ èç ìàòðèöû ñìåæíîñòè, êàê îïèñàíî ðàíåå: a b c P0 = d e f
a 0 0 a 0 0 a
b b 0 0 0 0 b
c 0 c 0 c c c
d 0 0 d 0 d 0
e 0 e 0 0 0 0
f 0 0 0 , f 0 0
(0) Pa
=
0 0 1 0 0 1
.
 äàííîì ãðàôå øåñòü âåðøèí. Ïîýòîìó ðåøåíèå ïîëó÷èì çà ïÿòü èòåðàöèé. Ðåçóëüòàòû âû÷èñëåíèé ïðèâåäåíû íèæå:
118
1)
(0) P0 Pa
(2)
3) P0 Pa
(3)
4) P0 Pa
5) P
0
(4) Pa
0 a bc b ec c 0 df c (1) (1) (2) , Pa = = Pa ; 2) P0 Pa = = f d fc df c e bc c f bec a 0 cdf + edf b cdf + edf df c c 0 (3) ; = d cdf + f bc , Pa = f bc e cdf + df c cdf + df c f bec bec + cdf 0 0 a ecdf + edf c b ecdf + edf c df bc c 0 (4) ; = , P = a f bec f bec d df bc df bc e bcdf + bedf f 0 a b c = d e f
becdf + bedf c edf bc df bec 0 df bec becdf + bedf c
,
(5) Pa
=
becdf + bedf c 0 0 0 0 0
0 ec df fc df bc
;
.
Çäåñü ïîä÷åðêíóòû ýëåìåíòû, ïîäëåæàùèå óäàëåíèþ ïåðåä âûïîëíåíèåì ñëåäóþùåé èòåðàöèè. Ýòî äèàãîíàëüíûå ýëåìåíòû ïðîìåæóòî÷íûõ ñòîëáöîâ è ïðîèçâåäåíèÿ ñ ïîâòîðàìè âåðøèí. Äèàãîíàëüíûé ýëåìåíò ïîñëåäíåãî ñòîëáöà ñîäåðæèò äâà ïðîèçâåäåíèÿ âåðøèí. Ýòî îçíà÷àåò, ÷òî â ðàññìàòðèâàåìîì ãðàôå åñòü äâà ãàìèëüòîíîâûõ öèêëà: (a,b,e,c,d,f,a) è (a,b,e,d,f,c,a), ÷òî ëåãêî ïðîâåðèòü íåïîñðåäñòâåííî íà ãðàôå.
Ìåòîä ïîñëåäîâàòåëüíîãî ïåðåáîðà. Â ïðîòèâîïîëîæ-
íîñòü àëãåáðàè÷åñêîìó ìåòîäó, êîãäà îäíîâðåìåííî ôîðìèðóþòñÿ âñå öåïè, ýòîò ìåòîä ïðåäïîëàãàåò èõ ïîñëåäîâàòåëüíîå ïîñòðîåíèå. Íà êàæäîì øàãå "íàðàùèâàåòñÿ" òîëüêî îäíà öåïü ïóòåì äîáàâëåíèÿ äóãè, ñâÿçûâàþùåé åå ïîñëåäíþþ âåðøèíó ñ îäíîé èç ñìåæíûõ, åùå íå âêëþ÷åííûõ â öåïü. Î÷åâèä-
119
íî, ÷òî ýòîò ïðîöåññ êîíå÷åí â ñèëó óêàçàííîãî îãðàíè÷åíèÿ è êîíå÷íîãî ÷èñëà âåðøèí ãðàôà è çàâåðøàåòñÿ, êîãäà òàêîå íàðàùèâàíèå ñòàíîâèòñÿ íåâîçìîæíûì. Åñëè ê ìîìåíòó îñòàíîâà öåïü ñîäåðæèò âñå âåðøèíû ãðàôà, ò. å. ÿâëÿåòñÿ ãàìèëüòîíîâîé, îñòàåòñÿ âûÿñíèòü, åñòü ëè äóãà, ñîåäèíÿþùàÿ êîíåö öåïè ñ åå íà÷àëîì.  ïðîòèâíîì ñëó÷àå èìååì ïðîñòóþ öåïü, êîòîðàÿ íå ìîæåò áûòü äàæå ÷àñòüþ ãàìèëüòîíîâà öèêëà. Ïóñòü a íà÷àëüíàÿ, v êîíå÷íàÿ âåðøèíû ñôîðìèðîâàííîé öåïè, à P ìíîæåñòâî âåðøèí, âîøåäøèõ â öåïü. Òîãäà âàðèàíòû çàâåðøåíèÿ îïèñàííîãî ïðîöåññà âûãëÿäÿò òàê: à) |P |=n è a∈Γ(v) íàéäåí ãàìèëüòîíîâ öèêë; á) |P |=n è a∈Γ(v) / íàéäåíà ãàìèëüòîíîâà öåïü; â) |P |
120
ïðîäóáëèðîâàâ åãî íà ðèñ. 5.15, è äîïîëíèâ (âìåñòî ìàòðèöû ñìåæíîñòè) ñïèñêîì ñìåæíîñòè Γ. Äëÿ ïðîñòîòû èçëîæåíèÿ áóäåì ðàññìàòðèâàòü ìíîæåñòâà P è Γ(vi ) êàê óïîðÿäî÷åí-
G
-bs -cs * 6 ? s s -? s f e d
Γ(a) = {b}, Γ(b) = {c, e}, Γ(c) = {a, d}, Γ= Γ(d) = {c, f }, Γ(e) = {c, d}, Γ(f ) = {a, b, c}.
as 6
Ðèñ. 5.15
íûå, à ðåçóëüòàòû ïðåîáðàçîâàíèÿ öåïè ïî øàãàì çàíîñèòü â òàáëèöó.  êà÷åñòâå èñõîäíîé îïÿòü áåðåì âåðøèíó a. Ïîýòîìó âíà÷àëå ìíîæåñòâî P ={a}. Ôèêñèðóåì ýòî â ïåðâîé ñòðîêå òàáë. 5.4. Èìååòñÿ åäèíñòâåííàÿ âåðøèíà, íåïîñðåäñòâåííî Òàáëèöà 5.4 Èòåðàöèÿ
1 2 3 4 5 6 7
Öåïü
Èòåðàöèÿ
a a, b a, b, c a, b, c, d a, b, c, d, f a, b, c, d a, b, c
8 9 10 11 12 13 14
Öåïü
Èòåðàöèÿ
Öåïü
a, b a, b, e a, b, e, c a, b, e, c, d a, b, e, c, d, f a, b, e, c, d a, b, e, c
15 16 17 18 19 20 21
a, b, e a, b, e, d a, b, e, d, c a, b, e, d a, b, e, d, f a, b, e, d, f , c a, b, e, d, f
Èòåðàöèÿ
22 23 24 25
Öåïü
a, b, e, d a, b, e a, b a
äîñòóïíàÿ èç a. Ýòî âåðøèíà b. Ïîýòîìó âêëþ÷àåì åå â ôîðìèðóåìóþ öåïü. Ñîîòâåòñòâåííî ìíîæåñòâî P ïðèíèìàåò âèä {a, b}.23 Òåïåðü ïûòàåìñÿ íàðàñòèòü öåïü îò âåðøèíû b. Èç íåå, êàê ïîêàçûâàåò ñïèñîê ñìåæíîñòè, âûõîäÿò äâå äóãè (b, c) è (b, e), è îáå ìîãóò áûòü èñïîëüçîâàíû, òàê êàê íè îäíà èç âåðøèí c è e íå ïðèíàäëåæèò ìíîæåñòâó P. Âûáèðàåì ïåðâóþ èç íèõ c è âêëþ÷àåì â P, ïîëó÷àÿ ïîñëå ýòîãî öåïü (a, b, c). Íà òðåòüåì øàãå èìååì Γ(c)={a, d}, íî ïåðâàÿ â ýòîì 23 Çäåñü
è äàëåå P îòîæäåñòâëÿåì ñ ôîðìèðóåìîé öåïüþ.
121
ñïèñêå âåðøèíà a∈P, ïîýòîìó áåðåì âòîðóþ d, ñ ðåçóëüòàòîì P ={a, b, c, d}. Íà ÷åòâåðòîì øàãå, ïîñòóïàÿ àíàëîãè÷íî, äîáàâëÿåì âåðøèíó f, è öåïü ïðèíèìàåò âèä (a, b, c, d, f ). Äàëüíåéøåå íàðàùèâàíèå ñòàíîâèòñÿ íåâîçìîæíûì, òàê êàê âñå âåðøèíû ìíîæåñòâà Γ(f ) óæå ñîäåðæàòñÿ â ñôîðìèðîâàííîé öåïè. Ïîýòîìó âîçâðàùàåìñÿ ê âåðøèíå d è âíîâü àíàëèçèðóåì åå ñïèñîê ñìåæíîñòè Γ(d)={c, f }. Çäåñü c∈P, à âåðøèíà f òîëüêî ÷òî ïðîçîíäèðîâàíà, è çíà÷èò, "êàíäèäàòîâ" äëÿ ïðèñîåäèíåíèÿ ê öåïè íåò. Èñêëþ÷àåì d è âîçâðàùàåìñÿ ê âåðøèíå c. Ñ íåé ñèòóàöèÿ ïîâòîðÿåòñÿ, ïîýòîìó ïîñëå ñåäüìîé èòåðàöèè öåïü ñîêðàùàåòñÿ äî äâóõ âåðøèí è ïðèíèìàåò âèä (a, b), ïðè÷åì âåðøèíà c ïîìå÷åíà êàê ïðîçîíäèðîâàííàÿ èç b. Ñïèñîê ñìåæíîñòè âåðøèíû b ñîäåðæèò âåðøèíû c è e, èç êîòîðûõ òîëüêî e íå ïðîçîíäèðîâàíà èç b è íå ñîäåðæèòñÿ â òåêóùåé öåïè. Ïîýòîìó ñëåäóåò ïåðåéòè ê âåðøèíå e. Íà äåâÿòîì øàãå èç äâóõ ïîäõîäÿùèõ âåðøèí Γ(e)={c, d} âûáèðàåì c, ïîñëå ÷åãî öåïü âûãëÿäèò êàê (a, b, e, c). Åùå äâå èòåðàöèè (10 è 11) ïðîäëåâàþò öåïü äî ãàìèëüòîíîâîé, êîòîðàÿ èìååò âèä (a, b, e, c, d, f ), è ïîñêîëüêó â ãðàôå åñòü äóãà (f, a), ïîëó÷àåì ïåðâûé ãàìèëüòîíîâ öèêë. Äàëåå ñëåäóþò èòåðàöèè, ñîêðàùàþùèå öåïü äî òåõ ïîð, ïîêà â ñïèñêå ñìåæíîñòè ïîñëåäíåé âåðøèíû íå íàéäåòñÿ ïîäõîäÿùåãî ïðîäîëæåíèÿ. Òàêàÿ ñèòóàöèÿ íàñòóïàåò íà øàãå 15, êîãäà öåïü ïðèíèìàåò âèä (a, b, e). Èç äâóõ âåðøèí ìíîæåñòâà Γ(e) îäíà åùå íå èñïîëüçîâàíà. Ýòî âåðøèíà d . Âûáðàâ åå, â èòîãå ïîñëå øàãà 19 ïîëó÷àåì åùå îäíó ãàìèëüòîíîâó öåïü (a, b, e, d, f, c) è ñîîòâåòñòâóþùèé öèêë, òàê êàê â ãðàôå åñòü äóãà (c, a). Äàëüíåéøèå äåéñòâèÿ ïðèâîäÿò òîëüêî ê ñîêðàùåíèþ öåïè. Ïðîöåññ çàâåðøàåòñÿ íà øàãå 25, êîãäà â öåïè îñòàåòñÿ òîëüêî èñõîäíàÿ âåðøèíà a. Òàêèì îáðàçîì, îêîí÷àòåëüíî èìååì äâà öèêëà: (a, b, e, c, d, f, a) è (a, b, e, d, f, c, a), ÷òî ñîâïàäàåò ñ ðåçóëüòàòîì, ïîëó÷åííûì àëãåáðàè÷åñêèì ñïîñîáîì. Ôîðìàëèçîâàííîå îïèñàíèå ðàññìîòðåííîãî ñïîñîáà ïîèñêà ãàìèëüòîíîâûõ öèêëîâ, â êîòîðîì: P ìíîæåñòâî âåðøèí, âêëþ÷åííûõ â ôîðìèðóåìóþ öåïü; P redu âåðøèíà, ïðåäøåñòâóþùàÿ âåðøèíå u â öåïè; 122
Wu ìíîæåñòâî âåðøèí, "ïðîçîíäèðîâàííûõ" èç u ; víà÷ èñõîäíàÿ âåðøèíà ïðè ïîèñêå öèêëîâ; v ïîñëåäíÿÿ âåðøèíà òåêóùåé öåïè, ìîæíî ïðåäñòàâèòü â ñëåäóþùåì âèäå:
begin for ½ u ∈ V do
{ÃÀÌÈËÜÒÎÍ} { Âíà÷àëå äëÿ êàæäîé âåðøèíû ãðàôà u } Wu := ∅; { ìíîæåñòâî ïðîçîíäèðîâàííûõ èç u ïóñòî; } P redu := u; { â êà÷åñòâå ïðåäøåñòâóþùåé ïðèíÿòà u. } v := víà÷ ; { Çà ïîñëåäíþþ âåðøèíó öåïè âçÿòà èñõîäíàÿ, } P := {v}; { ò. å. âíà÷àëå öåïü ñîñòîèò èç îäíîé âåðøèíû. } while P 6= ∅ do { Âûïîëíÿòü, ïîêà P íå ïóñòî: } if Γ(v)−P −Wv 6= ∅ { Åñòü âîçìîæíîñòü ïðîäëèòü öåïü? } { "äà" } select u ∈ Γ(v)−P −Wv ; { Âûáðàòü âåðøèíó u; } P := P +{u}; { âêëþ÷èòü â öåïü; } P redu := v; { òåïåðü v ïðåäøåñòâóåò u; } v := u; { äàëåå ñ÷èòàòü u ïîñëåäíåé â öåïè. } if (P =V )and(v ∈Γ(v)) íà÷ then { íàéäåí ãàìèëüòîíîâ öèêë } P redu 6=∅ do { Âûâîä ñïèñêà } while ½ then output(u); { âåðøèí öåïè, } u:=P redu ; { íà÷èíàÿ } output(u); { ñ êîíå÷íîé. } { "íåò" } P :=P −{v}; { Èñêëþ÷èòü ïîñëåäíþþ âåðøèíó; } Wv := ∅; { "îïóñòîøèòü" ìíîæåñòâî âåðøèí, } { ïðîçîíäèðîâàííûõ èç v ; } else u := P redv ; { u ïðåäïîñëåäíÿÿ âåðøèíà; } { v ïðîçîíäèðîâàíà èç u; } Wu := Wu +{v}; v := u; { äàëåå ñ÷èòàòü u ïîñëåäíåé â öåïè. } end. {ÃÀÌÈËÜÒÎÍ}
Âûÿâëåíèå íåãàìèëüòîíîâîñòè ãðàôà. Â îáùåì ñëó-
÷àå óñòàíîâèòü, ÿâëÿåòñÿ ëè ãðàô ãàìèëüòîíîâûì, êàê óæå áûëî ïîêàçàíî â 5.3.1, äîñòàòî÷íî ñëîæíî. Îäíàêî â íåêîòîðûõ ñëó÷àÿõ íåãàìèëüòîíîâîñòü ìîæíî âûÿâèòü, íå ïðèáåãàÿ ê òðóäîåìêèì àëãîðèòìàì. Ðàññìîòðèì ïðèìåðû, èëëþñòðèðóþùèå ïðîñòûå ïðèåìû ðåøåíèÿ ýòîé çàäà÷è. Ïóñòü òðåáóåòñÿ îïðåäåëèòü õàðàêòåð ãðàôîâ, ïðåäñòàâëåííûõ íà ðèñ. 5.16. 123
Ãðàô G1 èìååò ñåìü âåðøèí. Çíà÷èò, ñîîòâåòñòâóþùèé ãàìèëüòîíîâ öèêë äîëæåí ñîñòîÿòü èç ñåìè ðåáåð, ò. å. èìåòü äëèíó, ðàâíóþ ñåìè. Íî, èç ðèñ. 5.16 âèäíî, ÷òî ãðàô G1 äâóäîëüíûé è ïîýòîìó (â ñèëó òåîðåìû 1.2) ìîæåò ñîäåðæàòü r r @ B B C B @ B C B @ B CCr Br @Br
r r r r r r r r r r r r © r r © © r© r r r r r © © r r r © ©© r © r© r ©
G1
G2
r C C
r
Ðèñ. 5.16
òîëüêî öèêëû ÷åòíîé äëèíû. Îòñþäà ñëåäóåò, ÷òî ãðàô íåãàìèëüòîíîâ. Îáîáùàÿ, ìîæíî óòâåðæäàòü, ÷òî ëþáîé äâóäîëüíûé ãðàô ñ íå÷åòíûì ÷èñëîì âåðøèí íå ìîæåò áûòü ãàìèëüòîíîâûì. Òàêèì îáðàçîì, ðåøàÿ çàäà÷ó âûÿâëåíèÿ íåãàìèëüòîíîâîñòè äëÿ ãðàôà ñ íå÷åòíûì ÷èñëîì âåðøèí, öåëåñîîáðàçíî ïðîâåðèòü åãî íà äâóäîëüíîñòü, èñïîëüçóÿ àëãîðèòì, èçëîæåííûé â ðàçä. 1.3. Îòìåòèì, ÷òî â îáùåì ñëó÷àå äâóäîëüíîñòü ãðàôà (â îòëè÷èå îò ãðàôà G1 , ïðåäñòàâëåííîãî íà ðèñ. 5.16) íå âñåãäà î÷åâèäíà. Òàê, ãðàô G2 íà ðèñ. 5.16 òàêæå äâóäîëüíûé, íî ÷òîáû óñòàíîâèòü ýòî, òðåáóþòñÿ íåêîòîðûå óñèëèÿ. Ïåðåéäåì ê àíàëèçó ãðàôà G2 , èçîáðàæåíèå êîòîðîãî íà ðèñ. 5.16 ñîâìåùåíî ñ òðåõìåðíûì êóáîì òàê, ÷òî âåðøèíû ãðàôà ñîâàäàþò ñ ñåðåäèíàìè ãðàíåé è ðåáåð êóáà, à òàêæå ñ åãî âåðøèíàìè.  ïîäîáíûõ ñëó÷àÿõ ãîâîðÿò, ÷òî ãðàô óëîæåí íà íåêîòîðîé ïîâåðõíîñòè.  äàííîì ñëó÷àå ýòî ïîâåðõíîñòü êóáà. Ëåãêî ïîäñ÷èòàòü, ÷òî ãðàô G2 èìååò 26 âåðøèí è 48 ðåáåð. Òàê êàê ÷èñëî âåðøèí ÷åòíî, âûøåîïèñàííûé ïðèåì çäåñü íåïðèåìëåì. Ïîñòóïèì èíà÷å, íî ïðåäâàðèòåëüíî ââåäåì ïîíÿòèå íåçàâèñèìîãî ìíîæåñòâà âåðøèí, ïîä êîòîðûì ñëåäóåò ïîíèìàòü ëþáîå ìíîæåñòâî âåðøèí, òàêèõ, ÷òî íèêàêèå äâå èç íèõ íå ñìåæíû. Íåçàâèñèìîå ìíîæåñòâî íàçûâàåòñÿ ìàêñèìàëüíûì, åñëè îíî íå ÿâëÿåòñÿ ñîáñòâåííûì ïîä-
124
ìíîæåñòâîì íåêîòîðîãî íåçàâèñèìîãî ìíîæåñòâà âåðøèí.  ãðàôå G2 åñòü äâà òàêèõ ìíîæåñòâà. Îäíî èç íèõ V1 âêëþ÷àåò âñå âåðøèíû, íàõîäÿùèåñÿ â ñåðåäèíå ðåáåð êóáà, äðóãîå V2 ñîñòîèò èç âåðøèí, ñîâïàäàþùèõ ñ âåðøèíàìè êóáà è ñåðåäèíàìè åãî ãðàíåé. Ðàññìîòðèì ìíîæåñòâî V1 . Êàæäàÿ èç âõîäÿùèõ â íåãî âåðøèí èíöèäåíòíà ÷åòûðåì ðåáðàì, èç êîòîðûõ òîëüêî äâà ìîãóò ïðèíàäëåæàòü ãàìèëüòîíîâó öèêëó. Òàê êàê |V1 |=12, òî îáùåå ÷èñëî ðåáåð, íå âõîäÿùèõ â öèêë òîëüêî ïî ìíîæåñòâó V1 , ðàâíî 24. Îñòàâøèõñÿ 24 ðåáåð èç 48 íå äîñòàòî÷íî äëÿ îðãàíèçàöèè ãàìèëüòîíîâà öèêëà, êîòîðûé â äàííîì ãðàôå äîëæåí áû (ïî ÷èñëó âåðøèí) èìåòü äëèíó 26. À ýòî çíà÷èò, ÷òî ãðàô G2 íåãàìèëüòîíîâ. Îðèãèíàëüíûé ñïîñîá ðåøåíèÿ çàäà÷è, èñïîëüçóþùèé îñîáåííîñòè ñòðóêòóðû ãðàôà, ïðåäëîæèë Þ.Í.Çàâàðîâñêèé24 . z 6 t[0;0;2] t[0;1;2] t[0;2;2] [1;0;2] t t t [1;2;2] t t [2;0;2] t t[0;0;1] [0;1;1] t t[0;2;1] © t© t © ©© t t [2;0;1] t [0;2;0]t[0;0;0] [0;1;0] t t © © y t© t© t © © t©© t©© t [1;2;0] © © © [2;0;0] [2;1;0] [2;2;0] © ¼
x
Ðèñ. 5.17
Ñâÿæåì ñ êóáîì, íà êîòîðîì óëîæåí ðàññìàòðèâàåìûé ãðàô, äåêàðòîâó ñèñòåìó êîîðäèíàò ñ åäèíè÷íûì îòðåçêîì, ñîîòâåòñòâóþùèì ðåáðó ãðàôà, êàê ïîêàçàíî íà ðèñ. 5.17. Òîãäà êàæäîé âåðøèíå ìîæíî ïðèïèñàòü ÷èñëîâóþ ïîìåòêó, ðàâíóþ ñóììå åå êîîðäèíàò. ßñíî, ÷òî ïðè ïåðåõîäå èç îäíîé âåðøèíû â äðóãóþ, ñìåæíóþ ñ íåé, çíà÷åíèå ïîìåòêè óâåëè÷èâàåòñÿ èëè óìåíüøàåòñÿ íà åäèíèöó, ñòàíîâÿñü ëèáî ÷åòíûì, ëèáî 24 Äîöåíò
êàôåäðû âûñøåé ìàòåìàòèêè Âñåðîññèéñêîãî çàî÷íîãî ôèíàíñîâî-ýêîíîìè÷åñêîãî èíñòèòóòà.
125
íå÷åòíûì. Ïðè òàêîì õàðàêòåðå ÷åðåäîâàíèÿ â ãàìèëüòîíîâîì öèêëå íà 26 âåðøèí äîëæíî áûòü 13 âåðøèí ñ ÷åòíûìè è 13 ñ íå÷åòíûìè ïîìåòêàìè. Îäíàêî ïðîñòîé ïîäñ÷åò ïîêàçûâàåò, ÷òî â ãðàôå 14 "÷åòíûõ" è 12 "íå÷åòíûõ" âåðøèí, ò. å. ãàìèëüòîíîâà öèêëà áûòü íå ìîæåò. Åñëè èñïîëüçîâàòü ïîíÿòèå äâóäîëüíîñòè, ìîæíî äàòü è áîëåå ïðîñòîå îáîñíîâàíèå ïîëó÷åííîãî ðåçóëüòàòà. Ïîñêîëüêó ãðàô äâóäîëüíûé, ëþáîé öèêë â íåì, â òîì ÷èñëå è ãàìèëüòîíîâ, äîëæåí ñîäåðæàòü ÷åòíîå ÷èñëî âåðøèí ïðè ñòðîãîì ÷åðåäîâàíèè ïî èõ ïðèíàäëåæíîñòè ê ðàçíûì äîëÿì. Ñëåäîâàòåëüíî, äëÿ ãàìèëüòîíîâîñòè ãðàôà íåîáõîäèìî, ÷òîáû äîëè èìåëè ðàâíîå ÷èñëî âåðøèí.  ðàññìàòðèâàåìîì ñëó÷àå ýòî íå òàê, çíà÷èò, ãðàô íåãàìèëüòîíîâ. Âûøåèçëîæåííîå ïîçâîëÿåò ñäåëàòü âûâîä î òîì, ÷òî ëþáîé äâóäîëüíûé ãðàô ñ ÷åòíûì ÷èñëîì âåðøèí ìîæåò áûòü ãàìèëüòîíîâûì òîëüêî ïðè ðàâåíñòâå åãî äîëåé.
5.4. Çàäà÷à êîììèâîÿæåðà Òàê íàçûâàåòñÿ øèðîêî èçâåñòíàÿ êëàññè÷åñêàÿ çàäà÷à èññëåäîâàíèÿ îïåðàöèé, êîòîðàÿ â ãðàôîâîé èíòåðïðåòàöèè ôîðìóëèðóåòñÿ ñëåäóþùèì îáðàçîì. Èìååòñÿ ïîëíûé ãðàô (îðãðàô), çàäàííûé ìàòðèöåé âåñîâ C. Òðåáóåòñÿ íàéòè ãàìèëüòîíîâ öèêë ñ ìèíèìàëüíîé ñóììîé ñîñòàâëÿþùèõ åãî ðåáåð (äóã). Åñëè òðàêòîâàòü âåñ ðåáðà ci,j ≥0 êàê ðàññòîÿíèå ìåæäó âåðøèíàìè vi è vj , òî çàäà÷à çàêëþ÷àåòñÿ â îòûñêàíèè êðàò÷àéøåãî ãàìèëüòîíîâà öèêëà.  ëèòåðàòóðå ïî èññëåäîâàíèþ îïåðàöèé ÷àñòî ïðèâîäèòñÿ ñëåäóþùàÿ ôîðìóëèðîâêà, îïðåäåëèâøàÿ íàçâàíèå çàäà÷è. Êîììèâîÿæåð (àãåíò ïî ñáûòó) äîëæåí ïîñåòèòü n ãîðîäîâ, íà÷èíàÿ ñ îäíîãî èç íèõ, è âåðíóòüñÿ â èñõîäíûé ïóíêò, ïîáûâàâ â êàæäîì òîëüêî îäèí ðàç. Äëÿ ëþáîé ïàðû ãîðîäîâ vi è vj èçâåñòíî ðàññòîÿíèå (âðåìÿ èëè ñòîèìîñòü ïåðååçäà, ïåðåëåòà) ci,j . Êàêèì äîëæåí áûòü êðàò÷àéøèé (íàèáîëåå äåøåâûé) ìàðøðóò êîììèâîÿæåðà?
126
5.4.1. Ïðèìåíåíèå è ìåòîäû ðåøåíèÿ çàäà÷è Íà ïðàêòèêå ñ ýòîé îïòèìèçàöèîííîé çàäà÷åé è ðàçëè÷íûìè åå ìîäèôèêàöèÿìè ïîñòîÿííî ñòàëêèâàþòñÿ ôèðìû è àãåíòñòâà, çàíèìàþùèåñÿ äîñòàâêîé ãðóçîâ. Åùå îäíà îáëàñòü ïðèìåíåíèÿ ýòî ïëàíèðîâàíèå ïðîèçâîäñòâà n ðàçëè÷íûõ ïðîäóêòîâ íà åäèíñòâåííîì êîìïëåêòå òåõíîëîãè÷åñêîãî îáîðóäîâàíèÿ (ñì. ðàçä. 5.3.1). Åñëè ci,j ýòî âðåìÿ íà ïåðåíàëàäêó îáîðóäîâàíèÿ ïðè ïåðåõîäå ê ïðîèçâîäñòâó ïðîäóêòà vj ïîñëå ïðîäóêòà vi , òî íàèëó÷øèé ïî âðåìåíè ïîðÿäîê ïðîèçâîäñòâà âñåõ n ïðîäóêòîâ îïðåäåëÿåòñÿ êðàò÷àéøèì ãàìèëüòîíîâûì öèêëîì â ñîîòâåòñòâóþùåì ïîëíîì ãðàôå. Íàãëÿäíûé ïðèìåð ïðèìåíåíèÿ çàäà÷è êîììèâîÿæåðà ïðèâåäåí â [12]. Ïðè ïðîèçâîäñòâå ïå÷àòíûõ ïëàò íåîáõîäèìî ñäåëàòü áîëüøîå êîëè÷åñòâî îòâåðñòèé â ðàçëè÷íûõ òî÷êàõ ïëàòû. Àâòîìàòè÷åñêèé ñâåðëèëüíûé ñòàíîê, âûïîëíÿþùèé ýòó îïåðàöèþ, äîëæåí íàðÿäó ñ ñîáñòâåííî ñâåðëåíèåì âûïîëíÿòü ïîçèöèîíèðîâàíèå ñâåðëà (ïëàòû). Âðåìåííûå çàòðàòû íà ýòî äåéñòâèå íåïîñðåäñòâåííî çàâèñÿò îò ïîðÿäêà îáõîäà âûøåóêàçàííûõ òî÷åê. Ìèíèìèçèðîâàòü îáùåå âðåìÿ âûïîëíåíèÿ ïîäîáíîé îáðàáîòêè ïëàòû ìîæíî çà ñ÷åò âûáîðà îïòèìàëüíîé ïîñëåäîâàòåëüíîñòè îáõîäà òî÷åê ñâåðëåíèÿ, ò. å. ïåðåä íàìè çàäà÷à êîììèâîÿæåðà. Íåñìîòðÿ íà ïðîñòîòó ôîðìóëèðîâêè, çàäà÷à îêàçûâàåòñÿ âåñüìà ñëîæíîé. Ýòî îäíà èç îïòèìèçàöèîííûõ êîìáèíàòîðíûõ çàäà÷, äëÿ êîòîðûõ ýôôåêòèâíûå àëãîðèòìû íåèçâåñòíû. Ñóùåñòâóþò ðàçëè÷íûå ïîäõîäû ê åå ðåøåíèþ. Ïðîñòåéøèé ïîäõîä, îñíîâàííûé íà ïåðåáîðå âñåõ âàðèàíòîâ, ãîäèòñÿ ëèøü äëÿ ãðàôîâ ìàëîé ðàçìåðíîñòè. Òàê, ïðè ÷èñëå âåðøèí n=6, íåîáõîäèìî ñôîðìèðîâàòü (n−1)!=5!=120 ïåðåñòàíîâîê, êàæäàÿ èç êîòîðûõ îïðåäåëÿåò íåêîòîðûé ãàìèëüòîíîâ öèêë, ïîäñ÷èòàòü, èñïîëüçóÿ ìàòðèöó âåñîâ, äëèíó âñåõ ýòèõ öèêëîâ è âûáðàòü èç íèõ îïòèìàëüíûé(å). Áîëåå ïðîäóêòèâåí ïîäõîä, îñíîâàííûé íà ÷àñòè÷íîì ïåðåáîðå, êîãäà íà îñíîâå íåêîòîðûõ êðèòåðèåâ îòáðàñûâàþòñÿ çàâåäîìî áåñïåðñïåêòèâíûå âàðèàíòû. Èìåííî òàêîé ïîäõîä ðåàëèçóåòñÿ ñ ïîìîùüþ ìåòîäà âåòâåé è ãðàíèö.
127
5.4.2. Ìåòîä âåòâåé è ãðàíèö Ïðèíöèï âåòâëåíèÿ. Ðàññìîòðåíèå áóäåì âåñòè ïðèìå-
íèòåëüíî ê îðèåíòèðîâàííûì ãðàôàì.  ïîëíîì îðãðàôå èìååòñÿ ìíîæåñòâî S0 ãàìèëüòîíîâûõ öèêëîâ ðàçëè÷íîé äëèíû. Íàñ èíòåðåñóåò öèêë ìèíèìàëüíîé äëèíû. Äëÿ íà÷àëà íàéäåì íèæíþþ ãðàíèöó ýòîé âåëè÷èíû, ò. å. òàêîå çíà÷åíèå, ìåíüøå êîòîðîãî äëèíà ãàìèëüòîíîâà öèêëà â çàäàííîì ãðàôå íå ìîæåò áûòü íè ïðè êàêèõ îáñòîÿòåëüñòâàõ. Ñîîòâåòñòâóþùóþ ïðîöåäóðó ðàññìîòðèì ïîçäíåå, à ïîêà ïîëàãàåì, ÷òî îöåíêà íèæíåé ãðàíèöû L0 íàéäåíà. Îïèñûâàåìûé äàëåå ïðîöåññ äëÿ ÷åòûðåõâåðøèííîãî ãðàôà G íà ðèñ. 5.18 ìîæíî ïðåäñòàâèòü â âèäå áèíàðíîãî äåðåâà T, ïðèâåäåííîãî çäåñü æå.
G
²¯
v1 t Y 6
- tv2 ]
^ t v4
s t? v3
T S0 H ±° L0 HH
²¯ (v1 , v2 ) S1 ±° L1@ @ ²¯ @²¯
(v3 , v4 ) S3
S4 (v3 , v4 )
±° L3A ²¯ A²¯
(v2 , v3 ) S5 L5
±° L4
HH ²¯ H ` S2 ` ` `(v1 , v2 ) ` ±° ` ` ` ` ` ` L2 ` ` ` ` ` ` ` `²¯ ²¯ `` ` S
9 ±°
L9
S
10 ±°
L10
S6 (v2 , v3 )
±° ±° L6 C ²¯ C ²¯ S7
S8
L7
L8
±° ±° Ðèñ. 5.18
Ìûñëåííî ðàçîáúåì ìíîæåñòâî âñåõ öèêëîâ íà äâà íåïåðåñåêàþùèõñÿ ïîäìíîæåñòâà, èñïîëüçóÿ â êà÷åñòâå êðèòåðèÿ âõîæäåíèå â öèêë íåêîòîðîé äóãè, íàïðèìåð (v1 , v2 ). Ïóñòü S1 ïîäìíîæåñòâî ãàìèëüòîíîâûõ öèêëîâ, ñîäåðæàùèõ äóãó (v1 , v2 ), à S2 ïîäìíîæåñòâî öèêëîâ, íå ñîäåðæàùèõ ýòó äóãó. Äëÿ êàæäîãî ïîäìíîæåñòâà íàõîäèì íèæíþþ ãðàíèöó äëèíû ìèíèìàëüíîãî öèêëà. Ïóñòü ýòî áóäóò L1 è L2 ñîîòâåòñòâåííî, ïðè÷åì L1
128
êàþùèõñÿ ïîäìíîæåñòâà S3 è S4 , íî óæå íà îñíîâå äðóãîé äóãè, íàïðèìåð (v3 , v4 ). Çàòåì íàõîäèì íèæíèå ãðàíèöû L3 è L4 äëÿ ýòèõ äâóõ ïîäìíîæåñòâ. Ïðåäïîëîæèì, ÷òî L3
â ïîëíîì îðãðàôå ñ ÷åòûðìÿ âåðøèíàìè ëþáàÿ äóãà îïðåäåëÿåò äâà ðàçëè÷íûõ ãàìèëüòîíîâà öèêëà, ò. å. â íàøåì ñëó÷àå ìíîæåñòâî S1 ñîñòîèò âñåãî èç äâóõ öèêëîâ. Áîëåå òîãî, â òàêîì ãðàôå ëþáîé ãàìèëüòîíîâ öèêë îäíîçíà÷íî îïðåäåëÿåòñÿ äâóìÿ äóãàìè. Ïîýòîìó ìíîæåñòâî S3 ñîäåðæèò îäèí öèêë, âêëþ÷àþùèé äóãè (v1 , v2 ) è (v3 , v4 ), à ýòî çíà÷èò, ÷òî è S4 òàêæå ñîñòîèò èç åäèíñòâåííîãî öèêëà, à S6 ïóñòî.
129
ñêîëüêó ëþáîé ãàìèëüòîíîâ öèêë îáÿçàòåëüíî ñîäåðæèò îäíó (è òîëüêî îäíó) èç ýòèõ äóã, åãî äëèíà èçìåíèòñÿ íà âåëè÷èíó αi . ßñíî, ÷òî ïðè ýòîì ñîîòíîøåíèÿ ìåæäó öèêëàìè ïî äëèíå ñîõðàíÿòñÿ, ò. å. ñàìûé êîðîòêèé òàêîâûì è îñòàíåòñÿ. Òî÷íî òàêèå æå ðàññóæäåíèÿ ñïðàâåäëèâû è äëÿ ñòîëáöà j ìàòðèöû âåñîâ, ñ òîé ëèøü ðàçíèöåé, ÷òî ðå÷ü èäåò îáî âñåõ äóãàõ, âõîäÿùèõ â âåðøèíó vj . Ïóñòü αi = min{ci,j }, j=1, n ìèíèìàëüíûé ýëåìåíò ñòðîêè i ìàòðèöû C. Ïðåîáðàçóåì ìàòðèöó ïóòåì âû÷èòàíèÿ èç ýëåìåíòîâ êàæäîé ñòðîêè ñîîòâåòñòâóþùåãî ìèíèìàëüíîãî ýëåìåíòà ýòîé ñòðîêè, ïîëîæèâ ci,j =ci,j −αi , j=1, n. Òàêàÿ îïåðàöèÿ íîñèò íàçâàíèå ðåäóêöèè ìàòðèöû ïî ñòðîêàì. Î÷åâèäíî, ÷òî ïîñëå åå âûïîëíåíèÿ êàæäàÿ ñòðîêà äîëæíà ñîäåðæàòü õîòÿ áû ïî îäíîìó íóëåâîìó ýëåìåíòó. Ñîâåðøåííî àíàëîãè÷íî îïðåäåëÿåòñÿ îïåðàöèÿ ðåäóêöèè ìàòðèöû ïî ñòîëáöàì. Íàõîäÿòñÿ ìèíèìàëüíûå ýëåìåíòû ïî ñòîëáöàì βj = min{ci,j }, i=1, n, ïîñëå ÷åãî âûïîëíÿåòñÿ ïðåîáðàçîâàíèå ci,j =ci,j −βj , i=1, n ïî âñåì ñòîëáöàì ìàòðèöû.  ðåçóëüòàòå â êàæäîì ñòîëáöå ïîÿâèòñÿ õîòÿ áû îäèí íóëåâîé ýëåìåíò. Ïîíÿòíî, ÷òî â ðåçóëüòàòå ïîëíîé ðåäóêöèè âåñîâîé ìàòðèöû êàê ïî ñòðîêàì, òàê è ïî ñòîëáöàì, äëèíû âñåõ ãàìèëüòîíîâûõ Pn öèêëîâ Pn â ãðàôå äîëæíû óìåíüøèòüñÿ íà âåëè÷èíó ∆= i=1 αi + j=1 βj . Ýòà âåëè÷èíà ìîæåò ðàññìàòðèâàòüñÿ êàê áåçóñëîâíàÿ íèæíÿÿ ãðàíèöà äëèíû êðàò÷àéøåãî ãàìèëüòîíîâà öèêëà â ïîëíîì îðãðàôå. Ïîêàæåì, êàê îïðåäåëÿåòñÿ íèæíÿÿ ãðàíèöà ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ ïðè óñëîâèè, ÷òî âñå îíè ñîäåðæàò íåêîòîðóþ äóãó, íàïðèìåð (vi , vj ). Òàê êàê ëþáàÿ âåðøèíà â öèêëå ìîæåò èìåòü òîëüêî îäíó âõîäÿùóþ è îäíó âûõîäÿùóþ äóãó, èñïîëüçîâàíèå (vi , vj ) ôàêòè÷åñêè íàêëàäûâàåò çàïðåò íà âêëþ÷åíèå îñòàëüíûõ äóã, âûõîäÿùèõ èç vi è âõîäÿùèõ â vj . Çàïðåòèòü èñïîëüçîâàíèå ýòèõ äóã ìîæíî, èñêëþ÷èâ èç âåñîâîé ìàòðèöû ñòðîêó i è ñòîëáåö j. Êðîìå òîãî, íåîáõîäèìî çàïðåòèòü èñïîëüçîâàíèå äóãè (vj , vi ), êîòîðàÿ îáðàçóåò öèêë ñ (vi , vj ). Ñ ýòîé öåëüþ äîñòàòî÷íî ïîëîæèòü cj,i =∞.
130
Ðåäóêöèÿ ïðåîáðàçîâàííîé òàêèì îáðàçîì ìàòðèöû ïîçâîëÿåò ïîëó÷èòü íèæíþþ ãðàíèöó ìíîæåñòâà öèêëîâ, ñîäåðæàùèõ äóãó (vi , vj ). Íèæíÿÿ ãðàíèöà äëÿ ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ, íå ñîäåðæàùèõ (vi , vj ), ïîëó÷àåòñÿ ïóòåì ðåäóêöèè âåñîâîé ìàòðèöû, â êîòîðîé ýëåìåíò ci,j ïîëàãàåì ðàâíûì ∞. Íàêîíåö, äóãó, ïî êîòîðîé ïðîèñõîäèò ðàçáèåíèå î÷åðåäíîãî ðàññìàòðèâàåìîãî ïîäìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ, (ñì. áèíàðíîå äåðåâî íà ðèñ. 5.18) öåëåñîîáðàçíî âûáèðàòü èç ÷èñëà òåõ, âåñà êîòîðûõ â ðåäóöèðîâàííîé ìàòðèöå îêàçàëèñü íóëåâûìè. Âî-ïåðâûõ, ýòî íàèáîëåå êîðîòêèå äóãè è, âî-âòîðûõ, îíè ÿâëÿþòñÿ ýëåìåíòàìè åñòåñòâåííîé (âîçìîæíî äàæå öèêëè÷åñêîé) ñòðóêòóðû â ãðàôå, èìåþùåé ìèíèìàëüíóþ äëèíó. Îäíàêî êîëè÷åñòâî òàêèõ äóã äîâîëüíî âåëèêî, íå ìåíåå ÷èñëà âåðøèí â ãðàôå. Çàäà÷à âûáîðà ìîæåò áûòü ðåøåíà ïóòåì îöåíêè äëÿ êàæäîé èç íèõ "øòðàôà" (ïîòåðü) çà íåâêëþ÷åíèå äóãè â ãàìèëüòîíîâ öèêë. Ïóñòü, íàïðèìåð, (vi , vj ) îäíà èç äóã ñ íóëåâûì âåñîì, íå âêëþ÷åííàÿ â öèêë. Çíà÷èò, â öèêëå èìååòñÿ îðöåïü, ñâÿçûâàþùàÿ âåðøèíó vi ñ vj . Íà÷àëüíîé äóãîé ýòîé öåïè äîëæíà áûòü îäíà èç äóã, âûõîäÿùèõ èç vi è îòëè÷íàÿ îò (vi , vj ), à êîíå÷íîé îäíà èç äóã, âõîäÿùèõ â vj è òàêæå îòëè÷íàÿ îò (vi , vj ). Íà ñóììó âåñîâ ýòèõ äóã â ðåäóöèðîâàííîé ìàòðèöå è ïðîèçîéäåò óäëèíåíèå öèêëà ïðè îòêàçå îò èñïîëüçîâàíèÿ äóãè (vi , vj ). Îáîçíà÷èì ìèíèìàëüíûé ýëåìåíò i ñòðîêè (íå ñ÷èòàÿ ci,j ) êàê Ai , à ìèíèìàëüíûé ýëåìåíò j ñòîëáöà (òàêæå íå ñ÷èòàÿ ci,j ) êàê Bj . Íàçîâåì øòðàôîì çà íåèñïîëüçîâàíèå äóãè (vi , vj ) ñóììó φi,j =Ai +Bj . Ìàêñèìàëüíûé èç øòðàôîâ ïî ìíîæåñòâó "íóëåâûõ" äóã ðåäóöèðîâàííîé ìàòðèöû îïðåäåëÿåò òó èç íèõ, ïî êîòîðîé öåëåñîîáðàçíî âûïîëíÿòü äàëüíåéøåå ðàçáèåíèå î÷åðåäíîãî ïîäìíîæåñòâà öèêëîâ. Ïðèìåð. Ðàçáåðåì ïðèìåð íà ïðèìåíåíèå îïèñàííîãî âàðèàíòà ðåàëèçàöèè ìåòîäà âåòâåé è ãðàíèö. Ïóñòü ãðàô çàäàí ìàòðèöåé âåñîâ, íà ðèñ. 5.19,à.26 Çàìåòèì, ÷òî â ñèëó îñîáîé 26 Íå
îáÿçàòåëüíî, ÷òîáû ìàòðèöà áûëà ñèììåòðè÷íîé, õîòÿ ýòî ïðåäñòàâëÿåòñÿ íàèáîëåå åñòåñòâåííûì ïðè òðàêòîâêå âåñîâ äóã êàê ðàññòîÿíèé. Ðàññìàòðèâàåìûé àëãîðèòì äàåò ðåøåíèå â ñàìîì îáùåì ñëó÷àå.
131
ðîëè "íóëåâûõ" äóã â êà÷åñòâå çíà÷åíèÿ äëÿ äèàãîíàëüíûõ ýëåìåíòîâ ìàòðèöû âìåñòî íóëÿ èñïîëüçóåòñÿ ∞. v1 v2 v3 v4 v5 v6
v1 ∞ 4 45 39 28 3
v2 3 ∞ 17 90 46 88
v3 93 77 ∞ 80 88 18
v4 13 42 36 ∞ 33 46
v5 33 21 16 56 ∞ 92
v6 9 16 28 7 25 ∞
v1 v2 v3 v4 v5 v6 βj Bj
v1 ∞ 0 29 32 3 0 0 0
v2 0 ∞ 1 83 21 85 0 1
à
v3 75 58 ∞ 58 48 0 15 48
v4 2 30 12 ∞ 0 35 8 2
v5 30 17 0 49 ∞ 89 0 17
v6 αi Ai 6 3 2 12 4 12 12 16 1 0 7 32 0 25 3 ∞ 3 0 0 ∆=81 0 φ6,3 =48
á Ðèñ. 5.19
Âûïîëíèâ ðåäóêöèþ ïî ñòðîêàì è ïî ñòîëáöàì, ïîëó÷àåì ìàòðèöó, ïîêàçàííóþ íà ðèñ. 5.19,á. Òàì æå ïðåäñòàâëåíû ñòîëáåö αi è ñòðîêà βj , èñïîëüçîâàííûå ïðè ðåäóêöèè. Ñóììèðóÿ èõ ñîäåðæèìîå, íàõîäèì íà÷àëüíóþ îöåíêó íèæíåé ãðàíèöû äëèíû ãàìèëüòîíîâûõ öèêëîâ L0 =∆=81. Äëÿ êàæäîé "íóëåâîé" äóãè ïîëó÷åííîé ìàòðèöû îòûñêèâàåì ñîñòàâëÿþùèå øòðàôà φi,j =Ai +Bj è çàïèñûâàåì èõ â ñòîëáåö Ai è ñòðîêó Bj . Ìàêñèìàëüíûé øòðàô φ6,3 =A6 +B3 =48 ñîîòâåòñòâóåò äóãå (v6 , v3 ). Ïîýòîìó èìåííî åå öåëåñîîáðàçíî âçÿòü â êà÷åñòâå îñíîâû ïðè ðàçáèåíèè ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ íà äâà ïîäìíîæåñòâà S(v6 , v3 ) è S(v6 , v3 ), òàêèõ, ÷òî âñå öèêëû ïåðâîãî ñîäåðæàò óêàçàííóþ äóãó, âñå öèêëû âòîðîãî åå íå ñîäåðæàò. Ýòèì ïîäìíîæåñòâàì ñîîòâåòñòâóþò ìàòðèöû íà ðèñ. 5.20,à,â. Ïåðâàÿ ïîëó÷åíà ïóòåì âû÷åðêèâàíèÿ øåñòîé ñòðîêè è òðåòüåãî ñòîëáöà â ìàòðèöå íà ðèñ. 5.19,á. Êðîìå òîãî, ýëåìåíò c3,6 ïðèíÿò ðàâíûì ∞, ÷òîáû çàáëîêèðîâàòü èñïîëüçîâàíèå äóãè (v3 , v6 ), îáðàçóþùåé öèêë ñ (v6 , v3 ). Âòîðàÿ ìàòðèöà (â) ïîëó÷àåòñÿ, åñëè â ìàòðèöå íà ðèñ. 5.19,á çíà÷åíèå ýëåìåíòà c6,3 ïîëîæèòü ðàâíûì ∞, çàïðåùàÿ òåì ñàìûì èñïîëüçîâàíèå äóãè (v6 , v3 ). Íèæíÿÿ ãðàíèöà äëèíû öèêëîâ ïîäìíîæåñòâà S(v6 , v3 ), î÷åâèäíî, ðàâíà L2 =L0 +φ6,3 =81+48=129, ò. å. ïî ñðàâíåíèþ 132
ñ íàéäåííîé íèæíåé ãðàíèöåé äëèíû âñåõ öèêëîâ âîçðàñòàåò íà âåëè÷èíó φ6,3 êàê "ïëàòà" çà íåèñïîëüçîâàíèå äóãè (v6 , v3 ). S(v6 , v3 ) v1 v2 v3 v4 v5
v1 ∞ 0 29 32 3
v2 0 ∞ 1 83 21
v4 2 30 12 ∞ 0
v5 30 17 0 49 ∞
S(v6 , v3 ) v6 6 12 12 ∞
L1 =L0 +∆=81
à
0 0
v1 v2 v3 v4 v5 βj Bj
v1 ∞ 0 29 32 3 0 3
v2 0 ∞ 1 83 21 0 1
v4 2 30 12 ∞ 0 0 2
v5 30 17 0 49 ∞ 0 17
v6 6 12 ∞ 0 0 0 0
á
αi 0 0 0 0 0 0
Aj 2 12 1 32 0 32
v1 v2 v3 v4 v5 v6
v1 ∞ 0 29 32 3 0
v2 0 ∞ 1 83 21 85
v3 75 58 ∞ 58 48 ∞
v4 2 30 12 ∞ 0 35
v5 30 17 0 49 ∞ 89
v6 6 12 12 0 0 ∞
L2 =L0 +φ6,3 =129
â
Ðèñ. 5.20
×òîáû îïðåäåëèòü L1 íèæíþþ ãðàíèöó äëèíû öèêëîâ ïîäìíîæåñòâà S(v6 , v3 ), íåîáõîäèìî ïðîâåñòè ðåäóêöèþ ìàòðèöû, ïðåäñòàâëåííîé íà ðèñ. 5.20,à. Ëþáàÿ ñòðîêà è ñòîëáåö ýòîé ìàòðèöû ñîäåðæàò íóëåâîå çíà÷åíèå, ñëåäîâàòåëüíî, ðåäóöèðîâàííàÿ ìàòðèöà èäåíòè÷íà èñõîäíîé.  ýòîì ñëó÷àå P P ∆= αi + βj =0 (ñì. ðèñ. 5.20,á ). Ïîýòîìó íèæíÿÿ ãðàíèöà äëÿ ïîäìíîæåñòâà S(v6 , v3 ) ñîâïàäàåò ñ ðàíåå íàéäåííîé íèæíåé ãðàíèöåé äëÿ âñåãî ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ, ò. å. ðàâíà 81. Ñðàâíèâàÿ íèæíèå ãðàíèöû îáîèõ ïîäìíîæåñòâ, óáåæäàåìñÿ, ÷òî äëÿ S(v6 , v3 ) îíà íèæå. Çíà÷èò, ðàçáèåíèþ ïîäëåæèò èìåííî ýòî ïîäìíîæåñòâî. Ðåçóëüòàòû ïîèñêà äóãè, ïî êîòîðîé ñëåäóåò ïðîèçâîäèòü ðàçáèåíèå, ïðåäñòàâëåíû íà ðèñ. 5.20,á. Ìàêñèìàëüíîå çíà÷åíèå øòðàôà φ4,6 =32 óêàçûâàåò íà äóãó (v4 , v6 ). Ïîýòîìó ðàçáèâàåì S(v6 , v3 ) íà äâà ïîäìíîæåñòâà, îäíî èç êîòîðûõ S(v4 , v6 ) ñîñòîèò èç öèêëîâ, ñîäåðæàùèõ äóãó (v4 , v6 ), öèêëû äðóãîãî S(v4 , v6 ) ýòîé äóãè íå ñîäåðæàò. Íàçâàííûì ïîäìíîæåñòâàì ñîîòâåòñòâóþò ìàòðèöû íà ðèñ. 5.21,à,â. Ïåðâàÿ ïîëó÷àåòñÿ, åñëè óäàëèòü ñòðîêó v4 è ñòîëáåö v6 ìàòðèöû íà ðèñ. 5.20. Ýòî ñîîòâåòñòâóåò âêëþ÷åíèþ â öèêë äóãè (v4 , v6 ), â ðåçóëüòàòå ÷åãî ôîðìèðóåòñÿ îðöåïü (v4 , v6 , v3 ). ×òîáû íå äîïóñòèòü îáðàçîâàíèÿ
133
òðåõâåðøèííîãî öèêëà (v4 , v6 , v3 , v4 ), ñëåäóåò çàáëîêèðîâàòü èñïîëüçîâàíèå îáðàòíîé äóãè (v3 , v4 ). Ïîýòîìó c3,4 ïîëàãàåì ðàâíûì ∞ . Âòîðàÿ ìàòðèöà (â) ïîëó÷àåòñÿ, åñëè â ìàòðèöå íà ðèñ. 5.20,á çíà÷åíèå ýëåìåíòà c4,6 ïîëîæèòü ðàâíûì ∞, çàïðåùàÿ òåì ñàìûì èñïîëüçîâàíèå äóãè (v4 , v6 ). S(v4 , v6 ) v1 v2 v3 v5
v1 ∞ 0 29 3
v2 0 ∞ 1 21
v4 v5 2 30 30 17 12 ∞ 0 0 ∞
L3 =L1 +∆=81
à
S(v4 , v6 ) v1 v2 v3 v5 βj Bj
v1 ∞ 0 29 3 0 3
v2 0 ∞ 1 21 0 1
v4 2 30 ∞ 0 0 2
v5 30 17 0 ∞ 0 17
αi 0 0 0 0 0
á
Ai 2 17 1 3 20
v1 v2 v3 v4 v5
v1 ∞ 0 29 32 3
v2 0 ∞ 1 83 21
v4 2 30 12 ∞ 0
v5 30 17 0 49 ∞
v6 6 12 ∞ ∞ 0
L4 =L1 +φ4,6 =113
â
Ðèñ. 5.21
Íèæíÿÿ ãðàíèöà äëèíû öèêëîâ ïîäìíîæåñòâà S(v4 , v6 ), ò. å. öèêëîâ, ñîäåðæàùèõ (v6 , v3 ) è íå ñîäåðæàùèõ (v4 , v6 ), ðàâíà ñóììå íèæíåé ãðàíèöû ïîäìíîæåñòâà S(v6 , v3 ) è øòðàôà φ4,6 çà íåèñïîëüçîâàíèå (v4 , v6 ) : L4 =L1 +φ4,6 =81+32=113. Äëÿ îïðåäåëåíèÿ íèæíåé ãðàíèöû ïîäìíîæåñòâà S(v4 , v6 ), â êîòîðîì âñå öèêëû ñîäåðæàò (v4 , v6 ) è (v6 , v3 ), ðåäóöèðóåì ìàòðèöó, ïðåäñòàâëåííóþ íà ðèñ. 5.21,à. È çäåñü ðåäóöèðîâàííàÿ ìàòðèöà èäåíòè÷íà èñõîäíîé (ñì. ðèñ. 5.21,á). Ïîýòîìó íèæíÿÿ ãðàíèöà L3 ïîäìíîæåñòâà S(v4 , v6 ) ñîâïàäàåò ñ ðàíåå íàéäåííîé íèæíåé ãðàíèöåé äëÿ S(v6 , v3 ) è ðàâíà 81. Ýòî ìåíüøå, ÷åì íèæíÿÿ ãðàíèöà L4 äëÿ S(v4 , v6 ) è íèæíÿÿ ãðàíèöà L2 äëÿ S(v6 , v3 ). Çíà÷èò, ðàçáèåíèþ ïîäëåæèò S(v4 , v6 ). Ðåçóëüòàòû ïîèñêà äóãè, ïî êîòîðîé ñëåäóåò ïðîèçâîäèòü ðàçáèåíèå, ïðåäñòàâëåíû íà ðèñ. 5.21,á. Ìàêñèìàëüíîå çíà÷åíèå øòðàôà φ2,1 =20 óêàçûâàåò íà äóãó (v2 , v1 ). Ðàçáèâàåì S(v4 , v6 ) íà äâà ïîäìíîæåñòâà S(v2 , v1 ) è S(v2 , v1 ). Ïåðâîå ñîñòîèò èç öèêëîâ, ñîäåðæàùèõ äóãó (v2 , v1 ), öèêëû âòîðîãî ýòîé äóãè íå ñîäåðæàò. Óêàçàííûì ïîäìíîæåñòâàì ñîîòâåòñòâóþò ìàòðèöû íà ðèñ. 5.22,à,â. Ìàòðèöà à ïîëó÷àåòñÿ, åñëè
134
óäàëèòü ñòðîêó v2 è ñòîëáåö v1 èç ìàòðèöû íà ðèñ. 5.21,á, à ýëåìåíò c1,2 ïîëîæèòü ðàâíûì ∞, ÷òîáû èñêëþ÷èòü îáðàòíóþ äóãó (v1 , v2 ). Ìàòðèöà â ïîëó÷àåòñÿ, åñëè â ìàòðèöå íà ðèñ. 5.21,á ýëåìåíò c2,1 ïîëîæèòü ðàâíûì ∞, çàïðåùàÿ òåì ñàìûì èñïîëüçîâàíèå äóãè (v2 , v1 ). S(v2 , v1 ) v1 v3 v5
v2 v4 0 ∞ 2 1 ∞ 21 0
v5 30 0 ∞
L5 =L3 +∆=84
à
S(v2 , v1 ) v2 v4 v5 αi Ai v1 v3 v5 βj Bj
∞ 0 20 1 20
0 ∞ 0 0 0
28 0 ∞ 0 28
á
2 28 0 0 0 20 3 28
v1 v2 v3 v5
v1 ∞ ∞ 29 3
v2 0 ∞ 1 21
v4 2 30 ∞ 0
v5 30 17 0 ∞
L6 =L3 +φ2,1 =101
â
Ðèñ. 5.22
Íèæíÿÿ ãðàíèöà L6 ïîäìíîæåñòâà S(v2 , v1 ) íàõîäèòñÿ êàê ñóììà íèæíåé ãðàíèöû L3 äëÿ S(v4 , v6 ) è øòðàôà φ2,1 çà íåèñïîëüçîâàíèå äóãè (v2 , v1 ) : L6 =81+20=101. ×òîáû íàéòè íèæíþþ ãðàíèöó L5 ïîäìíîæåñòâà S(v2 , v1 ), ñëåäóåò âûïîëíèòü ðåäóêöèþ ìàòðèöû à. Ðåçóëüòàò P ýòîé P îïåðàöèè ïðåäñòàâëåí íà ðèñ. 5.22,á. Ïàðàìåòð ∆= αi + βj â äàííîì ñëó÷àå ðàâåí 3. Ïîýòîìó íèæíÿÿ ãðàíèöà äëÿ S(v2 , v1 ) èìååò çíà÷åíèå L5 =L3 +∆=81+3=84. Òàê êàê L5 ìåíüøå, ÷åì íèæíèå ãðàíèöû L6 , L4 è L2 ïîäìíîæåñòâ S(v2 , v1 ) , S(v4 , v6 ) è S(v6 , v3 ) ñîîòâåòñòâåííî, òî î÷åðåäíîìó ðàçáèåíèþ ïîäëåæèò S(v2 , v1 ). Èñïîëüçóÿ ðåäóöèðîâàííóþ ìàòðèöó, ïðåäñòàâëåííóþ íà ðèñ. 5.22,á, íàõîäèì, ÷òî ìàêñèìàëüíûé ñóììàðíûé øòðàô φ1,4 =A1 +B4 =28+0=28 ñîîòâåòñòâóåò äóãå (v1 , v4 ). Ðàçáèåíèå ìíîæåñòâà S(v2 , v1 ) ïî ýòîé äóãå ïîðîæäàåò åùå äâà ïîäìíîæåñòâà S(v1 , v4 ) è S(v1 , v4 ). Ñîîòâåòñòâóþùèå ìàòðèöû ïðåäñòàâëåíû íà ðèñ. 5.23,à,â. Ïåðâàÿ ìàòðèöà (à) ïîëó÷åíà èç ìàòðèöû íà ðèñ. 5.22,á ïóòåì óäàëåíèÿ ñòðîêè v1 è ñòîëáöà v4 . Êðîìå òîãî, ïîñêîëüêó 135
äóãà (v1 , v4 ) ñîâìåñòíî ñ ðàíåå âûáðàííûìè äóãàìè îáðàçóåò îðöåïü (v2 , v1 , v4 , v6 , v3 ), íåîáõîäèìî çàïðåòèòü èñïîëüçîâàíèå äóãè (v3 , v2 ), çàìûêàþùåé ýòó öåïü. Ïîëàãàåì c3,2 =∞. Âòîðàÿ ìàòðèöà (â) ïîëó÷àåòñÿ, åñëè â ìàòðèöå, ïðåäñòàâëåííîé íà ðèñ. 5.22,á, ïðèíÿòü c1,4 =∞, ÷òîáû çàáëîêèðîâàòü èñïîëüçîâàíèå äóãè (v1 , v4 ). Íèæíèå ãðàíèöû äëÿ ïîäìíîæåñòâ S(v1 , v4 ) è S(v1 , v4 ) ñîîòâåòñòâåííî ðàâíû L7 =104 è L8 =112, ïðè÷åì äëÿ îòûñêàíèÿ L7 âûïîëíåíà ðåäóêöèÿ (ñì. ðèñ. 5.23,á) ìàòðèöû íà ðèñ. 5.23,à. S(v1 , v4 ) v3 v5
v2 v5 0 ∞ 0 20 ∞
L7 =L5 +∆=104
à
S(v1 , v4 ) v2 v5 αi A v3 v5 βj B
∞ 0 0 ∞
0 0 ∞ ∞ 20 ∞ 0 20 ∞ ∞
á
v1 v3 v5
v2 ∞ 0 20
v4 ∞ ∞ 0
v5 28 0 ∞
L8 =L5 +φ1,4 =112
â
Ðèñ. 5.23
Ñîäåðæèìîå ìàòðèöû íà ðèñ. 5.23,á óêàçûâàåò íà åäèíñòâåííóþ âîçìîæíîñòü ïîëó÷åíèÿ ãàìèëüòîíîâà öèêëà íà îñíîâå ñôîðìèðîâàííîé ê äàííîìó ìîìåíòó öåïè (v2 , v1 , v4 , v6 , v3 ). Ýòî èñïîëüçîâàíèå "íóëåâûõ" äóã (v3 , v5 ) è (v5 , v2 ).  ðåçóëüòàòå èìååì ãàìèëüòîíîâ öèêë (v2 , v1 , v4 , v6 , v3 , v5 , v2 ), äëèíà êîòîðîãî ðàâíà L7 , ò. å. 104. Íà ôîíå çíà÷åíèé âåñîâ äóã, ñîäåðæàùèõñÿ â èñõîäíîé ìàòðèöå (ñì. ðèñ. 5.19,à), ïîëó÷åííûé ðåçóëüòàò ïðåäñòàâëÿåòñÿ î÷åíü õîðîøèì, îäíàêî óòâåðæäàòü, ÷òî ýòî êðàò÷àéøèé öèêë, ïîêà íåëüçÿ. Äåéñòâèòåëüíî, íèæíÿÿ ãðàíèöà L6 , äëÿ ìíîæåñòâà S(v2 , v1 ) 27 èìååò çíà÷åíèå 101 (ñì. ðèñ. 5.22,â), à ýòî ìåíüøå, ÷åì äëèíà íàéäåííîãî ãàìèëüòîíîâà öèêëà. Ïîýòîìó âïîëíå âîçìîæíî, ÷òî ñðåäè öèêëîâ ýòîãî ìíîæåñòâà åñòü öèêë ìåíüøåé, ÷åì L7 , èëè ðàâíîé äëèíû. Ñëåäîâàòåëüíî, íåîáõîäèìî ïðîäîëæèòü ïðîöåññ ðàçáèå27 Ìíîæåñòâî
ãàìèëüòîíîâûõ öèêëîâ, ñîäåðæàùèõ äóãè (v4 , v6 ) è (v6 , v3 ), íî íå ñîäåðæàùèõ äóãó (v2 , v1 ).
136
S(v2 , v1 ) v1 v2 v3 v5
v1 ∞ ∞ 29 3
v2 0 ∞ 1 21
v4 2 30 ∞ 0
v5 30 17 0 ∞
L6 =L3 +∆=101 S(v5 , v1 ) v2 0 ∞ 1
v1 v1 ∞ v2 ∞ - v3 26 v5 0 βj 3 B 26 ¡ ¡ ª
v4 v5 2 30 ∞ 13 0 ∞ 0
S(v1 , v4 ) v2 v5 v2 ∞ 0 0 v3 1 ∞
v4 2 13 ∞ 0 0 2
v5 30 0 0 ∞ 0 0
0 ∞ 1 0 1
0 11 ∞ 2 11
∞ 0 0 0 0
0 0 0 11 0 1 2 11
¡¡ ª
- v2 v3 βj L11 =L9 +∆=104 B
αi 0 17 0 0 20
v2 v4 v5 αi A
v1 - v2 v3 βj L9 =L6 +∆=103 B v1 v2 v3
v2 0 ∞ 1 21 0 1
v2 v5 αi A ∞ 0 0 ∞
0 0 ∞ ∞ 1 ∞ 0 1 ∞ ∞
A 2 13 1 0 26 @ @ R v1 v2 v3 v5
S(v5 , v1 ) v1 v2 v4 ∞ 0 2 ∞ ∞ 13 26 1 ∞ ∞ 21 0
v5 30 0 0 ∞
L10 =L6 +φ5,1 =127 @ @ R S(v1 , v4 ) v2 v4 v5 v1 0 ∞ ∞ v2 ∞ 11 0 v3 1 ∞ 0 L12 =L9 +φ1,4 =114
Ðèñ. 5.24
íèÿ, íà÷èíàÿ ñ ìíîæåñòâà S(v2 , v1 ), êàê ïîêàçàíî íà ðèñ. 5.24. Ðåçóëüòàòû ïðîäåëàííûõ îïåðàöèé ñâèäåòåëüñòâóþò î íàëè÷èè ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ28 S(v1 , v4 ) ñ íèæíåé ãðàíèöåé L11 =104, âêëþ÷àþùèõ äóãè (v6 , v3 ), (v4 , v6 ), (v5 , v1 ), (v1 , v4 ), êîòîðûå â ñîâîêóïíîñòè îáðàçóþò îðöåïü (v5 , v1 , v4 , v6 , v3 ). Ïîñêîëüêó ðåäóöèðîâàííàÿ ìàòðèöà äëÿ S(v1 , v4 ) ñîäåðæèò äâå "íóëåâûõ" äóãè (v2 , v5 ) è (v3 , v2 ), çàìûêàþùèõ ýòó 28 Â
äàííîì ñëó÷àå ýòî ìíîæåñòâî ñîñòîèò ëèøü èç îäíîãî öèêëà.
137
öåïü â ãàìèëüòîíîâ öèêë (v2 , v5 , v1 , v4 , v6 , v3 , v2 ), äëèíà ïîñëåäíåãî ðàâíà L11 =104. Áèíàðíîå äåðåâî, îòðàæàþùåå âñå âûïîëíÿâøèåñÿ ðàçáèåíèÿ ìíîæåñòâà ãàìèëüòîíîâûõ öèêëîâ ðàññìàòðèâàåìîãî ãðàôà, èçîáðàæåíî íà ðèñ. 5.25. Äâå êîíöåâûå âåðøèíû äåðåâà, Âñå ãàìèëüòîíîâû öèêëû H H j²¯ L0 =81 ±° Q Q ²¯ ²¯ Q Ãàìèëüòîíîâû öèêëû, 6;3 L2 =129 L1 =81 6;3 ñîäåðæàùèå äóãè (v6 , v3 ) è ±° ±° Q Q ²¯ (v4 , v6 ) , íî íå ñîäåðæàùèå ²¯ Q äóãó (v2 , v1 ). L3 =81 4;6 4;6 L4 =113 ```±° ±° ``` ``` @@ L6 =101 R ²¯ `` `²¯ 2;1 L5 =84 2;1 ±° ±° Q Q Q ²¯ Q ²¯ Q²¯ ²¯ Q 1;4 L8 =112 L9 =103 5;1 5;1 L10 =127 L7 =104 1;4 ±° ±° ±° ±° Q }| { z Q ²¯ ²¯ Q (1; 4)(4; 6)(6; 3)(3; 5)(5; 2)(2; 1) 1;4 L12 =114 L11 =104 1;4 ±° ±° z }| { (1; 4)(4; 6)(6; 3)(3; 2)(2; 5)(5; 1)
Êðàò÷àéøèå ãàìèëüòîíîâû öèêëû Ðèñ. 5.25
èìåþùèå íàèìåíüøåå çíà÷åíèå íèæíåé ãðàíèöû, îïðåäåëÿþò îïòèìàëüíîå ðåøåíèå çàäà÷è.  äàííîì ãðàôå ñóùåñòâóþò äâà êðàò÷àéøèõ ãàìèëüòîíîâûõ öèêëà, äëèíà êîòîðûõ ðàâíà 104.
138
Ñïèñîê ëèòåðàòóðû 1. Õàðàðè, Ô. Òåîðèÿ ãðàôîâ / Ô. Õàðàðè. Ì. : Ìèð, 1973. 300 ñ. 2. Áåëîâ, Â. Â. Òåîðèÿ ãðàôîâ: Ó÷åá. ïîñîáèå äëÿ âòóçîâ / Â. Â. Áåëîâ, Å. Ì. Âîðîáúåâ, Â. Å. Øàòàëîâ. Ì. : Âûñø. øê., 1976. 392 ñ. 3. Óèëñîí, Ð. Ââåäåíèå â òåîðèþ ãðàôîâ / Ð. Óèëñîí. Ì. : Ìèð, 1977. 207 ñ. 4. Õàðàðè, Ô. Ïåðå÷èñëåíèå ãðàôîâ / Ô. Õàðàðè, Ý. Ïàëìåð. Ì. : Ìèð, 1977. 324 ñ. 5. Êðèñòîôèäåñ, Í. Òåîðèÿ ãðàôîâ. Àëãîðèòìè÷åñêèé ïîäõîä / Í. Êðèñòîôèäåñ. Ì. : Ìèð, 1978. 432 ñ. 6. Îðå, Î. Òåîðèÿ ãðàôîâ / Î. Îðå. Ì. : Íàóêà, 1980. 336 ñ. 7. Ðåéíãîëüä, Ý. Êîìáèíàòîðíûå àëãîðèòìû. Òåîðèÿ è ïðàêòèêà / Ý. Ðåéíãîëüä, Þ. Íèâåðãåëüò, Í. Äåî. Ì. : Ìèð, 1980. 476 ñ. 8. Ñâàìè, Ì. Ãðàôû, ñåòè è àëãîðèòìû / Ì. Ñâàìè, Ê. Òõóëàñèðàìàí. Ì. : Ìèð, 1984. 454 ñ. 9. Åâñòèãíååâ, Â.À. Ïðèìåíåíèå òåîðèè ãðàôîâ â ïðîãðàììèðîâàíèè / Â. À. Åâñòèãíååâ. Ì. : Íàóêà, 1985. 352 ñ. 10. Ìàéíèêà, Ý. Àëãîðèòìû îïòèìèçàöèè íà ñåòÿõ è ãðàôàõ / Ý. Ìàéíèêà. Ì. : Ìèð, 1985. 323 ñ. 11. Çûêîâ, À. À. Îñíîâû òåîðèè ãðàôîâ / À. À. Çûêîâ. Ì. : Íàóêà, 1987. 384 ñ. 12. Ëåêöèè ïî òåîðèè ãðàôîâ / Â. À. Åìåëè÷åâ, Î. È. Ìåëüíèêîâ, Â. È. Ñàðâàíîâ, Ð. È. Òûøêåâè÷. Ì. : Íàóêà, 1990. 384 ñ. 13. Ðîìàíîâñêèé, È. Â. Äèñêðåòíûé àíàëèç: ó÷åá. ïîñîáèå / È. Â. Ðîìàíîâñêèé. ÑÏá. : Íåâñêèé äèàëåêò, 2000. 240 ñ. 14. Àõî, À. Ñòðóêòóðû äàííûõ è àëãîðèòìû / À. Àõî, Äæ. Õîïêðîôò, Äæ. Óëüìàí. Ì. : Èçäàòåëüñêèé äîì "Âèëüÿìñ", 2001. 384 ñ. 15. Íîâèêîâ, Ô. À. Äèñêðåòíàÿ ìàòåìàòèêà äëÿ ïðîãðàììèñòîâ / Ô. À. Íîâèêîâ. ÑÏá. : Ïèòåð, 2001. 301 ñ. 16. Èâàíîâ, Á. Í. Äèñêðåòíàÿ ìàòåìàòèêà. Àëãîðèòìû è ïðîãðàììû: ó÷åá. ïîñîáèå / Á. Í. Èâàíîâ. Ì. : Ëàáîðàòîðèÿ Áàçîâûõ Çíàíèé, 2002. 288 ñ. 17. Ñýäæâèê, Ð. Ôóíäàìåíòàëüíûå àëãîðèòìû íà Ñ. Àëãîðèòìû íà ãðàôàõ / Ð. Ñýäæâèê. ÑÏá : ÎÎÎ "ÄèàÑîôòÞÏ", 2003. 480 ñ. 18. Îêóëîâ, Ñ.Ì. Ïðîãðàììèðîâàíèå â àëãîðèòìàõ / Ñ. Ì. Îêóëîâ. Ì. : ÁÈÍÎÌ. Ëàáîðàòîðèÿ áàçîâûõ çíàíèé, 2006. 383 ñ.
139
Óêàçàòåëü îáîçíà÷åíèé G G G∗ ˜ G On Cn Pn Kn
Kn1 ,n2 Tn T V E A v, u, w e, {v, u} a, (v, u) n m A B C R Q D K S Φ adj v d(v, u) deg v deg+ v deg− v Γ+ (v) Γ− (v) l(v) e(v) r(G) d(G) ν(G) ρ(G)
ãðàô äîïîëíèòåëüíûé ãðàô ãðàô êîíäåíñàöèè ãðàô òðàíçèòèâíîãî çàìûêàíèÿ ïóñòîé ãðàô öèêë öåïü ïîëíûé ãðàô ïîëíûé äâóäîëüíûé ãðàô äåðåâî òóðíèð ìíîæåñòâî âåðøèí ìíîæåñòâî ðåáåð ìíîæåñòâî äóã âåðøèíû ðåáðà äóãè ÷èñëî âåðøèí ÷èñëî ðåáåð (äóã) Ìàòðèöà: ñìåæíîñòè èíöèäåíòíîñòè âåñîâ ðåáåð (äóã) ïðÿìûõ äîñòèæèìîñòåé îáðàòíûõ äîñòèæèìîñòåé ðàññòîÿíèé Êèðõãîôà ôóíäàìåíòàëüíûõ ðàçðåçîâ ôóíäàìåíòàëüíûõ öèêëîâ îêðóæåíèå âåðøèíû v ðàññòîÿíèå ìåæäó âåðøèíàìè v è u ñòåïåíü âåðøèíû v ïîëóñòåïåíü èñõîäà âåðøèíû v ïîëóñòåïåíü çàõîäà âåðøèíû v ìíîæåñòâî êîíå÷íûõ âåðøèí äóã, âûõîäÿùèõ èç âåðøèíû v ìíîæåñòâî íà÷àëüíûõ âåðøèí äóã, âõîäÿùèõ â âåðøèíó v ìåòêà âåðøèíû v ýêñöåíòðèñèòåò âåðøèíû v ðàäèóñ ãðàôà G äèàìåòð ãðàôà G öèêëîìàòè÷åñêîå ÷èñëî (ðàíã) ãðàôà G êîöèêëîìàòè÷åñêîå ÷èñëî (ðàíã) ãðàôà G
140
Ïðåäìåòíûé óêàçàòåëü Àáñòðàêòíûé ãðàô, 10
êîìïîíåíòà ñâÿçíîñòè, 13, 32 êîöèêë, 101 êîöèêëîìàòè÷åñêîå ÷èñëî, 101 êðèòè÷åñêèé ïóòü, 96 êóáè÷åñêèé ãðàô, 15
àëãîðèòì: Äåéêñòðû, 82 Äåìóêðîíà, 29 Êðàñêàëà, 56 Ëè, 79 Ïðèìà, 63 Óîðøîëëà, 39 Ôëåðè, 105 Ôëîéäà, 87 àöèêëè÷åñêèé îðãðàô, 27
Ìàðøðóò, 30
ãðàô, 112 êîíòóð, 112 öèêë, 112 ãàìèëüòîíîâà öåïü, 113 ãðàô êîíäåíñàöèè, 33
ìàòðèöa: (ïðÿìûõ) äîñòèæèìîñòåé, 36 èíöèäåíòíîñòè, 20 èíöèäåíòíîñòè îðãðàôà, 25 Êèðõãîôà, 19 îáðàòíûõ äîñòèæèìîñòåé, 37 ñìåæíîñòè, 18 ñìåæíîñòè îðãðàôà, 24 ìàòðè÷íàÿ òåîðåìà î äåðåâüÿõ, 55 ìåòîä âåòâåé è ãðàíèö, 128 ìíîæåñòâî: áàçèñíûõ ðàçðåçîâ, 100 áàçèñíûõ öèêëîâ, 98 ôóíäàìåíòàëüíûõ ðàçðåçîâ, 100 ôóíäàìåíòàëüíûõ öèêëîâ, 98 ìóëüòèãðàô, 17
Äâóäîëüíûé ãðàô, 15
Íàäãðàô, 10
Áàçà ãðàôà, 41 Âåêòîð èíöèäåíòíîñòè, 20 âåðøèííî-ïîðîæäåííûé ïîäãðàô, 11 âîëíîâîé àëãîðèòì, 80, 81
Ãàìèëüòîíîâ:
íåçàâèñèìîå ìíîæåñòâî âåðøèí, 124 íåîðèåíòèðîâàííîå äåðåâî, 43 íåîðèåíòèðîâàííûé ãðàô, 5 íåïîìå÷åííûé ãðàô, 10 íåñâÿçíûé ãðàô, 13
äåðåâî, 14, 44 äèàìåòð ãðàôà, 22 äëèíà öåïè, 14 äîïîëíèòåëüíûé ãðàô, 14
Çàäà÷à:
êîììèâîÿæåðà, 126 ïî÷òàëüîíà, 109 òðàññèðîâêè, 78
Îãðàíè÷åííàÿ äîñòèæèìîñòü, 38 îäíîðîäíûé ãðàô, 15 îäíîñòîðîííå ñâÿçíûé ãðàô, 31 îäíîñòîðîííÿÿ êîìïîíåíòà, 32 îðèåíòèðîâàííàÿ ïðîñòàÿ öåïü, 30 îðèåíòèðîâàííàÿ öåïü, 30 îðèåíòèðîâàííîå äåðåâî, 45
Èçîìîðôèçì, 7 èíâàðèàíò, 8
k äîëüíûé ãðàô, 17 êîä Ïðþôåðà, 48
141
îðèåíòèðîâàííûé ãðàô, 23 îðèåíòèðîâàííûé ìàðøðóò, 30 îðìàðøðóò, 30 îðöåïü, 30 îñòîâ, 44 îñòîâíîå äåðåâî, 44 îñòîâíûé ëåñ, 44 îñòîâíûé ïîäãðàô, 10
ñòåïåííàÿ ïîñëåäîâàòåëüíîñòü, 6 ñòåïåíü âåðøèíû, 6 ñóãðàô, 12
Òåîðåìà:
ÁèíåÊîøè, 53 Äèðàêà, 115 Êåíèãà, 16 Êèðõãîôà, 55 Êýëè, 55 Îðå, 114 Ýéëåðà î ñóììå ñòåïåíåé âåðøèí ãðàôà, 7 Ýéëåðà î ñóùåñòâîâàíèè ýéëåðîâà öèêëà â ãðàôå, 103 òîïîëîãè÷åñêàÿ ñîðòèðîâêà, 27 òðàíçèòèâíîå çàìûêàíèå ãðàôà, 39 òðàíçèòèâíûé ãðàô, 38 òóðíèð, 26
Ïîäãðàô, 10
ïîèñê â øèðèíó, 77 ïîëíûé ãðàô, 14 ïîëíûé äâóäîëüíûé ãðàô, 16 ïîëóãàìèëüòîíîâ ãðàô, 113 ïîëóìàðøðóò, 30 ïîëóïóòü, 30 ïîëóñòåïåíü çàõîäà, 24 ïîëóñòåïåíü èñõîäà, 24 ïîëóöåïü, 30 ïîëóýéëåðîâ ãðàô, 102 ïîðÿäêîâàÿ ôóíêöèÿ ãðàôà, 28 ïîðÿäîê ãðàôà, 6 ïðàâèëüíûé ðàçðåç, 100 ïðîñòàÿ îðöåïü, 30 ïðîñòàÿ öåïü, 14 ïðîñòîé ðàçðåç, 100 ïðîñòîé öèêë, 14 ïñåâäîãðàô, 17 ïóñòîé ãðàô, 13 ïóòü, 30
Ôîðìóëà Ïîéà, 10 Öåíòð ãðàôà, 22
öåíòðàëüíàÿ âåðøèíà, 22 öåïü, 14 öèêë, 14 öèêëîìàòè÷åñêîå ÷èñëî, 99
×àñòü ãðàôà, 12
Ðàäèóñ ãðàôà, 22
ðàçðåç, 100 ðàññòîÿíèå ìåæäó âåðøèíàìè, 22 ðåáåðíî-ïîðîæäåííûé ïîäãðàô, 11 ðåãóëÿðíûé ãðàô, 15 ðåäóêöèÿ ìàòðèöû, 130
Ñàìîäîïîëíèòåëüíûé ãðàô, 15 ñâÿçíûé ãðàô, 13, 14 ñèëüíàÿ êîìïîíåíòà, 32 ñèëüíî ñâÿçíûé ãðàô, 31 ñëàáàÿ êîìïîíåíòà, 32 ñëàáî ñâÿçíûé ãðàô, 31 ñïèñîê âåðøèí, 21 ñïèñîê ðåáåð, 21
142
Ýéëåðîâ ãðàô, 102
ýéëåðîâ öèêë, 102 ýéëåðîâà öåïü, 102 ýêñöåíòðèñèòåò âåðøèíû, 22
Ñîäåðæàíèå Ïðåäèñëîâèå
3
1. Ââåäåíèå 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7.
5
Îïðåäåëåíèå ãðàôà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ïîäãðàôû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Âèäû ãðàôîâ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ìàòðèöû ãðàôîâ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Äèàìåòð, ðàäèóñ è öåíòð ãðàôà . . . . . . . . . . . . . . . . . . . . . . . Îðèåíòèðîâàííûå ãðàôû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ìàðøðóòû, öåïè è ïðîñòûå öåïè . . . . . . . . . . . . . . . . . . . . . .
2. Ñâÿçíîñòü â îðãðàôàõ 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8.
5 10 13 18 22 23 30
31
Îñíîâíûå ïîíÿòèÿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Êîìïîíåíòû ñâÿçíîñòè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Êîíäåíñàöèÿ îðãðàôà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Îòûñêàíèå ñèëüíûõ êîìïîíåíò . . . . . . . . . . . . . . . . . . . . . . . . Ìàòðèöû äîñòèæèìîñòåé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ïîëó÷åíèå ìàòðèöû äîñòèæèìîñòåé. . . . . . . . . . . . . . . . . . . Àëãîðèòì Óîðøîëëà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Áàçà ãðàôà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Äåðåâüÿ
31 32 33 33 36 38 39 41
43
3.1. Îñíîâíûå ïîíÿòèÿ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Îïèñàíèå äåðåâüåâ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Çàäà÷è ñ äåðåâüÿìè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Ïåðå÷èñëåíèå îñòîâíûõ äåðåâüåâ . . . . . . . . . . . . . . . 3.3.2. Ïåðåñ÷åò îñòîâíûõ äåðåâüåâ . . . . . . . . . . . . . . . . . . . . 3.4. Çàäà÷à î êðàò÷àéøåì îñòîâå ãðàôà . . . . . . . . . . . . . . . . . . . 3.4.1. Àëãîðèòì Êðàñêàëà . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2. Àëãîðèòì Ïðèìà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
43 46 50 50 53 56 56 63
4. Ïóòè è ìàðøðóòû â ãðàôàõ 4.1. 4.2. 4.3. 4.4.
Ñóùåñòâîâàíèå ïóòåé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ïåðåñ÷åò ìàðøðóòîâ è ïóòåé . . . . . . . . . . . . . . . . . . . . . . . . . . Ïåðå÷èñëåíèå ìàðøðóòîâ è ïóòåé . . . . . . . . . . . . . . . . . . . . . Çàäà÷è î êðàò÷àéøèõ ïóòÿõ . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1. Ãðàôû ñ äóãàìè åäèíè÷íîé äëèíû . . . . . . . . . . . . . 4.4.2. Ãðàôû ñî âçâåøåííûìè äóãàìè (ðåáðàìè) . . . . . 4.4.3. Àöèêëè÷åñêèå îðãðàôû . . . . . . . . . . . . . . . . . . . . . . . .
5. Öèêëû
70 70 71 73 75 77 81 92
98
5.1. Ôóíäàìåíòàëüíûå öèêëû è ðàçðåçû . . . . . . . . . . . . . . . . . . . 98 5.2. Ýéëåðîâû öèêëû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.2.1. Îïðåäåëåíèå è óñëîâèÿ ñóùåñòâîâàíèÿ . . . . . . . . . 102 5.2.2. Àëãîðèòì ïîèñêà ýéëåðîâà öèêëà . . . . . . . . . . . . . . 105 5.2.3. Î êîëè÷åñòâå ýéëåðîâûõ ãðàôîâ . . . . . . . . . . . . . . . 108 5.2.4. Çàäà÷à ïî÷òàëüîíà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.3. Ãàìèëüòîíîâû öèêëû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.3.1. Îïðåäåëåíèå è óñëîâèÿ ñóùåñòâîâàíèÿ . . . . . . . . . 112 5.3.2. Ìåòîäû ïîèñêà ãàìèëüòîíîâûõ öèêëîâ . . . . . . . . . 116 5.4. Çàäà÷à êîììèâîÿæåðà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.4.1. Ïðèìåíåíèå è ìåòîäû ðåøåíèÿ çàäà÷è . . . . . . . . . 127 5.4.2. Ìåòîä âåòâåé è ãðàíèö . . . . . . . . . . . . . . . . . . . . . . . . . 128 Ñïèñîê ëèòåðàòóðû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Óêàçàòåëü îáîçíà÷åíèé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Ïðåäìåòíûé óêàçàòåëü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
144