УДК 519.1, 519.45
В. М. 1ЛЬМАН, В. В. СКАЛОЗУБ, В. I. ШИНКАРЕНКО (ДПТ) В1ДТВОРЕННЯ ГРАФ1В ЗА ТЕХНОЛОГ1ЧНИМИ ШЛЯХАМИ
За допомогою утворюючих систем графiв розв'язуеться проблема ввдтворення графiв за !х пiдграфами. Запропоновано алгоритм ввдтворення графiв. Розглянуто приклад.
С помощью образующих систем графов решена проблема восстановления графов по их подграфам. Предложен алгоритм восстановления графов. Рассмотрен пример.
It is solved the problem of graphs regenerating by their subgraphs with the help of deriving systems of graphs. In the article there is offered the algorithm of solving this problem and considered an example of graphs regenerating.
Вступ
1снуе досить широкий клас рiзноманiтних задач проектування, планування, штучного ш-телекту тощо, як зводяться до розгляду графо-вих моделей. Але в цьому клас юнуе тдклас задач, для яких графовi моделi вдаеться визна-чити лише частково або не повшстю з причин неповноти шформаци i шших. Наприклад, ю-нуе деякий технолопчний процес, який реалiзу-еться на складнiй системi (залiзничних станцш, автостанцiй Укра!ни тощо), для якого загальна технолопчна модель не вщома, але вiдомi ло-кальнi технолопчш процеси (мiж сумiжними станцiями). Зрозумшо, що в такiй ситуаци, без вщомо! загально! моделi, ефективне планування i рацiональне виконання технолопчного процесу для вше! системи може бути не можли-вим, або досить складно реалiзованим. Тому природно поставити питання: «Як вiдтворити модель технолопчного процесу системи за в> домими частковими моделями на окремих еле-ментах ще! системи?». Поставлене питання ха-рактеризуе проблему вщтворення моделi за 11 пiдмоделями.
Iншi проблеми вiдтворення моделей вини-кають в задачах розпiзнання образiв [1], фор-мальних граматиках [2], системах формальних структур [3].
В матерiалах статтi розглянуто частковий випадок проблеми вщтворення моделей. Зок-рема, розглянуто графове представлення техно-логiчних процешв i введено поняття графових структур. З'ясовано, що графовi структури не однозначно вщтворюють графовi моделi. Вихо-дячи з цього поставлена задача вщтворення графово! моделi технологiчного процесу за за-даними графовоми структурами деякого технолопчного зразка. Задача вщтворення розв'язу-еться за допомогою введених утворюючих систем пiдграфiв. В загальному виглядi задачу вщ-творення розглянуто у роботi [4].
Представлення графив
Об'ектом дослщжень буде орiентований граф О, визначений на множит вершин С = {с;/ е I} з навантаженими дугами [5]. Не-хай елементи навантаження дуг графу зада-ються символами деякого скшченого алфавiту Е = {ву; у е 3} з порожшм символом в . Графи
будемо представляти у формульному виглядi так: якщо для дуги (ci, с у) графу О наванта-
жену символом вк е Е ввести позначення , то будь який шлях р графу можна запи-
ek ,i, j сати як
Pi (es,q,k , e j ,k, g ' , er ,n,m
)
(1)
У запис (1) елемент вхдк назвемо початко-
вим з початком у вершиш сд шляху р i вщпо-
вiдно елемент вгпт - заключним з заключною
вершиною ст . За записом довшьного шляху графу О через зв'язану по другому i третьому шдексам послiдовнiсть елементiв вгЬу у вигля-
дi (1) завжди можливо однозначно виконати класичне [5] представлення шляху цього графу.
Граф О можливо представити комбшащями його шляхiв. Введемо символ (V) як двомюну операщю «або». Так, наприклад, графи зобра-женi на рис. 1 можна записати: (в112) V (в212) -
рис. 1 а), (ви,2, в 223) V (в1,1,2, вз,2,4) - рис. 1 Ь) i (вц,2,в2,2,з) V (вз,4 ,2 , в2,2,3) - рис. 1 С) .
В загалi, якщо {р; 1 е К} - множина всiх можливих шляхи графу О, то цей граф пред-ставимо некласично, за формулою
G= v P .
ieK
(2)
_ - ф а) Ь) с)
Рис. 1. Приклади розгалужень i злиття шляхiв в графах
Вщ формульного запису (2) графу через йо-го шляхи завжди можливо перейти до класич-ного представлення графу О . Тому для некла-сичних граф1в в подальшому збережемо позна-чку класичного графу О (виключаемо познач-
ку ~ у граф1 О). Граф, що складаеться тшьки з
одного елементу позначення О* = (ек . у) назве-
мо простим. Очевидно, петл1 на вершит графу
с. вщповщае граф О* = (ек ..), який також е
простим за формою запису.
Послщовшсть елемент1в шляху (1) конструктивно породжуе ланцюжок
1 д
1 — е е е
' у, к,г, п,т
та технологгчний ланцюжок ^ д
I = ее3 ...ег
визначений на алфав1тов1 Е . Зрозумшо, що вщношення р, за яким шляхов1 (1) ставиться у
вщповщшсть технолопчний ланцюжок 1 од-нозначне. Але обернене вщношення р-1 не е
однозначним - воно тшьки вказуе на те, що су. „ . . 1t м1жн1й пар1 елемент1в ланцюжка 1 ставиться у
вщповщшсть сум1жш дуги, визначеш на дов> льних позначках вершин. Конструктивний об'ект, який утворюеться технолопчним лан-цюжком I' = е6,е} ...ег будемо називати шляхо-вою структурою
Р = (е., еу,..., ег)
шляху Р. Отже, шляхова структура представ-ляеться списком [6], тобто множиною з ф1ксо-ваним порядком слщування елемент1в. Симво-ли у списку можуть повторюватися. Окремо! позначки для списку не вводимо, застосовуючи для нього позначки вщповщних шляхових структур, але при необхщносп список будемо
записувати у вигляд1 (е., еу,..., ег), в якому де-
яю з символ1в можуть бути порожшми - 8 . Порожш символи у списку визначають мюце не порожшх символ1в в упорядкованш множит. Наявшсть порожнього символа 8 у списку вщ-р1зняе список вщ вщповщно! шляхово! струк-тури. Список, що складаеться тшьки з символ1в 8 е Е е порожшм, тобто (8,8,..., 8) = 0 . Список назвемо нелгшйним, якщо хоча б один його символ ед Ф 8 у списку повторюеться декшька
раз1в тдряд. Наприклад, список (а, Ь, а, Ь, с) з символ1в алфавгту Е е лшшний, але список (Ь,а,а,Ь, с) - нелшшний.
Аналопчно до шлях1в введемо поняття гра-фовог структури О графу представленому формулою (2). Графова структура О представля-еться списками шлях1в графу О .
Граф О за сукупнютю шлях1в породжуе множину конструктивних ланцюжюв } - мо-ву зв 'язаного графу
ДО) ± {/,.} та технолог1чну мову
ц Е ) ± {/;}.
Для зв'язаного графу О його графова структура О також зв'язана Вщношення м1ж графом О, його графовою структурою О 1 поро-дженими мовами можна зобразити д1аграмою
Ф
О ц ^
О ^У-
^ п
- Ц(Е),
(3)
де - ф I у 1зоморфш вщношення, ц \ п гомо-морф1зми.
Наведена д1аграма е комутативною, тому що П о ф = у-1, або ц = у ° п° ф. Це означае екв1ва-лентшсть вщношень ц { п, тобто, за графом О { його мовою Ц(О) однозначно визначеною утворюються вщповщш О та Ц(Е), але обернет вщтворення не однозначш. Тому для зв'язано! графово! структури може юнувати множина зв'язаних граф1в.
Два графи будемо вважати технолог!чно ек-вгвалентними, якщо вони породжують одну { ту ж технолопчну мову. Очевидно, графи, яю ма-ють однакову графову структуру технолопчно екв1валентш.
Введемо деяю формули перетворення гра-фiв, якi не порушують !х технолопчно! е^ва-лентностi. Для спрощення запису правил формул перетворень, правила перетворень демон-струються на окремих шляхах.
1. Правило скорочення шляху:
(е<М,2 , вj,2,3,■■■, вr, m-1, m ) = ((еб-еу ' " вr )1, m ) ,
якому вiдповiдае ланцюжок I = (ехеу- •••вг)1 т .
2. Правило виключення паралельног дуги:
в1,г,у V в2,г,у = (в1 V е2)7.у ,
при якому вершини збер^аються. Якщо 7 = у , то маемо частковий випадок правила - виклю-чення паралельних петель.
3. Правило виключення альтернативног дуги:
(в1 V в2)7 у, вершина к - виключена; еи,у V е2,7,к = | (в1 V в2)7 к, вершина у - виключена;
за яким двi сумiжнi дуги замiнюються однiею
(С7 , су ) аб0 (С. , Ск ).
4. Правило виключення петл/:
(в1,7,7 ,(в2,7,у V в3,7,к )) = (еПе2)7,у V (еПв3)7,к , п « •
де е1 - технологiчний ланцюжок довшьно1 дов-жини утворений петлею е177 .
Очевидно, це правило поширюеться i на за-ключну петлю альтернативних шляхiв, тобто
((е1,7,к V е2,у,к ) , е3,к,к ) = (е1е3П ),к V (е2е3П ) к .
5. Правило виключення контургв:
(е1,7,у , е3,у,7 ) V е2,7,к = ((е1е3)ЧХ,у V ((е1е3)Пе2)7,к ,
яке узагальнюе правило 4.
6. Правило виключення вершини:
(е1,7,т , е3,т,п ) V (е2,у,т , е4,т,к ) =
= ((е1е4)7,к V (е1е3)7,п ) у,п V (е2е4)у,к ).
Для створення графових композицiй введемо операцп над графами.
Нехай {/17} i {/2 у} мови породжеш
зв'язаними графами О1 i О2. Граф О1 е тд-графом графу О2 за операщею включення , тобто О1 ^ О2, якщо множина {/17} е тдмно-жиною множини {/2 у} . Вщповщно, для графових структур О1 i О2, утворених технолопч-
ними ланцюжками {¡/7} та {¡2, у}, включення О1 ^ О2 означае, що {¡^} с {¡2 у} i О1 е графо-вою тдструктурою структури О2. Для окремих технолопчних ланцюжкiв ¡1 i ¡2 тд вклю-
ченням ¡1 с ¡2 розумiеться по символьне включення за порядком слщування елеменпв лан-цюжкiв.
Схож1сть введеного включення над графом
0 i його структурою О е зовтшня, але за результатами вони рiзнi: з включення О1 ^ О2
обов'язково мае мiсце О1 ^ О2. Крiм того, з на-
явностi включення О1 ^ О2 за дiаграмою (2) не
обов'язково юнуе включення О1 ^ О2. Напри-
клад, якщо графи О1 i О2 породжують тiльки
ланцюжки ¡1 = а12, Ь2 2, а2 3 та
¡2 = а12, а22, с23, Ь34, а44, то мiж цими графами
не iснуе вщношення за включенням, але мiж вщповщними графовоми структурами
01 = (а,Ь,а) i О2 = (а,а,с,Ь,а), як за списками виконуеться по символьне включення О1 ^ О2 по першому, четвертому та п'ятому вщповщ-ним елементам списку О2 або по другому, четвертому та п'ятому елементам цього ж списку. Нагадуемо, що для списюв послiдовнiсть еле-менпв суттева. Отже, включення О1 ^ О2 неод-нозначне, оскiльки воно характеризуеться дво-ма структурами включень (а1, Ь4, а5) i (а2, Ь4, а5) . Таким чином, для юнування включення мiж графовоми структурами О1 i О2 необхiдно i достатньо виконання умов:
- кшьюсть елементiв графово! структури О1 не повинна бути бшьшою за кiлькiсть еле-менпв структури О2;
- кшьюсть кожного символу (з врахуван-ням його повторень) графово! структури О1 повинна бути не бiльшою шж кiлькостi цих же символiв в структурi О2;
- послщовшсть розташування символiв графово! структури О1 не повинна порушува-тися хоча б в однш послiдовнiй комбшаци тих же символiв графово! структури О2.
За допомогою введено! операци включення можна встановити певний порядок на множен пiдграфiв {О7} деякого графу О . Так, тдграф Ок графу О на множит пiдграфiв {О7} е мак-симальним за включенням, якщо у цш множит
можна вказати таку шдмножину [0}-; j е K} ,
що для Bcix 11 елеменпв мае мiсце ланцюг за включениям G ■ < G ■ <----< G ■ = G, i серед
j1 j2 jm k 1
елементiв множини {G.} не icHye такого — Gs, щоб Gk Gs. З шшого боку пiдграф Gr графу G на множит пiдграфiв {G.} е м1н1мальним за включениям, якщо у цш множит можна вказати таку шдмножину {Gs; s е N}, що для !! елемен-тiв мае мюце ланцюг за включенням типу Gr = G, < G, < —< G, , i серед елементiв
' Л J2 Jm
множини {G.} не юнуе такого — Gq, щоб Gq ^ Gr. Таким же чином через визначення максимальноi max{G.} i мшмальног min{G..}
<,i <, i
структур за включеннями можна ввести порядок на множит тдструктур {G.} графово!
структури G графу G .
Пщ операщею перетину (п) двох пiдграфiв G1 i G2 графу G розyмiеться !х спiльний шд-граф (тдграфи), iнакше G1 п G2 Ф 0 . Так для пiдграфiв
G4 = (ai,2, b2,3 , С3,5, е5,2' b2,3, С3,5, ö5,6) ,
G5 = (au,b2A,a4A,¿4,5,Ö5,6); (4)
результатом перетину G4 п G5 е два !х тдгра-фи G* = (au) та G* = (a^).
Операцiю перетину графових тдструктур (списюв) G1 i G2 структури G позначимо як G1 п G2. Результат перетину е графова подструктура (шдструктури) G3, яка знаходиться на-ступним чином.
1. З двох списюв G1 i G2 вибираемо список з меншою кiлькiстю елементiв, нехай це буде, для визначеносп, графова структура G2.
2. Формуеться графова тдструктура G31 така, що G31 ^ G1 i G31 ^ G2:
- починаючи з першого символа e1 структури G2, перевiряемо його першу, за порядком слiдyвання, наявнiсть у списку G1, або на-ступну наявнiсть. Нехай це буде символ е., тодi символ е1 приймаеться за перший елемент списку G31. Якщо символ е1 у списку G1 вщсут-нiй, то до списку G31 заносимо порожнiй символ в . Зауважимо, що при наявносп альтерна-
тивних шлях1в у графов! О1 вище визначена перев1рка виконуеться для кожного списку графово! структури О1;
- перев1ряемо наявшсть другого елементу е2 е О2 у списку О1 шсля символа е{, якщо по-переднш символ е1 ^ О1, то перев1ряеться наявшсть символа е2 спочатку списку О1 або його наступну наявшсть; при виконанш умови е2 е О1 за другий елемент списку О31 приймаеться е2, в шшому випадку маемо порожнш символ 8;
- процес перев1рки наявносп елемент1в графово! структури О2 у списку О1 продовжу-еться поки не вичерпаються елементи списку (списюв) О2, зрозумшо, що для так побудова-ного списку О31 включення О31 ^ О1 \ О31 ^ О2 виконуються.
3. За методикою пункту 2, починаючи з символа е2 е О2, формуеться тдструктура О3 2
така, що О3 2 ^ О1 \ О32 ^ О2:
4. Побудова наступних тдструктур О3 у продовжуеться, поки не будуть перебран! вс! елементи з! структури О2.
5. Серед множини графових тдструктур {О3 у} знаходимо максимальш за включенням шдструктури, як! приймаемо за результат перетину О3, тобто О1 п О2 = тах{О3 ,} ; якщо еле-
менти множини {О3 у} утвореш т!льки порож-н!ми списками, то за результат перетину приймаемо О1 п О2 =0 .
Для прикладу застосування операц!!' перетину списюв розглянемо наведен! вище графи (4), за якими
О4 = (а, Ь, с, е, Ь, с, а) та О5 = (а, Ь, а, а, Ь, а).
Список О5 менший шж - О4, тому перев!ряе-мо наявшсть елеменпв структури О5 у структур! О4 . Перший символ а е О5 е першим в списку О4 з чого маемо, що а е О31 ! цей символ е першим елементом списку О31. Аналоп-чно другий символ Ь е О5 е другим елементом списку О4, тому список (а, Ь) ^ О31. Наступний символ а е О5 м!ститься на сьомому мющ спи-
ску О4 i тому маемо (а,Ь,а) ^ О31. Дат симво-ли графу О5 повинт мiститися за сьомим еле-ментом списку О4. Отже, отримаемо список О31 = (а,Ь,а,в,в,в). Таким же чином знахо-диться список О32 = (Ь,а,в,в,в). Продовжуючи побудову шших списюв О3 у, отримаемо мно-жину спискiв
{(а, Ь, а, в, в, в),(Ь, а, в, в, в),(а, а, в, в), (а,Ь,а),(Ь,а),(а)} '
Нескладно бачити, що максимальними за включенням списками на цш множит е списки
(а, Ь, а, в, в, в) i (а, а, в, в), тобто перетин графо-вих структур е О4 пО5 = {(а,Ь,а),(а,а)} . Дощ-льно перевiрити результат перетину на зв'язашсть графових структур. Для цього спо-чатку з'ясуемо, як структури включень мае графова тдструктура О31 = (а, Ь, а). Структура
О3,1 характеризуеться наступною множиною структур включень {(а1,Ь2,а7),(а1,Ь5,а7)}, що означае фiксованiсть мiсць для символу а , але мiсце символа Ь не визначене. Подальший ана-лiз графових структур О4 i О5 не розв'язуе цього питання, а також питання зв'язаносп комбiнацiй символiв аЬ та Ьа . Тому для тдст-руктури О31 !! зв'язанiсть не визначена. Аналiз
пiдструктури О33 = (а, а) показуе, що вона ха-рактеризуеться тшьки однiею структурою включення, отже, тдструктура О33 зв'язана. Таким чином, перетин графових структур О4 п О5 мае зв'язану невизначенiсть. Розв'язати цю невизначетсть можливо при на-явностi iнформацi! про iншi графовi пiдструк-тури структури О .
За р1зницю двох пiдграфiв О1 i О2
графу О таких, що О1 п О2 ^ 0, приймемо граф (графи) О1 ^ О2, визначений як граф О1 з видаленими спiльними дугами графiв О1 i О2.
Розповсюдимо операцiю рiзницi на списки О1 i О2 [6]. Щд рiзницею О1 ^ О2 будемо ро-зумiти такий список, який складаеться з елеме-нтiв списку О1, котрi вiдсутнi у списку О2, а замють видалених елементiв перетину О1 п О2 записуються порожт символи.
Наприклад, для
О4 0 О5 = (Ь2,3 , С3,5 , е5,2,Ь2,3, С3,5 ) ,
графiв (4) рiзниця але рiзницею
мiж списками О4 ^ О5 буде список (в,в,с,е,в,с,в), що вщповщае графовш струк-турi (с, е, с) .
Операщя об 'еднання (и) пiдграфiв О1 i О2 графу О е О1 и О2 така, що отримаемо граф О3, якщо О1 п О2 ^0 або графи О1 i О2, якщо О1 п О2 =0 . Граф О3 = О1 и О2 можна легко знайти, якщо пiдграфи О1 i О2 мають спiльну вершину або спшьну дугу. В iнших випадках !х об'еднання знаходиться складнiше. Наприклад, коли графи О1 = (а12,Ь23), О2 = (с42,d25) мають спшьну вершину з позначкою «2», тодi
О и О2 = ((аи, Ь„) V с,2, d2,5) V (а1,2, d 2,5) V (с4,2, Ь„)),
або тсля застосування третього правила пере-творення графiв цей вираз спрощуеться -
О1 и О2 = ((а V с)12 ,(Ь V d)2 3).
Для шшого прикладу, якщо у графiв О1 = (а12,с24) i О2 = (Ь32,с24) спiльнa дуга
с2,4, то
О1 и О2 = ((а1,2 V Ь3,2 ), с2,4 ) = ((а V Ь)и, с2,4 ).
Операщю об'еднання застосуемо i для спис-кiв. Пiд об 'еднанням спискгв О1 и О2 будемо розумгги список як конкaтенaцiю списюв О1 i О2. Так для О1 = (а,Ь) i О2 = (с,d) !х об'еднання е О1 и О2 = (а,Ь,с,d). Слiд звернути увагу на те, що операщя об'еднання спискiв не комутативна.
Розглянемо множину всiх пiдгрaфiв {О7} графу О , яка мютить i власний пiдгрaф О . За вщношенням включення для будь якого тдграфу Ок е {О7} iснуе елемент Оу е {О7} такий, що мае мюце Оу < Ок або Ок Оу. Отже, множина {О7} i будь яка !! шдмножина з пiд-графом О за цим вщношенням може бути роз-бита на тaкi класи {Кг; г е Я} , що елементи
ОГ е Кг, 5 = 1, тг пов'язaнi ланцюгом за включенням О1г ^ О2г ^ ■ ^ Огт ; Огд е {О7} . Воче-видь, кожний з клашв Кг може мiстити шдгра-фи з других клaсiв. Так кожен клас мае один спшьний максимальний за включенням граф
G, але один можливо уткальний мшмальний за включенням пiдграф. Зрозумшо, що i мно-жину графових структур {G.} таким же чином можна розбити на класи {Kv ; v е V} .
Визначення 1. Сукупнiсть рiзних мшмаль-них за включенням пiдграфiв класiв Kr розбит-тя множини {G.} с {G.} називаеться базисом
цieï множини. Вщповщно, сукупнiсть мшма-льних за включенням графових тдструктур клашв Kr розбиття пiдмножин {G.} с {G.}
утворюе графовий структурний базис ще].' пiд-множини.
Якщо прийняти тдграфи ланцюга за включенням деякого класу Kr за вершини, а вщно-шення , яким зв'язат пiдграфи цього лан-цюга, за дуги, то отримаемо деякий графовий лшшний шлях Pr на класi Kr. За початкову вершину шляху приймемо максимальний за включенням граф G .
Визначення 2. Зв'язану сукупнiсть шляхiв Pr
множини клаав {Kr ; r е R} ( {Kv ; v е V} ) зi ст-
льною вершиною G або G, назвемо структу-рним графом вщповщних множин пiдграфiв (графових тдструктур).
Наприклад, множина пiдграфiв
MG = {Gj, G2, G3, G4, G5, G} графу G ланцюгами G1 ^ G3 ^ G5 ^ G i G2 ^ G4 ^ G розбиваеться на класи: K1 = {Gj,G3,G5,G}, K2 = {G2,G4,G}. Структурний граф множини MG зображений на рис. 2.
Рис. 2. Приклад структурного графу
Заключт вершини структурного графу множини {G.} утворюють ïï базис, так для графу на рис. 2 базис множини MG утворюють графи Gj i G2 .
Визначення 3. Сукуптсть SG пiдграфiв G. графу G , таких, що {G. ; uG. = G} назвемо
системою утворюючих пiдграфiв графу G .
Система SG назвемо повною системою, як-що в нш немае таких пiдграфiв, видалення яких не впливае на утворення графу G .
Визначення 4. Система утворюючих шдгра-фiв графу G називаеться мiнiмальною SG, якщо вона повна i створена на базис множини пiдграфiв графу G, або на комбшащях базису з деякими тдграфами графу G за допомогою операцш: (n), (u) i .
Тепер перейдемо до розгляду задачi вщтво-рення графу G за деякими вщомими зразками
технологiчноï мови {l.} с L(E).
Вiдтворення граф1в за зразками мови L(E)
Задача. Нехай задат зразок
Z = {l/; i е I, I. е L(E)}
i вщповщна сукупнiсть його графових структур S = {G.}. Необхщно на парi (Z, S) вiдтворити
такий орieнтований навантажений символами алфавiту E граф G, щоб породжена цим графом технолопчна мова L0 мютила в собi заданий зразок.
Зрозумшо, що так поставлена задача вщтво-рення графу за висновками з дiаграми (3) розв'язуеться не однозначно. Для часткового усунення неоднозначносп розв'язку задачi вве-демо деякi припущення:
1) рiшення вiдносно технологiчноï мови графу приймаються зовнi задачi;
2) ршення вiдносно кiлькостi елементiв та повноти технолопчного зразка приймаються поза межами задачу
3) ланцюжкам зразка вщповщають одно-значнi графовi структури;
4) припущення вщносно початкових i за-ключних станiв графу приймаються за межами задачу
5) графовi структури ланцюжкiв зразка створюють деяку систему графових подструктур вщтворюючого графу.
Перейдемо до розгляду алгоритму за яким пропонуеться розв'язувати наведену задачу.
Розв'язувати задачу будемо за допомогою побудови утворюючо1' системи пiдграфiв. Схема розв'язку задачi спираеться на введет при-пущення i результати попереднього пункту, тому не вдаючись до деталей наведемо ïï уза-гальнений алгоритм:
1) за пунктами 4) i 5) припущень провести аналiз технолопчного зразка та його графових тдструктур i виконати ix спрощення, переоз-начення елеменпв спискiв, тощо; на перетворе-них графових структурах створити систему S ;
2) на CTCTeMi S побудувати структурний граф залежностей за включенням (за визна-ченням 2);
3) на заключних вершинах структурного графу видшити базис (за визначенням 1) систе-ми S i на ньому знайти максимальш за включенням лшшш графовi пiдструктури Gi, засто-совуючи при необхiдностi операцп (п, ;
4) за лшшними пiдструктурами Gi, з'ясовуючи зв'язанiсть ïx елементiв , вщтвори-ти графи Gi ;
5) знайдеш у пунктi 4) лшшш шдграфи об'еднати у лiнiйний юстяк [5] {G;} невiдомого графу G, який включити до мiнiмальноï утво-рюючоï системи SG (за визначенням 4);
6) за допомогою багаторазового застосу-вання операцш (и, п, над елементами системи S, ïï базису i кiстяку видiлити вс мож-ливi простi пiдграфи G* (вiдсутнi у лiнiйному кiстяковi);
7) доповнити утворюючу систему SG про-стими пiдграфами G* ;
8) на мшмальнш системi пiдграфiв SG побудувати вiдтворений граф;
9) за допомогою правил перетворення графiв 1 - 6 побудувати е^валентний до вщ-
твореного графу G простий граф G* ;
10) позначку простого графу G* прийняти за технолопчну мову L0 вiдтвореного графу, переконатися у тому, що Z с L0.
Для прикладу, розглянемо деякий техноло-пчний процес, який складасться з елементар-них технолопчних операцiй {a, b, c, d, e} , якi приймемо за елементи алфавiту E . Нехай та-кож вiдомi декшька теxнологiй цього процесу, якi, для визначеносп, починаються з початку i завершуються в кiнцi процесу. Представимо ix у виглядi наступних теxнологiчниx ланцюжкiв:
t 3 3 t 2 3 2
/1 = ab ca ba, /2 = a b ad ,
t 334234 t 2
l3 = a b ad ea b ca badeaba, l4 = adea c,
Приймемо ланцюжки (5) за множину зразка Z. Будемо вважати, що кожен з ланцюжюв l'j зразка Z зaдae деяку графову структуру Gi ; i = 1,8 теxнологiчного процесу так, що ïx почaтковi та зaключнi стани сшвпадають iз вщ-повiдними станами поки невщомого графу G . Hеxaй цi пiдстрyктyри предстaвленi виразами:
G1 =(a,b,b,b, c, a,a,a,b,a) ,
G2 =(a,a,b,b,b,a,d,d) ,
G3 = (a, a, a, b, b, b, a, d, d, d, d, e, a, a, b, b,b,c,a,a,a,a,b,a,d,e,a,b,a) '
G4 =( a, d, e, a, a, c ),
G5 = ( a, a, b, b, d, e, a, a, c, e, a, b, a, d ),
G6 = ( a, a, b, d, e, d, c, a, d, e, a, a, a, c ),
G7 =( a, b, d, b, d, d, e, a, a, d, e, c ),
GS =( a, b, d, e, a, d, a, d, e, a, b, a, d ).
Aналiзyючи змют ланцюжюв зразка (5) та ïx грaфовi структури i врaxовyючи припущення вщносно початкового та заключного сташв графу, пржодимо до висновку, що початковий стан графу G мae не меншу шж один стешнь з виxiдною дугою a , а заключному стану вщпо-вiдae вершина степеш не менше шж три з трьома вxодaми a, d, c . Приймемо початкову вершину графу G за 1, а заключну за невщоме k . Отже з yрaxyвaнням цього aнaлiзy за пунктом 1) алгоритму отримaeмо систему S, елементами я^' будуть шдструктури Gi ; i = 1,8.
Тепер за другим пунктом алгоритму на сис-темi S побyдyeмо структурний граф, який зо-бражено на рис. 3.
l5 = ab dea ceabad , 16 = a bdedcadea c , l7 = abdbd2ea2dec , lg' = abdeadadeabad, (5)
де у вирaзax (5) стешнь k над символом озна-чae кшьюсть повторень цього символа в теxно-лопчному ланцюжковг
Рис. 3. Структурний граф залежностей елеменпв системи S
Як видно, iз структурного графу рис. 3, базис графу G складасться з пiдграфiв
G1, G2, G4, G7 i G8 множини {G; ; i = 1,8}, тому
за наступним пунктом алгоритму на цьому базис знайдемо лшшш шдструктури. Для цього спочатку розглянемо перетин графових тдструктур G1 та G2 i знайдемо на множит спис-юв, з я^' визначаеться перетин G1 n G2, мак-симальну за включенням лiнiйну шдструктуру G10. Перетин структур G1 i G2 визначаеться за правилом
G1 n G2 = max{(a2, b, s2, a, s2),(a2, b3, a, s2),
( a, b, s2, a, s 2),(b3, a, s2),(b3, a, s2),(b, a, s2),
(a,s,s),(s,s),(s)},
тому лiнiйним максимальним за включенням списком даноï множини е (a,b, s,s,a,s,s).
Отже, лшшна тдструктура G10 вщповщае теxнологiчному ланцюжковi l1t0 = aba поро-дженому невiдомим графом G10. З'ясуемо звя-зковють списку G10. При побудовi множини
списку перетину G1 n G2 список (a, b, s, s, a, s, s) визначаеться неоднозначно. Так графова структура G10 = (a,b, a) визначаеться
рiзними структурами включень, наприклад, (a1,b9,a10) i (a8,b9,a10), в яких шдекси вказу-ють на номер вщповщного символа в графовiй структурi G1 . Причому всi структури включен-ня для графу G10 вказують на однаковий зв'я-зок сумiжниx символiв b i a . Анатз графових структур G1 i G2 показуе, що символи a i b в послщовност (a, b) також зв'язат. Тому граф G10 зв'язаний i визначений на чотирьох вершинах, причому його початкова вершина ств-падае з початковою вершиною графу G. По-значимо щ вершини символами 1,2,3 i 4, таким чином отримаемо граф
G1,0 = (a1,2 , b2,3 , a3,4). (6)
Залишаеться не з'ясованим питання, чи е вершина 4 графу G заключною. Вщповщь на це питання знайдемо, розглянувши рiзницю G2 ^ G10, яка мае, на заключнш вершит графу G петлю з позначкою d . Тодi перетин G10 n (G2 ^ (d, d)) вказуе на те, що заключт
вершини графiв G10 i G однаковг Отже визна-чено, що к = 4 .
Розглянемо тепер перетин G7 n G4, якому вщповщае
max{(a, d, e, a, a, c),(a, d, e, s, s, c),(d, e, a, a, c),
(d,e,s2,c), (e,a,a,c), (e,s,s,c), (a,a,c), (a,c), (c)} .
Для ща множини лшшним максимальним за включенням буде список (a,d,e,s,s,c), котрий
визначае графову структуру G20 = (a, d, e, c).
З'ясуемо зв'язатсть структури G2 0. Множина
його структур включень мае вигляд
{(a1,d3,en,
,c12 ),(al,d6,ell,cl2), (a1, d10, e11, c12),(a8, d10, e11, c12), (a9, d10, e11, c12)}.
Аналiз множини структур включень показуе, що послщовшсть e, c зв'язана. З анатзу графових структур G7 i G4 також маемо, що послщовшсть d,e е зв'язаною. Зв'язатсть си-мволiв a i d зостаеться поки що не визначе-ною. Тому граф G2 0 визначений на п'ятьох або
шютьох вершинах, з яких початкова i заключна сшвпадають з вщповщними вершинами графу G . Для визначеного зв'язку мiж дугами d, e, c графу G2 0 введемо двi новi позначки вершин 5 i 6, тодi можна записати
G2,0 = (aU , dy,5 , e5,6 , c6,4) , (7)
де х, y - поки невизначет вершини.
Перетин шдструктури G8 з шшими елемен-тами базису не утворюе нових лшшних графових тдструктур, яю б починалися в початковш i завершувалися в заключнш вершинах графу G . Таким чином, повний базис повинен скла-датися тшьки з подструктур G1, G2, G4, G7 . Отже, юстяком (зО спшьною заключною вершиною) утворюючоï системи SG буде множина елеменпв (6) i (7), тобто {G10, G2 0}.
Знайдемо тепер вс прост тдграфи, яю вод-сутш у юстяковг Анатз рОзниць G1 ^ G10 та
G2 ^ G10 i структур G1, G2 показуе, що на
вершинах з позначками 1,2 i 4 маються петлО a11, b22 i d4 4, кр1м того перша рОзниця з вра-
хуванням петель a11 i b22 показуе наявшсть
контура c31 в тдграфовО G1 . Отриманоï шфор-
маци достатньо для вщтворення тдграфОв G1 i
G2, котрО породжують ланцюжки зразка l1t i l2.
Так об'еднуючи лшшний граф (6) з контуром (с31) i враховуючи те, що цей контур охоплюе
дуги а1,2 та Ь23 , отримаемо граф
О1,0 и (с3,1) = О3,0,
О3,0 = (а1,2 ,Ь2,3 , с3,1, а1,2 ,Ь2,3 ,а3,4) . (8)
Об'еднання графу (8) з вщповщними кшь-костями петель (Ь22), (а11) вiдтворюе граф
О 1= (а12, Ь22, Ь23 , с31, а11, а12, Ь23, а34 ) , а
об'еднання графу (6) з петлями а11, Ь22 i d44 вiдтворюе граф О2 = (а1,1, а12, Ь22 2, Ь2,3, а3,4, d4,4 ).
На графах (6) i (8) та простих графах (а11), (Ь22), (d44) за допомогою операцп об'еднання
також можна побудувати новi пiдгрaфи, напри-клад, пiдгрaфи, якi породжують тдланцюж-
ки¡>9 = а3Ь3ad4, ¡¡0 = а2Ьъса4Ьad ланцюжка зраз-
ка /3. Тому за р1зницею G3 ^ G9 ^ G,
10
1,0
зясовуемо нaявнiсть у грaфовi О контуру е41. 1нших утворюючих пiдгрaфiв графу О на гшках (О, О3, О1) i (О, О3, О2) структурного графу (ди-вися рис. 3) не мае. Вщтворений тдграф (на чо-тирьох вершинах) графу О зображено на рис. 4
Розглядаючи по^м рiзницю О4 ^ О2 0 вста-новлюемо, що граф О4 мае на вершинi 6 петлю
a6,6, тому О4 = (а1,2 , d2,5, е5,6 , а62,6, с6,4 ) . Дал ви-
конуючи оперaцi! (и, над графовоми структурами О20, О4, О6, О7 i враховуючи граф (а66) аналопчно тому, як це робилося вище,
визначимо, що граф О додатково мае контур Ь5,4 i дугу - контур d5,3 .
Таким чином, за структурним графом (рис. 3) i оперaцiями (и, п, над деякими його тдгра-фами побудовано множину простих грaфiв
п _j(au),(a66),(b22),(d44),
П _1(c3,i),(e4,i),(b5,4),(d6,3)
Отже, на технологичному зразков1 Z побу-дована мшмальна утворююча система
SG _{G1,0. G2,0 ' п* } графу G .
В межах утворюючо! системи SG, як показано вище, вщтвореш графи: G1, G2, G3 i G4 . Тепер також можна вщтворити iншi графи G5, G6, G7 повно! системи S :
(а1,1, ai,2 , b2,2 , d2,5 , e5,6 , a6,6, C6,4, e4,1, ai,2, b2,3, a3,4, d4,4 ) , (а1,1, ai,2, b2,2 , d2,5 , e5,6 , d6,3, C3,1, ai,2 , d2,5, e5,6, °6,6' C6,4 ) ,
(ai,2 ,b2,2 ,d
2,5 > b5,4, d4,4, e4,1, а1,1, ai,2 , d2,5, e5,6, C6,4
Рис. 4. Ввдтворений шдграф графу О Тепер за рис. 4 нескладно записати граф
О3 = (а1,1, а1,2, Ь2,2 , Ь2,3 , а3,4, d4,4, е4,1, а1,1, а1,2, Ь2,2, Ь2,3 , с3,1, а1,2, Ь2,3 , а3,4, d4,4, е4,1, а1,2, Ь2,3, а3,4),
котрий породжуе технологiчний ланцюжок ¡3.
Продовжимо виконання пункту 5) алгоритму вщтворення графу О .
Анaлiзуючи граф О2 0 та грaфовi структури
О5, О6 i стани графу зображеного на рис. 4, встановлюемо, що невизначена у грaфовi О20 вершина х = = 2 . Отже, за формулою (7) маемо другий лшшний утворюючий шдграф
О2,0 = (а1,2, d2,5 , е5,6, с6,4).
Якщо для впорядкування вершин графу О ввести перепозначення вершин в утворюючш
0
системi , замшивши позначки вершин за правилами: 4 ^ 6, 5 ^ 4, i 6 ^ 5, то отримаемо вщтворений граф, представлений на рис. 5.
Рис. 5. Вщтворений граф
Отриманий нелшшний граф мае досить ве-лике цикломатичне число (v = 9 ), тому поро-
джену ним технолопчну мову безпосередньо за графом G складно визначити. Для цього ско-ристаемося правилами перетворення графу. За пунктом 10) алгоритму зведемо граф, зображе-ний на рис. 5, до простого шляху за такою по-слщовшстю застосування правил виключення:
- виключимо спочатку вс петлi на вершинах: 1, 2, 5 i 6;
- виключимо вершину 1 графу, замкнувши обернет дуги c31 i e61 на вершину 2;
- виключимо вершину 5 i утвореш пара-лельш дуги на вершинах 2 та 3;
- виключимо контур (c32) i тримаемо граф (((TM)2,6 v (УК)2 б),e6a);
- виключимо паралельнi дуги i контур (e6,2).
Отже, отримаемо технолопчну мову
L(G) = ((TM | VR)e)n (TM | VR), (9)
де T = ((AIDQ)c)n(A | DQ), V = ((A | DQ)c)nD, R = eancdn | bdn, M = bdn, A = anbn, D = anbnd i Q = eand .
Таким чином, за заданим зразком (3) вдало-ся вщтворити граф (рис. 5) i його технолопчну мову (9).
Висновки
В результат виконаних дослщжень по розв'язанню проблеми вщтворення графiв встановлено, що:
- процес вщтворення графiв спираеться на не повну шформащю вiдносно процесiв, те-хнологiй i шше, тому передбачае введення де-яких припущень;
- розв' язок проблеми не однозначний i вимагае напрацювань спецiальних пiдходiв до ïï вирiшення, особливо у випадку складних
графових моделей представлення предметних областей;
- проблему вiдтворення графiв зручно розв'язувати за допомогою систем утворюючих пiдграфiв, якi визначаються за неповною шфо-рмацiею зразкiв пiдграфiв;
- розроблена метода згортання графiв дозволяе знайти технологiчнy мову, яка поро-джуеться вiдтвореним графом;
- запропонований алгоршмчний пiдхiд до розв'язання проблеми вiдтворення графiв е досить простим в застосуванш i ушверсальним;
- за запропонованим алгоритмом вщтворення графiв можна розробити автоматизо-вану систему вiдтворення графових моделей.
Б1БЛЮГРАФ1ЧНИЙ СПИСОК
1. Фу К. С. Структурные методы и распознание образов. - М.: Мир, 1977. -. 318 с.
2. 1льман В. М. Структурний шдхвд до проблеми вщтворення граматик / В. М. 1льман, В. I. Шин-каренко // Проблеми програмування, 2007. -№ 1. - С. 5-16.
3. 1льман В. М. Властивосп формальних структур та !х подструктур // В1сник Дн1пропетр. нац. ун-ту зал1зн. трансп. 1м. акад. В. Лазаряна. - Д., 2007. - Вип. 14. - С. 99-104.
4. Ильман В. М. Некоторые приложения формальных структур / В. М. Ильман, В. В. Скалозуб,
B. И. Шинкаренко // Современные информационные технологии на транспорте, в промышленности и образовании: Междунар. научн.-практ. конфер. Тезисы докладов. - Д., 2007. -
C. 63-63.
5. Свами М. Графы, сети и алгоритмы / М. Свами, К. Тхуласираман - М.: Мир, — 1984 - 380 с.
6. Босов А. А. Функции множества и их применение. - Днепродзержинск: Изд. дом «Андрей», -2007. - 186 с.
Надшшла до редколегп 26.07.2007.