Алгоритми уніфікації — це алгоритми, задачею яких є перевірити чи є 2 вирази уніфікованими і, у випадку їх уніфікованості, вирахувати їх найбільш спільний уніфікатор. Знайти уніфікатор означає знайти розв'язки системи.
Загальний випадок
Нехай E1 = P(t1, t2,…,tn), E2 = P(s1, s2,…,sn). Щоб уніфікувати E1 і E2 необхідно знайти такі значення змінних? щоб виконувались такі рівності:
t1 = s1, t2 = s2, … ,tn = sn
Тому для уніфікації E1 і E2 необхідно скласти систему рівнянь:
t1 = s1
t2 = s2
· · ·
tn = sn
і будемо розв′язувати задачу для неї.
Підстановка θ називається уніфікатором системи якщо для будь-якого i, такого що 1 ≤ i ≤ n, ti і si рівні. Тобто фактично θ — це розв′язок системи в вільній алгебрі термів.
Приклад
Найбільш спільним уніфікатором системи рівнянь:
f(c, x) = f(y, g(y))
g(y) = z
f (c, g(c)) = f (c, g(c))
g(c) = g(c)
Тоді θ = {x/g(c), y/c, z/g(c)}.
Алгоритм Мартеллі — Монтанарі
Це недетермінований алгоритм, який складається з шести правил, які можуть застосовуватись в будь-якому порядку поки
- або жодне з правил застосувати не можна (побудована приведена система рівнянь)
- або застосовується правило, яке робить уніфікацію неможливою.
Список правил
- Рівняння f(t'1, t'2, … , t'n) = f(s'1, s'2, … , s'n) замінюється на t'1 = s'1, t'2 = s'2, … ,t'n = s'n;
- Якщо в системі є рівняння f(t'1, t'2, … , t'n) = f(s'1, s'2, … , s'n), де f ≠ g, то дана система не має розв’язків, тобто не має уніфікатора;
- Рівняння s = x, де x — змінна, а s — стала, замінюється на x=s;
- Рівняння s = s відкидається від системи;
- Якщо в системі є рівняння s = x, і при чому x є змінною яка не залежить від s і зустрічається в інших рівняннях системи, то до всіх інших рівнянь застосовується заміна {x\s}
- Якщо в системі є рівняння s = x, при чому x залежить від s, то дана система не має розв’язків, а отже і не має уніфікатора.
Теорема про уніфікацію
Яка б не була система рівнянь
- Алгоритм уніфікації Мортеллі — Монтанарі завжди завершує роботу;
- Якщо система уніфікована, то в результаті роботи алгоритму буде побудована приведена система, еквівалентна початковій;
- Якщо система не уніфікована, то в результаті роботи алгоритму буде видане повідомлення про її неуніфікованість.
Джерела
- В.А. Захаров "Математична логіка та теорія алгоритмів"[недоступне посилання з червня 2019]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Algoritmi unifikaciyi ce algoritmi zadacheyu yakih ye pereviriti chi ye 2 virazi unifikovanimi i u vipadku yih unifikovanosti virahuvati yih najbilsh spilnij unifikator Znajti unifikator oznachaye znajti rozv yazki sistemi Zagalnij vipadokNehaj E1 P t1 t2 tn E2 P s1 s2 sn Shob unifikuvati E1 i E2 neobhidno znajti taki znachennya zminnih shob vikonuvalis taki rivnosti t1 s1 t2 s2 tn sn Tomu dlya unifikaciyi E1 i E2 neobhidno sklasti sistemu rivnyan t1 s1 t2 s2 tn sn i budemo rozv yazuvati zadachu dlya neyi Pidstanovka 8 nazivayetsya unifikatorom sistemi yaksho dlya bud yakogo i takogo sho 1 i n ti i si rivni Tobto faktichno 8 ce rozv yazok sistemi v vilnij algebri termiv Priklad Najbilsh spilnim unifikatorom sistemi rivnyan f c x f y g y g y z f c g c f c g c g c g c Todi 8 x g c y c z g c Algoritm Martelli MontanariCe nedeterminovanij algoritm yakij skladayetsya z shesti pravil yaki mozhut zastosovuvatis v bud yakomu poryadku poki abo zhodne z pravil zastosuvati ne mozhna pobudovana privedena sistema rivnyan abo zastosovuyetsya pravilo yake robit unifikaciyu nemozhlivoyu Spisok pravil Rivnyannya f t 1 t 2 t n f s 1 s 2 s n zaminyuyetsya na t 1 s 1 t 2 s 2 t n s n Yaksho v sistemi ye rivnyannya f t 1 t 2 t n f s 1 s 2 s n de f g to dana sistema ne maye rozv yazkiv tobto ne maye unifikatora Rivnyannya s x de x zminna a s stala zaminyuyetsya na x s Rivnyannya s s vidkidayetsya vid sistemi Yaksho v sistemi ye rivnyannya s x i pri chomu x ye zminnoyu yaka ne zalezhit vid s i zustrichayetsya v inshih rivnyannyah sistemi to do vsih inshih rivnyan zastosovuyetsya zamina x s Yaksho v sistemi ye rivnyannya s x pri chomu x zalezhit vid s to dana sistema ne maye rozv yazkiv a otzhe i ne maye unifikatora Teorema pro unifikaciyu Yaka b ne bula sistema rivnyan Algoritm unifikaciyi Mortelli Montanari zavzhdi zavershuye robotu Yaksho sistema unifikovana to v rezultati roboti algoritmu bude pobudovana privedena sistema ekvivalentna pochatkovij Yaksho sistema ne unifikovana to v rezultati roboti algoritmu bude vidane povidomlennya pro yiyi neunifikovanist DzherelaV A Zaharov Matematichna logika ta teoriya algoritmiv nedostupne posilannya z chervnya 2019