Создание программной экспертной системы в среде Visual Prolog.

Цель работы:
Создание программной экспертной системы в среде Visual Prolog.

Работа приведена в качестве примера.
Не высылайте ее в таком виде, вам ее не зачтут!

Краткое описание предметной области:
Предметная область: кулинария.
Данная предметная область содержит информацию по различным блюдам, например, из каких продуктов они готовятся, к каким видам относятся, какой консистенции должны быть и в каком состоянии подаваться.

Цель создания системы:
Используя данную экспертную систему, пользователь может определить блюдо по его характеристикам. Также систему можно использовать с целью выбора определенного блюда для приготовления, исходя из предпочтений пользователя или наличия тех или иных продуктов.

Формальное описание предметной области:
Правило 1.
ЕСЛИ блюдо должно подаваться горячим/теплым
И это блюдо жидкое,
ТО это первое блюдо.
Правило 2.
ЕСЛИ блюдо должно подаваться горячим/теплым
И это блюдо быстрого приготовления,
ТО это блюдо – фастфуд.
Правило 3.
ЕСЛИ блюдо должно подаваться горячим/теплым,
ТО это второе блюдо (“горячее”).
Правило 4.
ЕСЛИ блюдо легкое,
ТО это блюдо – салат.
Правило 5.
ЕСЛИ блюдо сладкое,
ТО это блюдо – десерт.
Правило 6.
ЕСЛИ блюдо – первое
И из мяса
И с тестом
И с картофелем
И с яйцом
И кисловатое,
ТО это суп щавелевый с галушками.
Правило 7.
ЕСЛИ блюдо – первое
И из мяса
И с картофелем
И с солеными огурцами
И кисловатое,
ТО это рассольник.
Правило 8.
ЕСЛИ блюдо – первое
И из мяса
И с картофелем
И с капустой,
ТО это борщ.
Правило 9.
ЕСЛИ блюдо – первое
И из курицы
И с картофелем
И с лапшой,
ТО это куриный суп.
Правило 10.
ЕСЛИ блюдо – первое
И из мясного фарша
И с картофелем
И с лапшой,
ТО это суп с фрикадельками.
Правило 11.
ЕСЛИ блюдо – первое
И из молока
И с лапшой,
ТО это молочный суп.
Правило 12.
ЕСЛИ блюдо – первое
И из рыбы
И с картофелем,
ТО это уха.
Правило 13.
ЕСЛИ блюдо – второе
И из мясного фарша
И с картофелем
И традиционное,
ТО это пюре с котлетой.
Правило 14.
ЕСЛИ блюдо – второе
И из мясного фарша
И с рисом
И с капустой,
ТО это голубцы.
Правило 15.
ЕСЛИ блюдо – второе
И из мяса
И с рисом,
ТО это плов.
Правило 16.
ЕСЛИ блюдо – второе
И из мясного фарша
И из теста
И на пару,
ТО это манты.
Правило 17.
ЕСЛИ блюдо – второе
И из мясного фарша
И из теста,
ТО это пельмени.
Правило 18.
ЕСЛИ блюдо – второе
И из мяса
И с картофелем
И с сыром
И с майонезом,
ТО это мясо по-французски.
Правило 19.
ЕСЛИ блюдо – второе
И из рыбы
И с начинкой,
ТО это рыба фаршированная.
Правило 20.
ЕСЛИ блюдо – фастфуд
И из теста
И с помидорами
И с колбасой
И с сыром
И с оливками,
ТО это пицца.
Правило 21.
ЕСЛИ блюдо – фастфуд
И из теста
И с колбасой
И с сыром
И с майонезом,
ТО это бутерброд.
Правило 22.
ЕСЛИ блюдо – салат
И из мяса
И с картофелем
И с солеными огурцами
И с яйцом
И с майонезом
И традиционное,
ТО это зимний.
Правило 23.
ЕСЛИ блюдо – салат
И с помидорами
И со свежими огурцами
И с сыром
И с оливками
И с майонезом,
ТО это греческий.
Правило 24.
ЕСЛИ блюдо – салат
И из мяса
И с морковью
И кисловатое,
ТО это хе.
Правило 25.
ЕСЛИ блюдо – салат
И с картофелем
И с яйцом
И с сыром
И с майонезом
И с гранатами,
ТО это красная шапочка.
Правило 26.
ЕСЛИ блюдо – салат
И с помидорами
И со свежими огурцами
И с майонезом,
ТО это летний.
Правило 27.
ЕСЛИ блюдо – салат
И из курицы
И с картофелем
И с солеными огурцами
И с яйцом
И с майонезом
И с сыром,
ТО это нежность.
Правило 28.
ЕСЛИ блюдо – десерт
И из теста
И из молока
И с начинкой,
ТО это блин сладкий.
Правило 29.
ЕСЛИ блюдо – десерт
И из теста
И из молока,
ТО это блин.
Правило 30.
ЕСЛИ блюдо – десерт
И с начинкой
И с шоколадом,
ТО это шоколадные конфеты.
Правило 31.
ЕСЛИ блюдо – десерт
И с начинкой
И из теста,
ТО это торт.
Правило 32.
ЕСЛИ блюдо – десерт
И с начинкой
И из молока
И очень холодное,
ТО это мороженое.
Правило 33.
ЕСЛИ блюдо – десерт
И с шоколадом
И из молока
И очень холодное,
ТО это мороженое.
Правило 34.
ЕСЛИ блюдо – десерт
И из молока
И очень холодное,
ТО это мороженое.
Правило 35.
ЕСЛИ блюдо – десерт
И из молока,
ТО это молочный коктейль.

Пример работы системы.

Пример показывает полное распознавание блюда.

Листинг программы на языке Visial Prolog:

2 комментария

  1. почему то выдает ошибку е150 у в начале строки nondeterm rule(int,str,str,intlist).

    • я не в курсе, это было так давно ….
      возможно у вас gui компилятор, нужно DOSовский

Comments are closed.