˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯....

7

Upload: others

Post on 11-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

54

À.À. Ïàíüãèí, À.Â. Ïàíüãèí

ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 1, 2010ä ã.

Ïàíüãèí Àíäðåé Àëåêñàíäðîâè÷,Ïàíüãèí Àëåêñàíäð Âèêòîðîâè÷

ÇÀÄÀ×È ÍÀ ÏÅÐÅÏÐÀÂÓ. ÌÎÄÅËÈÐÎÂÀÍÈÅ.

ÀËÃÎÐÈÒÌÛ

© À.À. Ïàíüãèí, À.Â. Ïàíüãèí, 2010

Àííîòàöèÿ

Ðàññìàòðèâàåòñÿ øèðîêèé êëàññ çàäà÷ íà ïåðåïðàâó ñ ó÷åòîì ðàçëè÷íûõ îãðàíè-÷åíèé íà ñâÿçè ìåæäó ïåðñîíàæàìè. Ñ ïîìîùüþ ãðàôîâ ïðåäñòàâëåíû àëãîðèòìûðåøåíèÿ, ðåàëèçîâàííûå ïðîãðàììíî íà àëãîðèòìè÷åñêîì ÿçûêå Pascal è â ýëåêòðîí-íûõ òàáëèöàõ Excel.

Êëþ÷åâûå ñëîâà: çàäà÷è íà ïåðåïðàâó, ïîèñê â øèðèíó íà ãðàôå, ìîäåëèðîâàíèåâ MS Excel.

ÏÎÑÒÀÍÎÂÊÀ ÇÀÄÀ×È

Çàäà÷è äàííîãî òèïà îáû÷íî èñïîëüçó-þòñÿ äëÿ ðàçâèòèÿ àëãîðèòìè÷åñêîãî ñòèëÿìûøëåíèÿ øêîëüíèêîâ (â èãðîâîé ôîðìå). êîëëåêöèè öèôðîâûõ îáðàçîâàòåëüíûõðåñóðñîâ (ÖÎÐ) [1] â ñîñòàâ èíôîðìàöèîí-íîãî èñòî÷íèêà ñëîæíîé ñòðóêòóðû (ÈÈÑÑ)«Ìàòåìàòèêà íà êîìïüþòåðàõ» âõîäèò èìè-òàöèîííàÿ ìîäåëü ïåðåïðàâû ñ êîíñòðóêòî-ðîì çàäà÷ è çàäàíèåì ðàçëè÷íûõ îãðàíè÷å-íèé íà ñâÿçè ìåæäó ïåðñîíàæàìè (ðèñ. 1).

Ýòè îãðàíè÷åíèÿ ìîãóò áûòü ñëåäóþùå-ãî âèäà:

� çàäàíèå ãðóçîïîäúåìíîñòè èëè âìåñ-òèìîñòè ëîäêè;

� ïðèñóòñòâèå ëîäî÷íèêà;� îòäåëüíûé ïåðñîíàæ «êîíôëèêòóåò»

ñ äðóãèì ïåðñîíàæåì èëè îáúåêòîì («êîçà-êàïóñòà»);

� îòäåëüíûé ïåðñîíàæ «êîíôëèêòóåò»ñ äðóãèì ïåðñîíàæåì áåç ïðèñóòñòâèÿ (èëèïðè ïðèñóòñòâèè) òðåòüåãî òèïà ïåðñîíàæà(«ìóæ�æåíà», «ðûöàðü�îðóæåíîñåö»);

� êîëè÷åñòâî îäíîãî òèïà ïåðñîíàæåéáîëüøå êîëè÷åñòâà äðóãîãî òèïà ïåðñîíà-æåé («ðàçáîéíèêè-êóïöû»).

Ïðèìåðû çàäà÷ íà ïåðåïðàâó, ïðåäñòàâ-ëåííûå â ñáîðíèêå [2], äåìîíñòðèðóþò îò-äåëüíûå ëîãè÷åñêèå ïðèåìû äëÿ îãðàíè÷åí-íîãî êîëè÷åñòâà ïåðñîíàæåé.

 ýòîé ñòàòüå ñäåëàí ïîäõîä ê ôîðìà-ëèçàöèè äàííîãî òèïà çàäà÷ è ïðîãðàììíî-ãî ïîëó÷åíèÿ ðåøåíèÿ ñ ó÷åòîì ñíÿòèÿ ýòèõîãðàíè÷åíèé.

 êà÷åñòâå ìîäåëè ïåðåïðàâû ðàññìàò-ðèâàåòñÿ ãðàô ñîñòîÿíèé, à çà ðåøåíèå çà-äà÷è ïðèíèìàåòñÿ êðàò÷àéøèé ïóòü íà ýòîìãðàôå èç íà÷àëüíîãî ñîñòîÿíèÿ, ãäå âñå ïåð-ñîíàæè ðàñïîëàãàþòñÿ íà îäíîì áåðåãó, âêîíå÷íîå ñîñòîÿíèå, ãäå âñå ïåðñîíàæè íà-õîäÿòñÿ íà ïðîòèâîïîëîæíîì áåðåãó.

ÎÏÐÅÄÅËÅÍÈß È ÎÁÎÇÍÀ×ÅÍÈß

Ïåðñîíàæ � ëþáîé ñóáúåêò äåéñòâèÿ èëèïðåäìåò, êîòîðûé ìîæåò ó÷àñòâîâàòü â ïåðå-ïðàâå ñ îäíîãî áåðåãà íà äðóãîé: íàïðèìåð,âîëê, êîçà èëè êàïóñòà. Îòäåëüíûì ïåðñîíà-æåì, âñåãäà ïðèñóòñòâóþùèì â ëþáîé çàäà÷åíà ïåðåïðàâó, ÿâëÿåòñÿ ëîäêà.  íåêîòîðûõ

Page 2: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

55

Çàäà÷è íà ïåðåïðàâó. Ìîäåëèðîâàíèå. Àëãîðèòìû

È Â ØÓÒÊÓ È ÂÑÅÐܨÇ

çàäà÷àõ ïîäðàçóìåâàåòñÿ, ÷òîëîäêà óïðàâëÿåòñÿ ëîäî÷íè-êîì. Ýòî îçíà÷àåò, ÷òî ïåð-ñîíàæ «ëîäêà» ìîæåò ïåðå-ïëûâàòü ðåêó ñàìîñòîÿòåëü-íî, áåç ó÷àñòèÿ äðóãèõ ïåð-ñîíàæåé. Íåñêîëüêî ïåðñî-íàæåé ìîãóò áûòü îäíîòèï-íûìè.  ýòîì ñëó÷àå îäíî-ìó íàèìåíîâàíèþ ñîïîñòàâ-ëÿåòñÿ íåêîòîðîå êîëè÷åñòâîïåðñîíàæåé äàííîãî òèïà,íàïðèìåð, äâà ñîëäàòà.

N � êîëè÷åñòâî ðàçëè÷-íûõ òèïîâ ïåðñîíàæåé. Âçàäà÷å ïðî âîëêà, êîçó è êà-ïóñòó N = 4 (ëîäêà � åùåîäèí òèï ïåðñîíàæà, êîòî-ðûé âñåãäà ïðèñóòñòâóåò âêîëè÷åñòâå 1 øò.).

Ci � êîëè÷åñòâî ïåðñîíàæåé i-ãî òèïà.Ëåâûé áåðåã � áåðåã ðåêè, íà êîòîðîì

íàõîäÿòñÿ âñå ïåðñîíàæè äî íà÷àëà ïåðå-ïðàâû.

Ïðàâûé áåðåã � ïðîòèâîïîëîæíûé áå-ðåã, êóäà íåîáõîäèìî ïåðåïðàâèòü âñåõ ïåð-ñîíàæåé.

Ñîñòîÿíèå � íàáîð V = (A1, A2, ..., AN),ãäå Ai � êîëè÷åñòâî ïåðñîíàæåé i-ãî òèïà,íàõîäÿùèõñÿ â óêàçàííûé ìîìåíò íà ëåâîìáåðåãó. Òàêîé íàáîð V îäíîçíà÷íî îïðåäåëÿ-åò ðàñïîëîæåíèå âñåõ ïåðñîíàæåé â äàííûéìîìåíò ïåðåïðàâû. Ïðîòèâîïîëîæíûì ñîñòî-ÿíèåì íàçîâåì íàáîð V' = (B1, B2, ..., BN), ãäåBi � êîëè÷åñòâî ïåðñîíàæåé i-ãî òèïà íàïðàâîì áåðåãó. Åñëè V = (A1, A2, ..., AN), òîV' = (C1 � A1, C2 � A2, ..., CN � AN) � ýòî î÷å-âèäíî, êðîìå òîãî, (V')' = V.

Íåäîïóñòèìîå ñîñòîÿíèå � ñîñòîÿíèå,ïðîòèâîðå÷àùåå óñëîâèÿì çàäà÷è, íàïðèìåðòî, â êîòîðîì âîëê è êîçà íàõîäÿòñÿ íà îä-íîì áåðåãó, à ëîäêà � íà ïðîòèâîïîëîæíîì.Î÷åâèäíî, åñëè V � íåäîïóñòèìîå ñîñòîÿ-íèå, òî V' ÿâëÿåòñÿ òàêæå íåäîïóñòèìûì.

M � êîëè÷åñòâî âñåõ ñîñòîÿíèé ïåðå-ïðàâû â äàííîé çàäà÷å, êàê äîïóñòèìûõ, òàêè íåäîïóñòèìûõ.

Õîä � îäíîêðàòíîå ïåðåìåùåíèå ëîäêèîò îäíîãî áåðåãà ê äðóãîìó, ïóñòîé ëèáî ñãðóïïîé ïåðñîíàæåé, ïîìåùàþùèõñÿ â ëîä-êå. Õîä èçìåíÿåò ñîñòîÿíèå ïåðåïðàâû.

ÃÐÀÔ ÑÎÑÒÎßÍÈÉ

Êîëè÷åñòâî âñåõ âîçìîæíûõ ñîñòîÿíèéïåðåïðàâû M ðàâíî ÷èñëó âñåõ âîçìîæíûõíàáîðîâ (A1, A2, ..., AN), ãäå Ai � öåëîå ÷èñ-ëî â äèàïàçîíå îò 0 äî Ci . Çíà÷èò,M = (Ñ1 + 1) · (Ñ2 + 1) · ... · (ÑN + 1). Òàêèìîáðàçîì, ñîñòîÿíèÿ ìîæíî ïðîíóìåðîâàòüîò 0 äî M � 1. Íèæå ïðèâåäåí êàíîíè÷åñ-êèé ñïîñîá íóìåðàöèè, ïðè êîòîðîì ñîñòî-ÿíèþ VK = (A1, A2, ..., AN) ñîïîñòàâëÿåòñÿíîìåð K, ðàâíûé çíà÷åíèþ ÷èñëà AN...A2A1â ïîçèöèîííîé ñèñòåìå ñ÷èñëåíèÿ ñ ïåðå-ìåííûì îñíîâàíèåì: îò (Ñ1 + 1) äëÿ ìëàä-øåãî ðàçðÿäà äî (ÑN + 1) äëÿ ñòàðøåãî ðàç-ðÿäà.

V0 = (0, 0, ..., 0)V1 = (1, 0, ..., 0)VC1 = (C1, 0, ..., 0)VC1+1 = (0, 1, ..., 0)...VC1+C2 = (0, C2, ..., 0)VC1+C2+1 = (1, C2, ..., 0)...VM�1 = (C1, C2, ..., CN)Íà÷àëüíûì ñîñòîÿíèåì íàçîâåì VM�1, â

êîòîðîì âñå ïåðñîíàæè íàõîäÿòñÿ íà ëåâîìáåðåãó, à êîíå÷íûì ñîñòîÿíèåì � V0, â êî-òîðîì âñå ïåðñîíàæè ïåðåïðàâëåíû íà ïðà-âûé áåðåã.

Ðèñ. 1

Page 3: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

56

À.À. Ïàíüãèí, À.Â. Ïàíüãèí

ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 1, 2010ä ã.

Ïîñòðîèì îðèåíòèðîâàííûé ãðàô G(V, E),ãäå G � Graph (ãðàô), V � Vertices (ìíîæå-ñòâî âåðøèí), E � Edges (ìíîæåñòâî äóã).Ýòîò ãðàô ñîäåðæèò M âåðøèí, îòîæäåñòâ-ëÿåìûõ ñ ñîñòîÿíèÿìè V0, ..., VM�1, â êîòî-ðîì äóãà èç Vi â Vj ñóùåñòâóåò, òîëüêî åñëèèç ñîñòîÿíèÿ Vi ìîæíî ïîïàñòü â ñîñòîÿíèåVj çà îäèí õîä. Çàäà÷à î ïåðåïðàâå ñâîäèòñÿê ïîèñêó êðàò÷àéøåãî ïóòè íà òàêîì ãðàôåèç âåðøèíû VM�1 â âåðøèíó V0. Íà ðèñ. 2ïîêàçàí ïðèìåð ãðàôà äëÿ êëàññè÷åñêîéçàäà÷è ïðî âîëêà, êîçó è êàïóñòó.

×òîáû óäîâëåòâîðÿòü óñëîâèÿì çàäà÷è,êðàò÷àéøèé ïóòü èç VM�1 â V0 íå äîëæåíïðîõîäèòü ÷åðåç íåäîïóñòèìûå ñîñòîÿíèÿ,ïîýòîìó íåîáõîäèìî èñêëþ÷èòü èç ðàññìîò-ðåíèÿ âñå òàêèå âåðøèíû. Äëÿ ýòîãî äîñòà-òî÷íî èñêëþ÷èòü èç ãðàôà âñå äóãè, âõîäÿ-ùèå â âåðøèíû íåäîïóñòèìûõ ñîñòîÿíèé.Íà ðèñ. 2 òàêèå äóãè îáîçíà÷åíû ðîçîâûìöâåòîì.

ÐÅØÅÍÈÅ ÇÀÄÀ×È ÏÅÐÅÏÐÀÂÛÑÐÅÄÑÒÂÀÌÈ MS EXCEL

Ñïîñîáû ðåøåíèÿ ðàçëè÷íûõ çàäà÷ íàãðàôàõ ñ ïîìîùüþ Excel ðàññìàòðèâàåòñÿêàê çàìåíà ïðîãðàììèðîâàíèÿ ñòàíäàðò-íûõ àëãîðèòìîâ íà ãðàôàõ [3].

Ðàññìîòðèì ðåøåíèå îïòèìèçàöèîííîéçàäà÷è íà îðãðàôå, èçîáðàæåííîì íà ðèñ.2, ñ èñïîëüçîâàíèåì âñòðîåííûõ ñðåäñòâMS Excel, à èìåííî íàäñòðîéêè «Ïîèñêðåøåíèÿ».

Ïî óñëîâèþ çàäà÷è íåîáõîäèìî íàéòè(êðàò÷àéøèé) ïóòü ìåæäó ñîñòîÿíèÿìè-âåð-øèíàìè 15 è 0. Èñêëþ÷èì èç ãðàôà (äëÿóïðîùåíèÿ çàäà÷è) âåðøèíû ñ íåäîïóñòè-ìûìè ñîñòîÿíèÿìè, à òàêæå äóãè, âõîäÿ-ùèå â íèõ.  îáùåì ñëó÷àå âåðøèíû íå-äîïóñòèìûõ ñîñòîÿíèé ðàññìàòðèâàþòñÿêàê èçîëèðîâàííûå, òî åñòü â íèõ íå äîë-æíû âõîäèòü/âûõîäèòü äóãè. Äëÿ ðåçóëü-òèðóþùåãî ãðàôà, ñîñòîÿùåãî èç n = 10âåðøèí (íóìåðàöèþ ñîñòîÿíèé îñòàâèìïðåæíåé) ïîñòðîèì ìàòðèöó ñìåæíîñòèS = {sij} ïîðÿäêà n.

=jis

Î÷åâèäíî, ÷òî ìàòðèöà S � ñèììåòðè÷-íàÿ.

Ââåä¸ì äîïîëíèòåëüíî ìàòðèöó ñ öå-ëî÷èñëåííûìè ïåðåìåííûìè X = {xij},ãäå 1 ≤ i, j ≤ n, è xij = 1, åñëè êðàò÷àéøèéïóòü ñîäåðæèò ïåðåõîä èç âåðøèíû i â j;xij = 0 â ïðîòèâíîì ñëó÷àå.

Öåëåâàÿ ôóíêöèÿ èìååò ñëåäóþùèé âèä:

 íåé âû÷èñëÿåòñÿ êîëè÷åñòâî ïåðåõî-äîâ ìåæäó âåðøèíàìè â êðàò÷àéøåì ïóòè.

Ïåðâàÿ ïàðà îãðàíè÷åíèé çàäà¸ò óñëî-âèÿ äëÿ íà÷àëüíîé âåðøèíû ïóòè Víà÷. Âèñêîìîì ïóòè â ýòó âåðøèíó íå äîëæíî áûòüâõîäà, íî äîëæåí áûòü îäèí âûõîä:

,

.

Ðèñ. 2. Ãðàô ñîñòîÿíèé ïåðåïðàâû

1, åñëè âåðøèíû i è j ñîåäèíåíû äóãîé (ðåáðîì);0, â ïðîòèâíîì ñëó÷àå

Page 4: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

57

Çàäà÷è íà ïåðåïðàâó. Ìîäåëèðîâàíèå. Àëãîðèòìû

È Â ØÓÒÊÓ È ÂÑÅÐܨÇ

Âòîðàÿ ïàðà îãðàíè÷åíèé çàäà¸ò óñëî-

âèÿ äëÿ êîíå÷íîé âåðøèíû ïóòè Vêîí. Âíå¸ äîëæåí áûòü îäèí âõîä, íî íå äîëæíîáûòü âûõîäà:

,

.

Äëÿ âñåõ îñòàëüíûõ âåðøèí Vk (êðîìå

Víà÷ è Vêîí) óñòàíàâëèâàþòñÿ îãðàíè÷åíèÿ,çàäàþùèå ðàâåíñòâî êîëè÷åñòâà âõîäîâ èâûõîäîâ â êàæäóþ èç íèõ â èñêîìîì êðàò-÷àéøåì ïóòè:

.

Äëÿ êàæäîé âåðøèíû êîëè÷åñòâî âõî-äîâ íå äîëæíî áûòü áîëåå îäíîãî:

.

Äëÿ êàæäîé âåðøèíû êîëè÷åñòâî âûõî-äîâ íå äîëæíî ïðåâûøàòü îäíîãî:

.

Ãðàíè÷íûå óñëîâèÿ óñòàíàâëèâàþò â êà-÷åñòâå îáëàñòè äîïóñòèìûõ çíà÷åíèé èñêî-ìûõ ïåðåìåííûõ çíà÷åíèÿ 0 èëè 1:

0 ≤ xij ≤ 1, ãäå 1 ≤ i, j ≤ n.Ïîäãîòîâèì äàííûå äëÿ ðåøåíèÿ çàäà-

÷è íà ðàáî÷åì ëèñòå Excel 2007 â ñîîòâåò-ñòâèè ñ ðèñ. 3 äëÿ ìàòðèöû ñìåæíîñòè S.Çàìå÷àíèå: èçíà÷àëüíî ìàòðèöà Õ � íóëå-âàÿ, ÿ÷åéêè Q3:Z12 � ïóñòûå.

ß÷åéêè Ñ3:L12 ñîäåðæàò ìàòðèöó ñìåæ-íîñòè S âåðøèí ãðàôà, à ÿ÷åéêè Q3:Z12 �èñêîìóþ ìàòðèöó X.

 ÿ÷åéêè M3:M12 âïèñûâàþòñÿ ôîðìó-ëû äëÿ âû÷èñëåíèÿ ñóììû ïðîèçâåäåíèéñîîòâåòñòâóþùèõ ñòðîê ìàòðèöû ñìåæíîñ-òè è ìàòðèöû ïåðåìåííûõ:ÑÓÌÌÏÐÎÈÇÂ(C3:L3;Q3:Z3) ...ÑÓÌÌÏÐÎÈÇÂ(C12:L12;Q12:Z12). ÿ÷åéêè C13:L13 âïèñûâàþòñÿ ôîðìóëûäëÿ âû÷èñëåíèÿ ñóììû ïðîèçâåäåíèé ñîîò-âåòñòâóþùèõ ñòîëáöîâ ýòèõ æå ìàòðèö:ÑÓÌÌÏÐÎÈÇÂ(C3:C12;Q3:Q12) ...ÑÓÌÌÏÐÎÈÇÂ(L3:L12;Z3:Z12).

Ðèñ. 3. Ìîäåëèðîâàíèå çàäà÷è ïåðåïðàâû â MS Excel

Page 5: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

58

À.À. Ïàíüãèí, À.Â. Ïàíüãèí

ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 1, 2010ä ã.

 ÿ÷åéêó M13 (íà ðèñóíêå âûäåëåíà) ââå-ä¸ì ôîðìóëó äëÿ âû÷èñëåíèÿ öåëåâîé ôóí-êöèè: ÑÓÌÌÏÐÎÈÇÂ(C3:L12;Q3:Z12).

Îòêðîåì îêíî «Ïîèñê ðåøåíèÿ» (ïóíêòìåíþ «Äàííûå/Ïîèñê ðåøåíèÿ») è óñòàíî-âèì ñëåäóþùèå çíà÷åíèÿ.

Öåëåâàÿ ÿ÷åéêà � $M$13 ðàâíà ìèíè-ìàëüíîìó çíà÷åíèþ.

Èçìåíÿåìûå ÿ÷åéêè � $Q$3:$Z$12.Îãðàíè÷åíèÿ:

$Q$3:$Z$12 = öåëîå;$Q$3:$Z$12 >= 0;$Q$3:$Z$12 <= 1;$L$13 = 0;$M$12 = 1;$C$13 = 1;$M$3 = 0;$M$4:$M$11 = $D$13:$K$13;$M$3:$M$12 <=1;$M$3:$M$12 >= 0;$C$13:$L$13 <=1;$C$13:$L$13 >= 0;

Ïàðàìåòðû � ëèíåéíàÿ ìîäåëü.Ïîñëå ââîäà âñåõ ïàðàìåòðîâ íàæàòèåì

êíîïêè «Âûïîëíèòü» èùåì ðåøåíèå.Âîçìîæíû 2 ðåçóëüòàòà:1. Êðàò÷àéøèé ïóòü ñóùåñòâóåò, è ðå-

øåíèå íàéäåíî. Ìàòðèöà íåèçâåñòíûõ Xïðåîáðàçóåòñÿ â ñîîòâåòñòâèè ñ íàéäåííûìðåøåíèåì (ðèñ. 2). Ìû âèäèì, ÷òî îïòè-ìàëüíûé ïóòü çà 7 õîäîâ ïðîõîäèò ÷åðåçâåðøèíû: 15 (íà÷àëüíîå ïîëîæåíèå) → 10 (ïåðåâåçëè êîçó) → 11 (ëîäêà âåðíó-ëàñü) → 2 (ïåðåâåçëè êàïóñòó) → 7 (ëîäêàñ êîçîé âåðíóëèñü) → 4 (ïåðåâåçëè âîëêà) →5 (ëîäêà âåðíóëàñü) → 0 (ïåðåâåçëè êîçó).

2. Êðàò÷àéøèé ïóòü íå ñóùåñòâóåò è íåíàéäåí.  òàêîì ñëó÷àå ñèñòåìà âûäà¸ò ñî-îáùåíèå «Ïîèñê íå ìîæåò íàéòè ïîäõîäÿ-ùåãî ðåøåíèÿ».

Äëÿ âûäåëåíèÿ öâåòîì çíà÷åíèé íàéäåí-íîãî ðåøåíèÿ äëÿ ÿ÷ååê òàáëèöû íåèçâåñò-íûõ èñïîëüçóåòñÿ ïóíêò ìåíþ «Óñëîâíîåôîðìàòèðîâàíèå/Ñîçäàòü ïðàâèëî...».

Ãîòîâàÿ ìîäåëü è ðåøåíèå ñîäåðæèòñÿâ ôàéëå Pereprava_xls.zip Ïðèëîæåíèÿ.

Âûáîð Excel äëÿ ðåøåíèÿ ïîñòàâëåííîéçàäà÷è íåñåò ñêîðåå äåìîíñòðàòèâíûé ïðè-ìåð èñïîëüçîâàíèÿ ãîòîâûõ èíñòðóìåíòàëü-íûõ ñðåäñòâ. Ñ óâåëè÷åíèåì ÷èñëà ïåðñî-

íàæåé î÷åíü áûñòðî ðàñòåò ÷èñëî âîçìîæ-íûõ ñîñòîÿíèé, è ïîäãîòîâêà äàííûõ ñòà-íîâèòñÿ çàòðóäíèòåëüíîé. Ñëåäóåò ïðèâëå-êàòü ýâðèñòè÷åñêèå ìåòîäû äëÿ óïðîùåíèÿçàäà÷è (íàïðèìåð, ñâåäåíèå ê ïðîñòîé ÷àñ-òíîé ïîäçàäà÷å) èëè èñïîëüçîâàòü ïðîãðàìì-íûå àëãîðèòìû çàäàíèÿ èñõîäíûõ äàííûõè ïîèñêà ðåøåíèé, êàê ðàññìîòðåíî íèæå.

ÏÐÎÃÐÀÌÌÍÛÉ ÀËÃÎÐÈÒÌ ÏÎÈÑÊÀ

 îñíîâå àëãîðèòìà ðåøåíèÿ çàäà÷è íàïåðåïðàâó ëåæèò ìåòîä ïîèñêà â øèðèíó(BFS, Breadth-first search), òàêæå èçâåñòíûéïîä íàçâàíèåì «âîëíà íà ãðàôå».

Àëãîðèòì ïîèñêà â øèðèíó çàêëþ÷àåò-ñÿ â ñëåäóþùåì. Íà ïåðâîì øàãå ðàññìàò-ðèâàþòñÿ âñå äóãè, èñõîäÿùèå èç VM�1.Ñìåæíûå ñ VM�1 âåðøèíû ïîìå÷àþòñÿ êàêäîñòèæèìûå çà îäèí õîä � âåðøèíû ïåðâî-ãî ðàíãà. Íà âòîðîì øàãå ïîî÷åðåäíî ðàñ-ñìàòðèâàþòñÿ âåðøèíû ïåðâîãî ðàíãà è äóãè,èñõîäÿùèå èç íèõ. Âñå âåðøèíû, â êîòî-ðûå âõîäÿò ýòè äóãè, ïîìå÷àþòñÿ êàê äîñ-òèæèìûå çà äâà õîäà, åñëè îíè íå áûëèïîìå÷åíû ðàíåå. Ýòî áóäóò âåðøèíû âòî-ðîãî ðàíãà. Äåéñòâèå ïîâòîðÿåòñÿ äî òåõ ïîð,ïîêà ñðåäè ïîìå÷åííûõ âåðøèí íå îêàæåòñÿV0. Ðàíã âåðøèíû V0 è áóäåò ÿâëÿòüñÿ äëè-íîé êðàò÷àéøåãî ïóòè, òî åñòü ìèíèìàëü-íûì êîëè÷åñòâîì õîäîâ, çà êîòîðîå ìîæíîîñóùåñòâèòü ïåðåïðàâó. Åñëè æå íà î÷åðåä-íîì øàãå àëãîðèòìà íè îäíà íîâàÿ âåðøè-íà íå áóäåò ïîìå÷åíà, òî ïóòè èç VM�1 â V0íå ñóùåñòâóåò, è çàäà÷à ðåøåíèÿ íå èìååò.

 ïðèâåäåííîì âûøå ïðèìåðå ïåðâûéðàíã ïîëó÷èò âåðøèíà V10 êàê äîñòèæèìàÿèç íà÷àëüíîé âåðøèíû V15 çà îäèí õîä. V11ñòàíåò âåðøèíîé âòîðîãî ðàíãà, áëàãîäàðÿíàëè÷èþ äóãè èç V10 â V11. Ñìåæíûå ñ V11âåðøèíû V2 è V8 ñòàíóò âåðøèíàìè òðåòüå-ãî ðàíãà. Ñëåäóþùèìè áóäóò ïîìå÷åíû âåð-øèíû ÷åòâåðòîãî ðàíãà V7 â V13, äàëåå V4 �ïÿòîãî ðàíãà, V5 � øåñòîãî è, íàêîíåö, V0 �ñåäüìîãî.

Ïîñëå òîãî êàê âåðøèíàì âïëîòü äî V0ñîïîñòàâëåíû ðàíãè, ìîæíî âîññòàíîâèòüêðàò÷àéøèé ïóòü ñ êîíöà, îáîéäÿ ïîñëåäî-âàòåëüíî âåðøèíû óìåíüøàþùåãî ðàíãà ïîäóãàì â îáðàòíîì ïîðÿäêå. Òàê, â íàøåì

Page 6: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

59

Çàäà÷è íà ïåðåïðàâó. Ìîäåëèðîâàíèå. Àëãîðèòìû

È Â ØÓÒÊÓ È ÂÑÅÐܨÇ

ïðèìåðå ìû íàéäåì îäèí èç äâóõ ñóùåñòâó-þùèõ êðàò÷àéøèõ ïóòåé:

V15 → V10→ V11→ V2→ V7→ V4→ V5→ V0

èëè

V15→ V10→ V11→ V8→ V13→ V4→ V5→ V0

Òåïåðü îñòàíåòñÿ ëèøü ðàñøèôðîâàòüïîðÿäêîâûå íîìåðà ñîñòîÿíèé îáðàòíî â íà-áîðû, õàðàêòåðèçóþùèå êîëè÷åñòâî ïåðñî-íàæåé íà îáîèõ áåðåãàõ, è çàäà÷à ðåøåíà.

Ïðîãðàììà � ðåøàòåëü çàäà÷ íà ïåðå-ïðàâó (RiverSolver.exe) è ïðèìåðû çàäàíèé(ôàéëû *.txt) ïðèâåäåíû â Ïðèëîæåíèè.

Âîçìîæíû è äðóãèå àëãîðèòìû ðåøå-íèÿ çàäà÷è ïåðåïðàâû (íàïðèìåð, ñ èñ-ïîëüçîâàíèåì äèíàìè÷åñêîãî ïðîãðàììèðî-âàíèÿ), õîòÿ îíè ìîãóò ïðèâîäèòü ê êóðüåç-íûì ñèòóàöèÿì, êîãäà «ïðàâèëüíîå» ðåøå-íèå ñîäåðæèò âàðèàíò ïåðåïðàâû, â êîòîðîìîäíîâðåìåííî ïîëâîëêà è ïîëêàïóñòû [4].

Ïðèìåð.

Äàííàÿ çàäà÷à íà ïåðåïðàâó èñïîëüçî-âàëàñü â ßïîíèè â êà÷åñòâå òåñòà äëÿ îïðå-äåëåíèÿ èíòåëëåêòà ïðè ïðèåìå íà ðàáîòó.

Òðåáóåòñÿ ïåðåïðàâèòü íà äðóãîé áåðåãñåìüþ (îòöà, ìàòü, äâóõ äî÷åðåé è äâóõ ñû-íîâåé), à òàêæå ïîëèöåéñêîãî ñ ïðåñòóïíè-êîì, ñîáëþäàÿ ñëåäóþùèå ïðàâèëà:

Íà ïëîòó ìîãóò íàõîäèòüñÿ íå áîëåå äâóõ÷åëîâåê îäíîâðåìåííî. Îòåö íå ìîæåò îñ-òàòüñÿ ñ ëþáîé èç äî÷åðåé áåç ïðèñóòñòâèÿèõ ìàòåðè. Ìàòü íå ìîæåò îñòàòüñÿ íè ñîäíèì èç ñûíîâåé áåç ïðèñóòñòâèÿ èõ îòöà.Ïðåñòóïíèê íå ìîæåò îñòàâàòüñÿ íè ñ êà-êèì ÷ëåíîì ñåìåéñòâà, åñëè ðÿäîì íåò ïî-ëèöåéñêîãî. Òîëüêî îòåö, ìàòü è ïîëèöåé-ñêèé ìîãóò óïðàâëÿòü ïëîòîì.

Ïîïðîáóéòå íàéòè ðåøåíèå ñàìîñòîÿ-òåëüíî. Ôëåø-àíèìàöèÿ çàäà÷è ïðèâåäåíàâ [5]. ×òîáû íà÷àòü èãðó, ñëåäóåò íàæàòü íàñèíèé êðóæîê ñïðàâà. Äëÿ ïåðåìåùåíèÿïëîòà ùåëêíèòå ìûøêîé íà êðàñíûé øà-ðèê íà æåðäè. ×òîáû ïåðåìåñòèòü ëþäåéíà ïëîò èëè ñ íåãî, ïðîñòî ùåëêíèòå íàâûáðàííîì ïåðñîíàæå.

Còðóêòóðà ôàéëà çàäàíèÿ ñëåäóþùàÿ(family.tsk ôîðìèðóåòñÿ àâòîìàòè÷åñêè ïðèñîõðàíåíèè óñëîâèÿ çàäà÷è)

# ñïèñîê ïåðñîíàæåéîòåöñûí 2ìàòüäî÷ü 2ïîëèöåéñêèéïðåñòóïíèê# êòî ìîæåò ïëûòü â ëîäêåîòåöîòåö *ìàòüìàòü *ïîëèöåéñêèéïîëèöåéñêèé *# ñïèñîê îãðàíè÷åíèéîòåö x äî÷ü : ìàòüìàòü x ñûí : îòåöïðåñòóïíèê x îòåö : ïîëèöåéñêèéïðåñòóïíèê x ñûí : ïîëèöåéñêèéïðåñòóïíèê x ìàòü : ïîëèöåéñêèéïðåñòóïíèê x äî÷ü : ïîëèöåéñêèé

Íóæäàåòñÿ â ïîÿñíåíèè òîëüêî áëîêäàííûõ «êòî ìîæåò ïëûòü â ëîäêå». Îäíàçâåçäî÷êà â ñòðîêå îáîçíà÷àåò îäíîãî ïðåä-ñòàâèòåëÿ ëþáîãî òèïà ïåðñîíàæà (äâå çâåç-äî÷êè � äâà ïðåäñòàâèòåëÿ ëþáûõ òèïîâïåðñîíàæåé). Âîçìîæíî çàäàíèå èìåíè êîí-êðåòíîãî òèïà ïåðñîíàæà.

 áëîêå «ñïèñîê îãðàíè÷åíèé» ïåðåñòà-íîâêà ïåðñîíàæåé è ïîðÿäêà ñòðîê îãðàíè-÷åíèé íå âàæíà.

Èíôîðìàöèîííûå áëîêè èñõîäíîãîôàéëà äàííûõ îãðàíè÷èâàþòñÿ ñòðîêîé ññèìâîëîì # èëè ïóñòîé ñòðîêîé.

 ðåçóëüòàòå ðàáîòû ïðîãðàììûRiverSolver ïîëó÷èì îòâåò íà ýêðàíå äèñï-ëåÿ (ðèñ. 4).

ÇÀÊËÞ×ÅÍÈÅ

Ïîñòðîåíà ìîäåëü çàäà÷è ïåðåïðàâû èäàíî åå ðåøåíèå ñ èñïîëüçîâàíèåì ñòàí-äàðòíîãî ïàêåòà ïðèëîæåíèé è àëãîðèòìîâ.Ôîðìàëèçàöèÿ çàäà÷è ïîçâîëÿåò ïðîâåñòèïîèñê îïòèìàëüíîãî ðåøåíèÿ ïðè çàäàíèèñëîæíûõ êîìáèíàöèé îãðàíè÷åíèé äëÿáîëüøîãî êîëè÷åñòâà ïåðñîíàæåé â óñëî-âèè çàäà÷è.

Page 7: ˙À˜Àר ˝À ˇ¯—¯ˇ—À´Ó. Ì˛˜¯¸¨—˛´À˝¨¯. À¸ˆ˛—¨ÒÌÛipo.spb.ru/journal/content/1156/Задачи на...54 À.À. ˇàíüªŁí, À.´. ˇàíüªŁí

60

À.À. Ïàíüãèí, À.Â. Ïàíüãèí

ÊÎÌÏÜÞÒÅÐÍÛÅ ÈÍÑÒÐÓÌÅÍÒÛ Â ÎÁÐÀÇÎÂÀÍÈÈ. ¹ 1, 2010ä ã.

Ïàíüãèí Àíäðåé Àëåêñàíäðîâè÷,âåäóùèé èíæåíåð-ïðîãðàììèñòôèðìû Sun Microsystems,[email protected].

Ïàíüãèí Àëåêñàíäð Âèêòîðîâè÷,èíæåíåð Öåíòðà ÈíôîðìàöèîííûõÒåõíîëîãèé (ÖÈÒ) ã. Ñîñíîâûé Áîð,[email protected].

Ëèòåðàòóðà

1. http://school-collection.edu.ru/ � Åäèíàÿ êîëëåêöèÿ Öèôðîâûõ Îáðàçîâàòåëüíûõ Ðåñóðñîâ.2. Ë.Ë. Áîñîâà, À.Þ. Áîñîâà, Þ.Ã. Êîëîìåíñêàÿ. Çàíèìàòåëüíûå çàäà÷è ïî èíôîðìàòèêå. Ì.:

Áèíîì. Ëàáîðàòîðèÿ çíàíèé, 2005.3. http://zhurnal.ape.relarn.ru/articles/2006/155.pdf4. http://www.zib.de/Publications/Reports/SC-95-27.pdf5. http://dagobah.biz/flash/riverIQGame.swf

Ðèñ. 4. Êîìïüþòåðíîå ðåøåíèå çàäà÷è ïåðåïðàâû

Abstract

A range of river crossing puzzles with various types of constraints is considered. Analgorithm based on a graph model is proposed. A method of solving the problem usingExcel is described.

Keywords: river crossing puzzles, breadth-first search, Excel modelling.