Презентация (В. Савченко - Анализ алиасов), страница 3
Описание файла
Файл "Презентация" внутри архива находится в папке "В. Савченко - Анализ алиасов". PDF-файл из архива "В. Савченко - Анализ алиасов", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Òîãäà êàæäîé ïåðåìåííîé áóäåò ñîïîñòàâëåíîm-çíà÷íîå ÷èñëî. Èìåííî m áóäåò êîëè÷åñòâîì çàïóñêîâ, à i-ûéðàçðÿä áóäåò êàòåãîðèåé äàííîé ïåðåìåííîé â i-îì çàïóñêå.Èçâåñòíûå ðåøåíèÿÏîäõîä Ãîðâèö-Øàïèðî (97`)38 / 67Äëÿ äàííîé öåëè ìîæíî ïåðåíóìåðîâàòü êàæäóþ ïåðåìåííóþ ïîîñíîâàíèþ k. Òîãäà êàæäîé ïåðåìåííîé áóäåò ñîïîñòàâëåíîm-çíà÷íîå ÷èñëî. Èìåííî m áóäåò êîëè÷åñòâîì çàïóñêîâ, à i-ûéðàçðÿä áóäåò êàòåãîðèåé äàííîé ïåðåìåííîé â i-îì çàïóñêå.ÏðèìåðÏóñòü èìååòñÿ 4 ïåðåìåííûå a, b, c è d è k = 2. Ïðîíóìåðóåìïåðåìåííûå:a00 , b01 , c10 , d11Èçâåñòíûå ðåøåíèÿÏîäõîä Ãîðâèö-Øàïèðî (97`)38 / 67Äëÿ äàííîé öåëè ìîæíî ïåðåíóìåðîâàòü êàæäóþ ïåðåìåííóþ ïîîñíîâàíèþ k.
Òîãäà êàæäîé ïåðåìåííîé áóäåò ñîïîñòàâëåíîm-çíà÷íîå ÷èñëî. Èìåííî m áóäåò êîëè÷åñòâîì çàïóñêîâ, à i-ûéðàçðÿä áóäåò êàòåãîðèåé äàííîé ïåðåìåííîé â i-îì çàïóñêå.ÏðèìåðÏóñòü èìååòñÿ 4 ïåðåìåííûå a, b, c è d è k = 2. Ïðîíóìåðóåìïåðåìåííûå:a00 , b01 , c10 , d11Ïðè òàêîì ïîäõîäå èìååì m = blogk (n − 1)c + 1 è,ñîîòâåòñòâåííî, âðåìÿ âûïîëíåíèÿ O(logk (n)k2n).Èçâåñòíûå ðåøåíèÿÏîäõîä Ãîðâèö-Øàïèðî (97`)38 / 67ÐåçóëüòàòûÍà 25 òåñòàõ, ïðè èñïîëüçîâàíèè 3 êàòåãîðèé, ðåçóëüòèðóþùèåìíîæåñòâà, ïîëó÷åííûå ìåòîäîì Ãîðâèö-Øàïèðî, â ñðåäíåì â2.67 ðàç áîëüøå, ÷åì ìíîæåñòâà Àíäåðñåíà (äëÿ Ñòèíñãàðäà ýòîòìíîæèòåëü ðàâåí 4.75).Ïîäõîä Ãîðâèö-Øàïèðî ìåäëåííåå Ñòèíñãàðäà, íî îò 7 äî 25 ðàçáûñòðåå Àíäåðñåíà.Èçâåñòíûå ðåøåíèÿÏîäõîä Ãîðâèö-Øàïèðî (97`)39 / 67Èñïîëüçîâàíèå ïîòîêîâî- è êîíòåêñòíî-íå÷óâñòâèòåëüíûõàëãîðèòìîâÑîâðåìåííûå èññëåäîâàíèÿÒåíäåíöèè40 / 67Èñïîëüçîâàíèå ïîòîêîâî- è êîíòåêñòíî-íå÷óâñòâèòåëüíûõàëãîðèòìîâÐàçðàáîòêà áîëåå ãèáêîãî àíàëèçà, ÷åì ïðåäñòàâëåííûåðàíåå (ïîëå-÷óâñòâèòåëüíîñòü, ðàçäåëåíèå àãðåãàòîâ,ìîäåëèðîâàíèå êó÷è)Ñîâðåìåííûå èññëåäîâàíèÿÒåíäåíöèè40 / 67Èñïîëüçîâàíèå ïîòîêîâî- è êîíòåêñòíî-íå÷óâñòâèòåëüíûõàëãîðèòìîâÐàçðàáîòêà áîëåå ãèáêîãî àíàëèçà, ÷åì ïðåäñòàâëåííûåðàíåå (ïîëå-÷óâñòâèòåëüíîñòü, ðàçäåëåíèå àãðåãàòîâ,ìîäåëèðîâàíèå êó÷è)Èñïîëüçîâàíèå àëãîðèòìà Àíäåðñåíà, âåðíåå àëãîðèòìîâ,áåðóùèõ îò íåãî íà÷àëî (Andersen-style algorithms) èëè êàêèõ åùå íàçûâàþò àëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè(inclusion based)Ñîâðåìåííûå èññëåäîâàíèÿÒåíäåíöèè40 / 67Èñïîëüçîâàíèå ïîòîêîâî- è êîíòåêñòíî-íå÷óâñòâèòåëüíûõàëãîðèòìîâÐàçðàáîòêà áîëåå ãèáêîãî àíàëèçà, ÷åì ïðåäñòàâëåííûåðàíåå (ïîëå-÷óâñòâèòåëüíîñòü, ðàçäåëåíèå àãðåãàòîâ,ìîäåëèðîâàíèå êó÷è)Èñïîëüçîâàíèå àëãîðèòìà Àíäåðñåíà, âåðíåå àëãîðèòìîâ,áåðóùèõ îò íåãî íà÷àëî (Andersen-style algorithms) èëè êàêèõ åùå íàçûâàþò àëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè(inclusion based)Àíàëèç ôîðìû (shape analysis) è ðàçäåëÿþùàÿ ëîãèêà(separation logic)Ñîâðåìåííûå èññëåäîâàíèÿÒåíäåíöèè40 / 67Ãðàô îãðàíè÷åíèéÄëÿ ïîñòðîåíèÿ ðåçóëüòèðóþùèõ ìíîæåñòâ âñå ñîâðåìåííûåàëãîðèòìû äàííîãî òèïà èñïîëüçóþò ãðàô îãðàíè÷åíèé.ÎïðåäåëåíèåÃðàôîì îãðàíè÷åíèéáóäåì íàçûâàòü G =< M, E >, òàêîé ÷òîè E = {(p1, p2) : p1, p2 ∈ P ∧ Vp ⊆ Vp }Ïðè ýòîì êàæäàÿ âåðøèíà p ìàðêèðóåòñÿ ìíîæåñòâîì Vp.M =PÑîâðåìåííûå èññëåäîâàíèÿ12Àëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè41 / 67Ïðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;ABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;ABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;ABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;Îãðàíè÷åíèÿ:1VA ⊆ VDABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;Îãðàíè÷åíèÿ:12VA ⊆ VD∀T ∈ VD ⇒ VB ⊆ VTABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;Îãðàíè÷åíèÿ:123VA ⊆ VD∀T ∈ VD ⇒ VB ⊆ VT∀T ∈ VD ⇒ VT ⊆ VAABDCÏðèìåð: points-to ãðàôB = &A;A = &C;D = A;*D = B;A = *D;Îãðàíè÷åíèÿ:123ABDCVA ⊆ VD∀T ∈ VD ⇒ VB ⊆ VT∀T ∈ VD ⇒ VT ⊆ VAÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè42 / 67Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;ABDCÏðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;ABDC{A}Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;{C}ABDC{A}Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;{C}{C}ABDC{A}Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;{C}{C}ABDC{A}{A}Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;{C,A}{C,A}ABDC{A}{A}Ïðèìåð: ãðàô îãðàíè÷åíèéB = &A;A = &C;D = A;*D = B;A = *D;Ñîâðåìåííûå èññëåäîâàíèÿ{C,A}{C,A}ABDCÀëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè{A}{A}43 / 67Çàäà÷è ðàçðåøåíèÿ àëèàñîâ íà ãðàôå îãðàíè÷åíèé è points-toãðàôå ïðàêòè÷åñêè èäåíòè÷íû, òàê â ÷åì ñìûñë áûë âûáèðàòüèìåííî åãî?Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè44 / 67Çàäà÷è ðàçðåøåíèÿ àëèàñîâ íà ãðàôå îãðàíè÷åíèé è points-toãðàôå ïðàêòè÷åñêè èäåíòè÷íû, òàê â ÷åì ñìûñë áûë âûáèðàòüèìåííî åãî?Èíòåðåñíîå ñâîéñòâîÏóñòü â ãðàôå îãðàíè÷åíèé èìååòñÿ öèêë äëèíû n è p1ïðèíàäëåæèò ýòîìó öèêëó.
Òîãäà∃p2 , . . . , pn ∈ P : (p1 , p2 ), . . . , (pn−1 , pn ), (pn , p1 ) ∈ E . Èçîïðåäåëåíèÿ ãðàôà îãðàíè÷åíèé ïîëó÷àåì, ÷òîVp ⊆ Vp ⊆ · · · ⊆ Vp ⊆ Vp , îòêóäà î÷åâèäíî, ÷òîVp = Vp = · · · = Vp .12n12nÑîâðåìåííûå èññëåäîâàíèÿ1Àëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè44 / 67Çàäà÷è ðàçðåøåíèÿ àëèàñîâ íà ãðàôå îãðàíè÷åíèé è points-toãðàôå ïðàêòè÷åñêè èäåíòè÷íû, òàê â ÷åì ñìûñë áûë âûáèðàòüèìåííî åãî?Èíòåðåñíîå ñâîéñòâîÏóñòü â ãðàôå îãðàíè÷åíèé èìååòñÿ öèêë äëèíû n è p1ïðèíàäëåæèò ýòîìó öèêëó. Òîãäà∃p2 , .
. . , pn ∈ P : (p1 , p2 ), . . . , (pn−1 , pn ), (pn , p1 ) ∈ E . Èçîïðåäåëåíèÿ ãðàôà îãðàíè÷åíèé ïîëó÷àåì, ÷òîVp ⊆ Vp ⊆ · · · ⊆ Vp ⊆ Vp , îòêóäà î÷åâèäíî, ÷òîVp = Vp = · · · = Vp .12n12n1ÂûâîäÁåç ïîòåðè òî÷íîñòè àíàëèçà âñå óêàçàòåëè, âõîäÿùèå â öèêë,ìîæíî ñ÷èòàòü îäíîé âåðøèíîé â ãðàôå îãðàíè÷åíèé.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû, îñíîâàííûå íà âêëþ÷åíèè44 / 67Àëãîðèòì Õàéíòöå-Òàðäü¼ (01`)Ïðåäëîæåí Íåâèíîì Õàéíòöå è Îëèâåðîì Òàðäü¼ â 2001 ãîäó.ßâëÿåòñÿ Andersen-style àëãîðèòìîì è ïåðâûì ñðåäè òàêîãî ðîäààëãîðèòìîâ, ñïîñîáíûé àíàëèçèðîâàòü áîëüøèå ïðîåêòû íàïðàêòèêå (çà ðàçóìíîå âðåìÿ).Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)45 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Îñíîâíûå ìîìåíòû:Ïðè ïîñòðîåíèè ãðàôà:Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Îñíîâíûå ìîìåíòû:Ïðè ïîñòðîåíèè ãðàôà:1Êàæäîé âåðøèíå p ñîïîñòàâëÿåòñÿ ìíîæåñòâîBp = {q : p = &q }Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Îñíîâíûå ìîìåíòû:Ïðè ïîñòðîåíèè ãðàôà:1Êàæäîé âåðøèíå p ñîïîñòàâëÿåòñÿ ìíîæåñòâîBp = {q : p = &q }2Ïðèñâàèâàíèÿ âèäà *x = y è x = *y íàçûâàþòñÿ ñëîæíûìèè çàíîñÿòñÿ â îòäåëüíûé ñïèñîê CÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Îñíîâíûå ìîìåíòû:Ïðè ïîñòðîåíèè ãðàôà:1Êàæäîé âåðøèíå p ñîïîñòàâëÿåòñÿ ìíîæåñòâîBp = {q : p = &q }2Ïðèñâàèâàíèÿ âèäà *x = y è x = *y íàçûâàþòñÿ ñëîæíûìèè çàíîñÿòñÿ â îòäåëüíûé ñïèñîê CÄëÿ êàæäîãî îãðàíè÷åíèÿ âèäà *x = y íàõîäèì âîçìîæíûåàäðåñàòû {z} äëÿ x è ïðîâîäèì ðåáðî èç y â êàæäûé zÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Îñíîâíàÿ èäåÿÏîñòðîèòü ãðàô îãðàíè÷åíèé, ïðè äîáàâëåíèè íîâûõ ðåáåð èðàñïðîñòðàíåíèè points-to ìíîæåñòâ ïîïóòíî ñâîðà÷èâàòü öèêëûâ îäíó âåðøèíó.Îñíîâíûå ìîìåíòû:Ïðè ïîñòðîåíèè ãðàôà:1Êàæäîé âåðøèíå p ñîïîñòàâëÿåòñÿ ìíîæåñòâîBp = {q : p = &q }2Ïðèñâàèâàíèÿ âèäà *x = y è x = *y íàçûâàþòñÿ ñëîæíûìèè çàíîñÿòñÿ â îòäåëüíûé ñïèñîê CÄëÿ êàæäîãî îãðàíè÷åíèÿ âèäà *x = y íàõîäèì âîçìîæíûåàäðåñàòû {z} äëÿ x è ïðîâîäèì ðåáðî èç y â êàæäûé zÄëÿ êàæäîãî îãðàíè÷åíèÿ âèäà x = *y íàõîäèì âîçìîæíûåàäðåñàòû {z} äëÿ y è ïðîâîäèì ðåáðî èç êàæäîãî z â ∗y , èðåáðî èç ∗y â xÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)46 / 67Íàõîæäåíèå âîçìîæíûõ àäðåñàòîâÎò íà÷àëüíîé âåðøèíû x ïðîõîäèì â ãëóáèíó ïî âñåì âåðøèíàì,èçSêîòîðûõ èìåþòñÿ ðåáðà â x.
Ïðè ýòîì ñîáèðàåì ìíîæåñòâîBp , ãäå path - ìíîæåñòâî âñåõ ïðîéäåííûõ âåðøèí. Ïðèp∈pathïðîõîäå â ãëóáèíó ïîñåùåííûå âåðøèíû ïîìå÷àþòñÿ, ïðèâñòðå÷å ïîìå÷åííîé âåðøèíû öèêëè÷åñêàÿ ÷àñòü ãðàôàñëèâàåòñÿ â îäíó âåðøèíó.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Õàéíòöå-Òàðäü¼ (01`)47 / 67Íàõîæäåíèå âîçìîæíûõ àäðåñàòîâÎò íà÷àëüíîé âåðøèíû x ïðîõîäèì â ãëóáèíó ïî âñåì âåðøèíàì,èçSêîòîðûõ èìåþòñÿ ðåáðà â x. Ïðè ýòîì ñîáèðàåì ìíîæåñòâîBp , ãäå path - ìíîæåñòâî âñåõ ïðîéäåííûõ âåðøèí. Ïðèp∈pathïðîõîäå â ãëóáèíó ïîñåùåííûå âåðøèíû ïîìå÷àþòñÿ, ïðèâñòðå÷å ïîìå÷åííîé âåðøèíû öèêëè÷åñêàÿ ÷àñòü ãðàôàñëèâàåòñÿ â îäíó âåðøèíó.x4{e}x{a}{d}x3Ñîâðåìåííûå èññëåäîâàíèÿ{b}x1x2{c}Àëãîðèòì Õàéíòöå-Òàðäü¼ (01`)47 / 67Íàõîæäåíèå âîçìîæíûõ àäðåñàòîâÎò íà÷àëüíîé âåðøèíû x ïðîõîäèì â ãëóáèíó ïî âñåì âåðøèíàì,èçSêîòîðûõ èìåþòñÿ ðåáðà â x.
Ïðè ýòîì ñîáèðàåì ìíîæåñòâîBp , ãäå path - ìíîæåñòâî âñåõ ïðîéäåííûõ âåðøèí. Ïðèp∈pathïðîõîäå â ãëóáèíó ïîñåùåííûå âåðøèíû ïîìå÷àþòñÿ, ïðèâñòðå÷å ïîìå÷åííîé âåðøèíû öèêëè÷åñêàÿ ÷àñòü ãðàôàñëèâàåòñÿ â îäíó âåðøèíó.{b,c,d}{e}{a}x4Ñîâðåìåííûå èññëåäîâàíèÿxx1 , x2 , x3Àëãîðèòì Õàéíòöå-Òàðäü¼ (01`)47 / 67Àëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)Ïðåäëîæåí Äýâèäîì Ïèðñîì, Ïîëîì Êåëëè è Êðèñîì Õýíêèíîìâ 2004 ãîäó.ßâëÿåòñÿ ïåðâûì ïðèìåíèìûì ê ðåàëüíûì ïðîåêòàìïîòîêîâî-÷óâñòâèòåëüíûì Andersen-style àíàëèçîì.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)48 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:Vp ⊇ Vq ≡ p ⊇ qÑîâðåìåííûå èññëåäîâàíèÿ(p = q)Àëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:(p = q)q ∈ Vp ≡ p ⊇ {q} (p = &q)Vp ⊇ Vq ≡ p ⊇ qÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:(p = q)q ∈ Vp ≡ p ⊇ {q} (p = &q)Vp ⊇ Vq ≡ p ⊇ q∀t ∈ Vq ⇒ Vp ⊇ Vt ≡ p ⊇ ∗qÑîâðåìåííûå èññëåäîâàíèÿ(p = *q)Àëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:(p = q)q ∈ Vp ≡ p ⊇ {q} (p = &q)Vp ⊇ Vq ≡ p ⊇ q∀t ∈ Vq ⇒ Vp ⊇ Vt ≡ p ⊇ ∗q∀t ∈ Vp ⇒ Vt ⊇ Vq ≡ ∗p ⊇ qÑîâðåìåííûå èññëåäîâàíèÿ(p = *q)(*p = q)Àëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:(p = q)q ∈ Vp ≡ p ⊇ {q} (p = &q)Vp ⊇ Vq ≡ p ⊇ q(p = *q)∀t ∈ Vp ⇒ Vt ⊇ Vq ≡ ∗p ⊇ q (*p = q)∀t ∈ Vp ⇒ q ∈ Vt ≡ ∗p ⊇ {q} (*p = &q)∀t ∈ Vq ⇒ Vp ⊇ Vt ≡ p ⊇ ∗qÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Äëÿ óïðîùåíèÿ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ äëÿîãðàíè÷åíèé:(p = q)q ∈ Vp ≡ p ⊇ {q} (p = &q)Vp ⊇ Vq ≡ p ⊇ q(p = *q)∀t ∈ Vp ⇒ Vt ⊇ Vq ≡ ∗p ⊇ q (*p = q)∀t ∈ Vp ⇒ q ∈ Vt ≡ ∗p ⊇ {q} (*p = &q)∀t ∈ Vq ⇒ Vp ⊇ Vt ≡ p ⊇ ∗qÎãðàíè÷åíèÿ, ñîäåðæàùèå ∗, íàçûâàþòñÿ ñëîæíûìè.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)49 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ïðàâèëà ðàçðåøåíèÿ:Òðàíçèòèâíîñòü: τ1 ⊇τ {τ⊇2}{ττ3 }⊇ τ13Ñîâðåìåííûå èññëåäîâàíèÿ2Àëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ïðàâèëà ðàçðåøåíèÿ:Òðàíçèòèâíîñòü: τ1 ⊇τ {τ⊇2}{ττ3 }⊇ τ132Ðàçûìåíîâàíèå:Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ïðàâèëà ðàçðåøåíèÿ:Òðàíçèòèâíîñòü: τ1 ⊇τ {τ⊇2}{ττ3 }⊇ τ132Ðàçûìåíîâàíèå:1τ1 ⊇ ∗τ2 τ2 ⊇ {τ3 }τ1 ⊇ τ3Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ïðàâèëà ðàçðåøåíèÿ:Òðàíçèòèâíîñòü: τ1 ⊇τ {τ⊇2}{ττ3 }⊇ τ132Ðàçûìåíîâàíèå:1τ1 ⊇ ∗τ2 τ2 ⊇ {τ3 }τ1 ⊇ τ32∗τ1 ⊇ τ2 τ1 ⊇ {τ3 }τ3 ⊇ τ2Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67Òàêæå â ñîîòâåòñòâóþùåé ðàáîòå áûëè ñôîðìóëèðîâàíûôîðìàëüíûå ïðàâèëà ðàçðåøåíèÿ îãðàíè÷åíèé.Ïðàâèëà ðàçðåøåíèÿ:Òðàíçèòèâíîñòü: τ1 ⊇τ {τ⊇2}{ττ3 }⊇ τ132Ðàçûìåíîâàíèå:1τ1 ⊇ ∗τ2 τ2 ⊇ {τ3 }τ1 ⊇ τ32∗τ1 ⊇ τ2 τ1 ⊇ {τ3 }τ3 ⊇ τ23∗τ1 ⊇ {τ2 } τ1 ⊇ {τ3 }τ3 ⊇ {τ2 }Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)50 / 67 ðàáîòå ñäåëàíî îáîáùåíèå óòâåðæäåíèÿ ïðî öèêëû íà ñèëüíîãðàôà.Äîêàçàòåëüñòâî äàííîãî óòâåðæäåíèÿ àíàëîãè÷íî ïðåäûäóùåìó.ñâÿçíûå êîìïîíåíòûÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)51 / 67 ðàáîòå ñäåëàíî îáîáùåíèå óòâåðæäåíèÿ ïðî öèêëû íà ñèëüíîãðàôà.Äîêàçàòåëüñòâî äàííîãî óòâåðæäåíèÿ àíàëîãè÷íî ïðåäûäóùåìó.ñâÿçíûå êîìïîíåíòûÇàìå÷àíèåÒàê êàê ñëîæíîñòü âñåõ Andersen-style àíàëèçîâ ðàâíà O(n3), àñèëüíî ñâÿçíûå êîìïîíåíòû äëÿ ãðàôà G =< V, E > ìîãóò áûòüíàéäåíû çà O(|V | + |E|), òî ðàçóìíûì ðåøåíèåì áóäåòèñïîëüçîâàíèå äàííûõ àëãîðèòìîâ ïîèñêà ïðè ðåøåíèè.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)51 / 67 ðåçóëüòàòå ïðåäûäóùèõ çàìå÷àíèé ïîëó÷àåì ñëåäóþùóþïîñëåäîâàòåëüíîñòü äåéñòâèé:Ñâîðà÷èâàåì âåðøèíû èç ñèëüíî ñâÿçíûõ êîìïîíåíò,ïîëó÷åííûõ àëãîðèòìîì Òàðüÿíà (72`)Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)52 / 67 ðåçóëüòàòå ïðåäûäóùèõ çàìå÷àíèé ïîëó÷àåì ñëåäóþùóþïîñëåäîâàòåëüíîñòü äåéñòâèé:Ñâîðà÷èâàåì âåðøèíû èç ñèëüíî ñâÿçíûõ êîìïîíåíò,ïîëó÷åííûõ àëãîðèòìîì Òàðüÿíà (72`)Îáõîäèì âñå âåðøèíû ãðàôà â òîïîëîãè÷åñêîì ïîðÿäêå,ðàññìàòðèâàÿ âñå îãðàíè÷åíèÿ, ñâÿçàííûå ñ äàííîéâåðøèíîéÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)52 / 67 ðåçóëüòàòå ïðåäûäóùèõ çàìå÷àíèé ïîëó÷àåì ñëåäóþùóþïîñëåäîâàòåëüíîñòü äåéñòâèé:Ñâîðà÷èâàåì âåðøèíû èç ñèëüíî ñâÿçíûõ êîìïîíåíò,ïîëó÷åííûõ àëãîðèòìîì Òàðüÿíà (72`)Îáõîäèì âñå âåðøèíû ãðàôà â òîïîëîãè÷åñêîì ïîðÿäêå,ðàññìàòðèâàÿ âñå îãðàíè÷åíèÿ, ñâÿçàííûå ñ äàííîéâåðøèíîéÐàçðåøàåì èõ ñ ïîìîùüþ ïðàâèë ðàçûìåíîâàíèÿÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)52 / 67 ðåçóëüòàòå ïðåäûäóùèõ çàìå÷àíèé ïîëó÷àåì ñëåäóþùóþïîñëåäîâàòåëüíîñòü äåéñòâèé:Ñâîðà÷èâàåì âåðøèíû èç ñèëüíî ñâÿçíûõ êîìïîíåíò,ïîëó÷åííûõ àëãîðèòìîì Òàðüÿíà (72`)Îáõîäèì âñå âåðøèíû ãðàôà â òîïîëîãè÷åñêîì ïîðÿäêå,ðàññìàòðèâàÿ âñå îãðàíè÷åíèÿ, ñâÿçàííûå ñ äàííîéâåðøèíîéÐàçðåøàåì èõ ñ ïîìîùüþ ïðàâèë ðàçûìåíîâàíèÿÐàñïðîñòðàíÿåì ìíîæåñòâî ñâÿçàííîå, ñ ýòîé âåðøèíîé íàâñå âåðøèíû, êóäà åñòü ðåáðà èç ðàññìàòðèâàåìîé (ñïîìîùüþ ïðàâèëà òðàíçèòèâíîñòè)Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)52 / 67 ðåçóëüòàòå ïðåäûäóùèõ çàìå÷àíèé ïîëó÷àåì ñëåäóþùóþïîñëåäîâàòåëüíîñòü äåéñòâèé:Ñâîðà÷èâàåì âåðøèíû èç ñèëüíî ñâÿçíûõ êîìïîíåíò,ïîëó÷åííûõ àëãîðèòìîì Òàðüÿíà (72`)Îáõîäèì âñå âåðøèíû ãðàôà â òîïîëîãè÷åñêîì ïîðÿäêå,ðàññìàòðèâàÿ âñå îãðàíè÷åíèÿ, ñâÿçàííûå ñ äàííîéâåðøèíîéÐàçðåøàåì èõ ñ ïîìîùüþ ïðàâèë ðàçûìåíîâàíèÿÐàñïðîñòðàíÿåì ìíîæåñòâî ñâÿçàííîå, ñ ýòîé âåðøèíîé íàâñå âåðøèíû, êóäà åñòü ðåáðà èç ðàññìàòðèâàåìîé (ñïîìîùüþ ïðàâèëà òðàíçèòèâíîñòè)Ïîâòîðÿåì äî òåõ ïîð ïîêà èçìåíåíèÿ âíîñÿòñÿÑîâðåìåííûå èññëåäîâàíèÿÀëãîðèòì Ïèðñà-Êåëëè-Õýíêèíà (04`)52 / 67Àëãîðèòìû ëåíèâîãî è ãèáðèäíîãî îáíàðóæåíèÿöèêëîâ (07`)Ðàçðàáîòàíû è ïðåäñòàâëåíû Áåíîì Õàðäêîïôîì è ÊåëâèíîìËèíîì â 2007 ãîäó.Ñîåäèíÿþò ëó÷øèå èäåè ïðåäûäóùèõ ðàáîò è ïðåäñòàâëÿþòýâðèñòè÷åñêèé ïîäõîä ê ïîèñêó öèêëîâ.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)53 / 67 äàííîì ïîäõîäå èñïîëüçóåòñÿ íàáîð îãðàíè÷åíèé è ïðàâèëàðàçðåøåíèÿ àíàëîãè÷íûå ïîäõîäó Ïèðñà-Êåëëè-Õýíêèíà, çàèñêëþ÷åíèåì îãðàíè÷åíèÿ âèäà ∗p ⊇ {q}.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)54 / 67 äàííîì ïîäõîäå èñïîëüçóåòñÿ íàáîð îãðàíè÷åíèé è ïðàâèëàðàçðåøåíèÿ àíàëîãè÷íûå ïîäõîäó Ïèðñà-Êåëëè-Õýíêèíà, çàèñêëþ÷åíèåì îãðàíè÷åíèÿ âèäà ∗p ⊇ {q}.Îñóùåñòâëÿåòñÿ òàêæå íå ïîèñê öèêëîâ, à ïîèñê ñèëüíî ñâÿçíûõêîìïîíåíò (íåñìîòðÿ íà íàçâàíèå), îäíàêî, èñïîëüçóåòñÿ íåàëãîðèòì Òàðüÿíà, à åãî áîëåå ñîâðåìåííàÿ ìîäèôèêàöèÿ àëãîðèòì Íóóòèëû (95`).Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)54 / 67 äàííîì ïîäõîäå èñïîëüçóåòñÿ íàáîð îãðàíè÷åíèé è ïðàâèëàðàçðåøåíèÿ àíàëîãè÷íûå ïîäõîäó Ïèðñà-Êåëëè-Õýíêèíà, çàèñêëþ÷åíèåì îãðàíè÷åíèÿ âèäà ∗p ⊇ {q}.Îñóùåñòâëÿåòñÿ òàêæå íå ïîèñê öèêëîâ, à ïîèñê ñèëüíî ñâÿçíûõêîìïîíåíò (íåñìîòðÿ íà íàçâàíèå), îäíàêî, èñïîëüçóåòñÿ íåàëãîðèòì Òàðüÿíà, à åãî áîëåå ñîâðåìåííàÿ ìîäèôèêàöèÿ àëãîðèòì Íóóòèëû (95`).Äëÿ ðåàëèçàöèè ìíîæåñòâ èñïîëüçóþòñÿ áèíàðíûå äèàãðàììûðåøåíèé.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)54 / 67Àëãîðèòì ëåíèâîãî îáíàðóæåíèÿ öèêëîâÏîèñê öèêëîâ ÿâëÿåòñÿ íåîòúåìëèìîé ÷àñòüþ ñîâðåìåííûõAndersen-style àëãîðèòìîâ, îäíàêî, îí ïðîâîäèòñÿ íà êàæäîéèòåðàöèè àëãîðèòìà, ÷òî, ñêîðåå âñåãî, ÿâëÿåòñÿ èçáûòî÷íûì ⇒õîòåëîñü áû ïðåäúÿâèòü íåêîòîðóþ ýâðèñòèêó, ÷òîáû ðåøàòü,êîãäà ñòîèò çàïóñêàòü ïîèñê öèêëîâ.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)55 / 67Àëãîðèòì ëåíèâîãî îáíàðóæåíèÿ öèêëîâÏîèñê öèêëîâ ÿâëÿåòñÿ íåîòúåìëèìîé ÷àñòüþ ñîâðåìåííûõAndersen-style àëãîðèòìîâ, îäíàêî, îí ïðîâîäèòñÿ íà êàæäîéèòåðàöèè àëãîðèòìà, ÷òî, ñêîðåå âñåãî, ÿâëÿåòñÿ èçáûòî÷íûì ⇒õîòåëîñü áû ïðåäúÿâèòü íåêîòîðóþ ýâðèñòèêó, ÷òîáû ðåøàòü,êîãäà ñòîèò çàïóñêàòü ïîèñê öèêëîâ.Îñíîâíàÿ èäåÿÁóäåì çàïóñêàòü ïîèñê öèêëà, òîëüêî åñëè âñòðåòèëè äâåñîñåäíèõ âåðøèíû ñ îäèíàêîâûìè points-to ìíîæåñòâàìè.Äâàæäû ïî îäíîìó è òîìó æå ðåáðó ïîèñê öèêëîâ íåèíèöèèðóåòñÿ.Ñîâðåìåííûå èññëåäîâàíèÿÀëãîðèòìû ËÎÖ (LCD) è ÃÎÖ (HCD) (07`)55 / 67Àëãîðèòì ãèáðèäíîãî îáíàðóæåíèÿ öèêëîâÁûëî áû õîðîøî ïðîâîäèòü âîîáùå ëèøü åäèíè÷íûé ïîèñêöèêëîâ, íî ýòî íåâîçìîæíî, ò.ê.