Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
64
Добавлен:
04.01.2020
Размер:
265.22 Кб
Скачать

Алгоритм обратного вывода

Алгоритм обратного вывода

Алгоритм обратного вывода

Алгоритм обратного вывода

Алгоритм обратного вывода

Логическое программирование. Декларативная и процедурная семантика

Логическая программа обладает как декларативной, так и процедурной семантикой.

Правило в программе на языке Prolog вида A :- B1 , B2 , … , Bn .

можно трактовать двояко:

1) как логическое высказывание

B1 B2 … Bn A (декларация)

2) как определение процедуры A, утверждающее, что для выполнения A надо последовательно выполнить подпрограммы B1 , B2 , … , Bn .

Обратный вывод в логическом программировании

Цель : g

Правило: a:- b1,…, bm.

___________________________________

Применение обобщенного правила Modus Ponens состоит из следующих шагов:

1) Унификация цели g и заголовка правила a

= Unify(g, a)

2)Формируем новую цель - b1’ ,…, bm’

где b1’ = Subst( , b1), …, bm’ = Subst( , bm)

Кполученным целям вновь применяется Modus Ponens,

ит.д., пока все цели не подтвердятся фактами.

Логическая программа.

Пример использования составных термов

parent(person("Bill", male), person("John", male)). parent(person("Pam", female),person("Bill", male)). parent(person("Pam", female),person("Jane", female)). parent(person("Jane", female), person(("Sue", female)). father(P,person(Name, male)) :- parent(P,person(Name, male)). mother(P,person(Name,female)) :-parent(P,person(Name,female)).

grandFather(Person,TheGrandFather):- parent(Person,ParentOfPerson), father(ParentOfPerson,TheGrandFather).

grandMother(Person,TheGrandMother):- parent(Person,ParentOfPerson), mother(ParentOfPerson,TheGrandMother).

Дерево вывода (алгоритм обратного вывода)

grandMother(person("Pam", female), GMother)

{Person / person("Pam", female)}

parent(person("Pam", female), Parent), mother(Parent,GMother)

{Parent / person("Bill", male)}

{Parent / person("Jane", female)}

mother(person("Bill", male),GMother)

mother(person("Jane", female),GMother)

{GMother / person(Name, female)}

 

{GMother / person(Name, female)}

parent(person("Bill", male),person(Name, female))

parent(person("Jane", female),person(Name, female))

 

 

{Name / "Sue"}

No

 

Yes

 

GMother = person("Sue", female)

Возможные темы РГР

1)планирование финансовых ресурсов предприятия,

2)выбор коммерческого банка,

3)выбор стратегии производства,

4)оценка конкурентоспособности продукции,

5)выбор поставщика продукции,

6)подбор кадров,

7)подбор оптимального тарифного плана сотовой связи,

8)определение качества продукции,

9)определение соответствия сотрудника занимаемой должности.

Соседние файлы в папке Интеллектуальные информационные системы (ИИС)