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

Реферат Представлення знань в інтелектуальних системах





pan>

2) Х належить хвосту L.

Це можна записати у вигляді двох пропозицій, перше з яких є простий факт, а друге правило:

належить (Х, [Х | Хвіст]).

належить (Х, [Голова | Хвіст]): -

належить (Х, Хвіст).

Зчеплення (конкатенація)

Для зчеплення списків ми визначимо ставлення

конк (L1, L2, L3)

Тут L1 і L2 два списки, а L3 - список, одержуваний при їх зчепленні. Наприклад,

конк ([a, b], [c, d], [a, b, c, d])

істинно, а

конк ([a, b], [c, d], [a, b, а. c, d])

брехливо.

Визначення відносини конк, як і раніше, містить два випадки в залежності від виду першого аргументу L1:

1) Якщо перший порожній, тоді другий і третій аргумент являють собою один і той же список (назвемо його L), що виражається у вигляді наступного прологовского факту:

конк ([], L, L)

2) Якщо перший аргумент відносини конк не порожній, то він має голову і хвіст і виглядає так

[X | L1]

Хоча програма для конк виглядає досить просто, вона має велику гнучкість і її можна використовувати багатьма іншими способами. Наприклад, її можна застосувати як би в зворотному напрямку для розбиття заданого списку на дві частини:

? - Конк (L1, L2, [a, b, c]) = [] = [a, b, c]; = [a] = [b, c]; = [a, b] 2 = [c];

L1 = [a, b, c]

L2 = [];

no

Список [a, b, c] розбивається на два списки чотирма способами, та всі вони були виявлені нашою програмою за допомогою механізму автоматичного перебору.

Нашу програму можна також застосувати для пошуку в списку комбінації елементів, що відповідає деякому умові, що задається у вигляді шаблону або зразка. Наприклад, можна знайти всі місяці, що передують даному, і всі місяці, наступні за ним, сформулювавши таку мету

? - Конк (До, [травень | Після], [Січ, Лют, березень, квітень, травень, червень, липень, серп, вер, жовт, листопад, дек]). p align="justify"> До = [Січ, Лют, березень, квітень]

Після = [червень, липень, серп, вер, жовт, листопад, дек]

Далі ми зможемо знайти місяць, що безпосередньо передує травня, і місяць, безпосередньо наступний за ним, поставивши запитання

? - конк (_, [Мсяц1, травень, Месяц2 | _], [Січ, Лют, березень, квітень, травень, червень, липень, серп, вер, жовт, листопад, дек])

Месяц1 = квітні

Месяц2 = червня

Більше того, ми зможемо, наприклад, видалити з деякого списку L1 все, що слідує за трьома послідовними входженнями елемента z в L1 разом з цими трьома z. Наприклад, це можна зробити так

? - L1 = [a, b, z, z, c, z, z, z, d, e],

конк (L2, [z, z, z | _], L1). = [a, b, z, z, c, z, z, z, d, e],

L2 = [a, b, z, z, c]

Ми вже запрограмували відношення приналежності. Однак, використовуючи конк, можна було б визначити це відношення в такий еквівалентним способом:

прінадлежіт1 (X, L): -

конк (L1, [X | L2], L).

У цьому реченні сказано: В«Х належить L, якщо список L можна розбити на два списки таким чином, щоб елемент Х був головою другого з них. Зрозуміло прінадлежіт1 визначає те ж саме ставлення, що і належить. Ми використовували інше ім'я тільки для того, щоб розрізняти таким чином реалізації цього відношення. Зауважимо, що використовуючи анонімну змінну, можна записати вищенаведене пропозиція так

прінадлежіт1 (X, L): -

конк (_, [X | _], L).

Додавання елемента.

Найбільш простий спосіб додати елемент у список - це вставити його в самий початок так, щоб він став його нової головою. Якщо Х - це новий елемент, а список, в який Х додається - L, тоді результуючий список - це просто

[X | L]

Таким чином, для того щоб додати новий елемент в початок списку, не треба використовувати ніякої процедури. Проте, якщо ми хочемо визначити таку процедуру в явному вигляді, то її можна представити у формі такого факту:

додати (Х, L, [X | L]).

Видалення елемента

Видалення елемента Х зі списку L можна запрограмувати у вигляді відношення

в...


Назад | сторінка 32 з 35 | Наступна сторінка





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

  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Мутації і нові гени. Чи можна стверджувати, що вони служать матеріалом Мак ...
  • Реферат на тему: Шизофренія. Лікувати, не можна хворіти
  • Реферат на тему: Коли працювати можна менше ...
  • Реферат на тему: Опісові композіційно-мовленнєві форми в творах Т. Прохаська &З цього можна ...