Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компютерні системи штучного інтелекту_методичні...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
521.73 Кб
Скачать

2. Практична частина

Приклад 1.

domains

loc = right;

middle;

left

predicates

hanoi(integer)

move(integer, loc, loc, loc)

inform(loc, loc)

clauses

hanoi(N) :- move(N, left, middle, right).

move(1, A, _, C) :- inform(A, C), !.

move(N, A, B, C) :- N1=N-1,

move(N1, A, C, B),

inform(A, C),

move(N1, B, A, C).

inform(Loc1, Loc2) :-

write("\nMove a disk from ", Loc1, "to", Loc2).

Приклад 2.

domains

letter = char

word = letter*

predicates

divide(word, word, word, word)

vocal(letter)

consonant(letter)

string_word(string, word)

append(word, word, word)

repeat

goal

clearwindow,

repeat,

write("Write a multi-syllable word: "),

readln(S),

string_word(S, Word),

divide([], Word, Part1, Part2),

string_word(Syllable1, Part1),

string_word(Syllable2, Part2),

write("Division: ",Syllable1,"-",Syllable2),nl,

fail.

clauses

divide(Start, [T1, T2, T3|Rest], D1, [T2, T3|Rest]):- vocal(T1), consonant(T2), vocal(T3), append(Start, [T1], D1).

divide(Start, [T1, T2, T3, T4|Rest], D1,[T3, T4|Rest]):- vocal(T1), consonant(T2), consonant(T3), vocal(T4), append(Start, [T1, T2], D1).

divide(Start, [T1|Rest], D1, D2):- append(Start, [T1], S), divide(S, Rest, D1, D2).

vocal('a').vocal('e').vocal('i').

vocal('o').vocal('u').vocal('y').

consonant(B):- not(vocal(B)), B <= 'z', 'a' <= B.

string_word("", []):-!.

string_word(Str, [H|T]):- bound(Str), frontchar(Str, H, S), string_word(S, T).

string_word(Str, [H|T]):- free(Str), bound(H), string_word(S, T),

frontchar(Str,H,S).

append([], L, L):-!.

append([X|L1], L2, [X|L3]) :- append(L1, L2, L3).

repeat.

repeat :- repeat.

2.1. Програма роботи та завдання.

2.1.1. Створити в середовищі Turbo Prolog програму подібну прикладу 1 та дослідити її.

2.1.2. Задати різні варіанти цілей та проаналізувати отримані результати.

2.1.3. Дослідити програму прикладу 2 з подальшою модифікацією за вибором студента.

2.1.4. Зафіксувати у звіті вихідні коди створених програм та логіку їх роботи.

2.1.5. Відповісти письмово на контрольні питання.

Контрольні питання:

1) У чому полягає задача про Ханойські вежі?

  1. У чому складність реалізації програми на мові Пролог для поділу слів на склади?

Лабораторне заняття № 16

Тема: Дослідження програми “1STCLASS” для створення простих експертних систем

Мета роботи. Дослідити оболонку для створення експертних систем FIRSTCLASS; створити власну експертну систему на основі FIRSTCLASS та протестувати її; проана-лізувати отримані результати.

1. Теоретичні відомості

Дана оболонка (1STCLASS) призначена для автоматичного створення експертної систе-ми за допомогою наповнення бази даних та правил логічного виведення.

Характерними особливостями є зручність та надійність системи автоматичного проек-тування та компілювання експертних систем.

Також передбачено декілька режимів роботи, наприклад, ADVIZOR.