Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Перевірка логічного проходження методом резолюції

Реферат Перевірка логічного проходження методом резолюції





ign="justify"> nachprov [] = True

nachprov (x: xs) pr x xs

pr x (y: ys)

| x == [] = True

| ys == [] = if (soed xy) == [] then True else False

| otherwise = pr (soed xy) ys


Розглянемо структуру допоміжної функції pr. Якщо в неї передається порожній параметр в якості першого аргументу, значить (при коректному введенні даних) це результат функції soed. Отже, при розглянутої комбінації, порожня резольвента знайдена і ми завершуємо роботу з позитивним результатом. В іншому випадку об'єднуємо голову з результатом виконання, цілком можливо, що хвіст стане порожнім. Розглянемо цей випадок окремо: якщо до того як хвіст став рівним [] в результаті функції виявився теж порожній список, значить порожня резольвента знайдена. В іншому випадку ми рекурсивно викликаємо goprov, як і у всіх інших випадках. p align="justify"> Для зручності запуску реалізуємо операцію pusk, яка приймає вхідний список, формує комбінації і перевіряє кожен з варіантів.


pusk x = prov (perestanovka x)


Ця функція видасть відповідь True або False.


Приклади роботи програм


1. Приклад роботи програми мовою Prolog:


? - Pusk ([[a, s, $ b, $ c], [$ a, b], [$ s, c]]). p align="justify">? - Pusk ([[a, s, $ b, $ c], [$ a, $ b], [$ s, c]]). p align="justify"> 3. Приклад роботи програми мовою Haskell:

Main> pusk ([[В«aВ», В«sВ», В«~ bВ», В«~ cВ»], [В«~ aВ», В«bВ»], [В«~ sВ» , В«cВ»]]).> pusk ([[В«aВ», В«sВ», В«~ bВ», В«~ cВ»], [В«~ aВ», В«~ bВ»], [В«~ sВ» , В«cВ»]]).



Висновок


Отже, мета курсової роботи досягнута: перевірка логічного проходження методом резолюції на Prolog і на Haskell реалізована. Завдання справно працюють. Матеріал поданий на лекціях закріплений. br/>

Список літератури


1. Братко І., Програмування на мові Пролог для штучного інтелекту [Текст - Москва, "СВІТ", 1990. p align="justify"> 2. Роганова Н.А., Функціональне програмування [Текст] - ГІНФО, 2002. br/>

Додаток А


Лістинг програми на мові Prolog


$ ($ X): - X. (X, [X | _]). (X, [_ | Xs]): - vhodit (X, Xs). (X, [X | Xs], Xs). (X, [Y | Ys], [Y | Z]): - udalit (X, Ys, Z). (X, [$ X | _]). (X, [_ | Xs]): - contrar (X, Xs). ($ X, [X | _]). ($ X, [_ | Xs]): - contrar ($ X, Xs). ([], []) . (Z, [X | K]): - udalit (X, Z, Z1), perestanovka (Z1, K). ([], X, X). ([X | Xs], Y, [X | Z ]): - not (vhodit (X, Y)), not (contrar (X, Y)), soed (Xs, Y, Z). ([X | Xs], Y, Z): - vhodit (X...


Назад | сторінка 7 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка програми з використанням мови логічного програмування Prolog
  • Реферат на тему: Розробка програми з використанням мови логічного програмування Prolog
  • Реферат на тему: Рішення логічного завдання на мові Prolog
  • Реферат на тему: Розв'язування математичних задач помощью мови логічного програмування P ...
  • Реферат на тему: Розробка на мові програмування С програми, що ілюструє роботу з символами, ...