- •Лабораторне заняття № 1
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 2
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 3
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 4
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 5
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 6
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 7
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 8
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 9
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 10
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 11
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 12
- •1. Теоретичні відомості
- •1. Стара графіка.
- •2. Черепахова графіка (Turtle graphics).
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 13
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 14
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 15
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 16
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •43018, М. Луцьк, вул.Львівська, 75
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) У чому полягає задача про Ханойські вежі?
У чому складність реалізації програми на мові Пролог для поділу слів на склади?
Лабораторне заняття № 16
Тема: Дослідження програми “1STCLASS” для створення простих експертних систем
Мета роботи. Дослідити оболонку для створення експертних систем FIRSTCLASS; створити власну експертну систему на основі FIRSTCLASS та протестувати її; проана-лізувати отримані результати.
1. Теоретичні відомості
Дана оболонка (1STCLASS) призначена для автоматичного створення експертної систе-ми за допомогою наповнення бази даних та правил логічного виведення.
Характерними особливостями є зручність та надійність системи автоматичного проек-тування та компілювання експертних систем.
Також передбачено декілька режимів роботи, наприклад, ADVIZOR.
