Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Курсовой проект - Система-посредник на заключение договоров по поставке исторической униформы - файл 1.doc


Загрузка...
Курсовой проект - Система-посредник на заключение договоров по поставке исторической униформы
скачать (1921.5 kb.)

Доступные файлы (1):

1.doc1922kb.29.11.2011 20:37скачать

1.doc

Реклама MarketGid:
Загрузка...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
ФАКУЛЬТЕТ КИБЕРНЕТИКИ

КАФЕДРА ИТС
Курсовой проект по дисциплине:

ИНЖЕНЕРИЯ ЗНАНИЙ
Тема курсового проекта:

«СИСТЕМА-ПОСРЕДНИК НА ЗАКЛЮЧЕНИЕ

ДОГОВОРОВ ПО ПОСТАВКЕ ИСТОРИЧЕСКОЙ УНИФОРМЫ»


ВЫПОЛНИЛ:

СТУДЕНТ:

ГРУППА:
ПРОВЕРИЛ:

ПРЕПОДАВАТЕЛЬ: Потресова Г.Д.


МОСКВА 2007
ЗАДАНИЕ

на курсовое проектирование по дисциплине “Инженерия знаний”

студента группы

Тема: Система-посредник в заключении договоров на поставку исторической униформы.
1. Исходные данные:

1.1 Данные о клиентах, предлагающих товар.

    1. Данные о клиентах, покупающих товар.

    2. Данные о возможных договорах.

    3. Предпочтительные варианты договоров.


2. Перечень разрабатываемых вопросов

2.1 Составление неформализованного описания предметной области

2.2 Составление концептуальной модели предметной области

2.3 Построение интенсиональной и экстенсиональной семантической сети

2.4 Разработка логической модели представления знаний на языке многосортого исчисления предикатов

2.5 Построение классифицирующей сети

2.6 Разработка метода формирования возможных вариантов договоров с использованием классифицирующей сети

2.7 Определение критериев выбора наиболее предпочтительных вариантов договоров

2.8 Программная реализация системы

2.9 Тестирование системы
3. Перечень графических материалов

3.1 ER-диаграмма

3.2 Графическое представление интенсиональной симантической сети

3.3 Графическое представление экстенсиональной симантической сети

3.4 Схема запроса

3.5 Классифицирующая сеть
4. Календарный план-график работы

4.1 П.2.1 задания 20.09.07

4.2 П.2.2 и 3.1 задания 1.10.07

4.3 П.2.3, 3.2 и 3.3 задания 10.10.07

4.4 П.2.4, 2.5 и 3.4 задания 20.10.07

4.5 П.2.6 и 2.7 задания 1.11.07

4.6 П.2.8 задания 25.11.07

4.7 П.2.9 и 3.5 задания 05.12.07

4.8 Оформление пояснительной записки 15.12.07

4.9 Защита курсового проекта 20.12.07
5. Задание выдано 4.09.07

Руководитель __________________/Потресова Г.Д./
Студент __________________/./
СОДЕРЖАНИЕ
Введение

1. Исходные данные……………………………………………………………..5

1.1 Данные о клиентах, желающих приобрести товары……………..………..6

1.2 Данные о клиентах, предлагающих товары ………………………….…....7

2. Реферат………………………………………………………………………...8

2.1 Неформализованное описание предметной области……………………...8

2.2 Концептуальная модель предметной области……………………………..9

2.3 Интенсиональная и экстенсиональная семантические сети………………9

2.4 Представление знаний на языке многосортного исчисления предикатов……………………………………………………………………..…9

2.5 Классифицирующая сеть……………………………………………………14

2.6 Формирование возможных вариантов договоров с использованием классифицирующей сети………………………………………………………..14

2.7 Критерий выбора наиболее предпочтительных вариантов договоров…..15

2.8 Программная реализация системы………………………………………...19

2.9 Тестирование системы………………………………………………………25

3. Графические материалы……………………………………………………...28

3.1 ER-диаграмма………………………………………………………………..28

3.2 Графическое представление интенсиональной семантической сети…….29

3.3 Графическое представление экстенсиональной семантической сети……30

3.4 Классифицирующая сеть……………………………………………………32

Заключение……………………………………………………………………….31

Список литературы………………………………………………………………32


ВВЕДЕНИЕ
В начале двадцать первого века автоматизация всё сильнее завоёвывает все сферы чело­веческой деятельности. Применение вычислительной техники в разнообразных отрас­лях народного хозяйства призвано облегчить труд человека и уменьшить число оши­бок, совершаемых при принятии решений.

При построении систем, помогающих человеку, используются приёмы, изучае­мые такой областью информатики, как инженерия знаний. Инженерия знаний – область информатики, в рамках которой проводятся исследования по представлению знаний в ЭВМ, поддержании их в актуальном состоянии и манипулирование ими. На это и рассчитан данный курсовой проект. В результате выполнения курсового проекта будет написана программа, которая на основе данных будет подыскивать наиболее оптимальные варианты договоров и выводить их на экран.

В данном курсовом проекте реализована система «Посредник», служащая для за­ключения договоров между поставщиками и покупателями исторической униформы. Эта сис­тема может использоваться сотрудниками посреднических контор, работающих в этой области. Программный код реализован на языке Пролог.


  1. ^ ИСХОДНЫЕ ДАННЫЕ


Для представления знаний об исторической униформе потребуются следующие атрибуты:

- порядковый номер в базе знаний;

  • страна производитель товара;

  • наименование товара;

  • способ упаковки товара;

  • количество товара;

  • цена упаковки;

  • тип товара;

  • срок доставки.


Кроме того, потребуются атрибуты имя поставщика и имя покупателя.
^

Таблица 1.1 Данные о клиентах, желающих приобрести товары




^ Порядковый номер

Имя покупателя

Тип униформы

Наименование товара

Страна - производитель

Упаковка

Кол-во

Цена, руб.

Срок доставки, нед.

1

Мосфильм

Офицерская униформа Элитных войск

AL-2

Украина

Целлофановый пакет

10

3700

1

2

Музей обороны Москвы

Африканская униформа офицеров

W-1

Германия

-//-

5

3300

1

3

Магазин военного антиквариата «Лейбштандартъ»

Офицерская униформа танковых войск

P-1

Англия

-//-

15

4300

1

4

Военно-исторический клуб «22-ой Пехотный полк»

Солдатская униформа Общевойсковая

М-1

США

-//-

50

2600

1

^ Таблица 1.2 Данные о клиентах, предлагающих товары


^ Порядковый номер

Имя покупателя

Тип униформы

Наименование товара

Страна - производитель

Упаковка

Кол-во

Цена, руб.

Срок доставки, нед.

1

ООО "Мастерская Сергея Кононенко"

Офицерская униформа Элитных войск

AL-2

Украина

Целлофановый пакет

15

3200

1

2

DWS

Африканская униформа офицеров

W-1

Германия

-//-

15

2900

1

3

БритишАрмз

Офицерская униформа танковых войск

P-1

Англия

-//-

75

4100

1

4

ОмахаТрэйдКомпани 

Солдатская униформа Общевойсковая

M-1

США

-//-

150

2300

1

5

Vamos

Офицерская униформа танковых войск

P-1

Англия

-//-

25

4500

1

6

Deutchland Uber Ales

Офицерская униформа Элитных войск

М-1

Украина

-//-

31

3600

1

^ 2. Основная часть

2.1 Неформализованное описание предметной области

Предметная область представляет собой копии исторической униформы и имеет достаточно вариативный характер. В частности, будет рассмотрено одно из наиболее общеизвестных разновидностей исторической униформы Германии – военная униформа времен ВОВ.

Униформа – форменная одежда, порядок и правила ношения которой четко прописаны в документе будь то военный устав или устав другого учреждения, обязывающий своих работников носить униформу.

Униформа Германии подразделяется на военную, униформу полиции и партийную.
Военная униформа подразделяется на:


  1. Общевойсковую:




  • Униформа сухопутных войск,

  • Военно-морская униформа;

  • Военно-воздушная униформа




  1. Униформу элитных войск:




  • Штабную униформу,

  • Полевую униформу,

  • Униформу национальных частей.


^ 2.2 Концептуальная модель предметной области
Один из наиболее распространенных подходов к построению концептуальной схемы был предложен П.Ченом. Методика Чена приводит к построению ER-диаграммы.

В ЕR-модели множество классов объектов предметной области делится на три подмножества: сущности, связи между сущностями, свойства сущностей и связей. На ЕR-диаграмме классы объектов представляются вершинами графа. Вершины, соответствующие сущностям изображаются прямоугольниками, вершины, соответствующие связям - ромбами, а свойствам - кругами или овалами.

ER-диаграмма для предметной области «историческая военная униформа» приведена в подразделе 3.1 раздела 3. Графические материалы.


^ 2.3 Интенсиональная и экстенсиональная семантические сети
ИСС и ЭСС приведены в подразделах 3.2 и 3.3 раздела 3. Графические материалы.

2.4 Представление знаний на языке многосортого исчисления предикатов
При построении структуры, интерпретирующей сигнатуру, для каждого имени сорта указывается множество констант данного сорта. Объединение этих множеств образует множество U, называемое универсумом. Таким образом, универсум представляет собой множество сущностей данной предметной области.

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

^ СТРУКТУРА, ИНТЕРПРЕТИРУЮЩАЯ СИГНАТУРУ
Сигнатура будет представлена следующими предикатами:

спрос: Имя_покуп × Кол_закуп_тов × Код_покупателя

договор: Код_покупателя ×Номер_договора× Производитель × Наименование × Цена × Кол_купл_тов × Код_тов

предложение: Код_тов × Имя_пост × Кол_предл_тов
Для представленной сигнатуры интерпретирующая ее структура может иметь вид:

Имя_покуп={Мосфильм, Музей обороны Москвы, Магазин военного антиквариата «ЛейбштандартЪ», Военно-исторический клуб «22-ой Пехотный полк»}

Кол_закуп_тов=N, где N=1,2,3,…

Код_покупателя={S1, S2, S3, S4}.

Номер_договора={D1, D2, D3, D4}.

Производитель={ Украина, Германия, Англия, США}.

Наименование={Офицерская униформа Элитных войск AL-2, Африканская униформа офицеров W-1, Офицерская униформа танковых войск P-1, Солдатская униформа Общевойсковая М-1}.

Цена=N.

Кол_купл_тов=N

Код_тов={Т1, Т2, Т3, Т4}.

Имя_пост={ООО "Мастерская Сергея Кононенко", DWS, Vamos , Омаха Трэйд Компани}.

Кол_предл_тов=N.
Факты, соответствующие предикатам (1) - (3), могут быть представлены следующим образом:

спрос(Мосфильм, 10, S1),

спрос(Музей обороны Москвы, 5, S2),

спрос(Магазин военного антиквариата «ЛейбштандартЪ, 15, S3),

спрос(Военно-исторический клуб «22-ой Пехотный полк», 50, S4),

договор(S1, D1, Украина, Офицерская униформа Элитных войск AL-2, 3200, 10, Т1),

договор(S2, D2, Германия, Африканская униформа офицеров W-1, 2900, 5, Т2),

договор(S3, D3, Англия, Офицерская униформа танковых войск P-1, 3900, 15, Т3),

договор(S4, D4, США, Солдатская униформа Общевойсковая М-1, 2300, 50, T4),

предложение(Т1, ООО "Мастерская Сергея Кононенко", 15),

предложение(Т2, DWS, 15),

предложение(Т3, Vamos, 25),

предложение(Т4, Омаха Трэйд Компани, 150).

ТАБЛИЦЫ ДЛЯ ИСС

^

Таблица 2.1 Отношение спрос


спрос_имя_покупат

спрос_кол_тов

спрос_код_покупат

Мосфильм

10

S1

Музей обороны Москвы

5

S2

МВА «ЛейбштандартЪ

15

S3

ВИК «22-ой Пехотный полк»

50

S4



^

Таблица 2.2 Отношение дог-р


дог_код_покупат

дог_номер

дог_страны_производ

дог_наимен

дог_цена

дог_кол_тов

дог_код_тов

S1

D1

Украина

Офицерская униформа Элитных войск AL-2

3200

10

Т1

S2

D2

Германия

Африканская униформа офицеров W-1

2900

5

Т2

S3

D3

Англия

Офицерская униформа танковых войск P-1

3900

15

Т3

S4

D4

США

Солдатская униформа Общевойсковая М-1

2300

50

Т4



^

Таблица 2.3 Отношение предложение


предл_код_тов

предл_имя_пост

предл_кол_тов

Т1

ООО "Мастерская Сергея Кононенко"

15

Т2

DWS

15

Т3

Vamos

25

Т4

Омаха Трэйд Компани

150



    1. ^ КЛАССИФИЦИРУЮЩАЯ СЕТЬ


Классифицирующие сети являются одним из классов однородных сетей. Классифицирующая сеть для данной предметной области строится на основе родовидового отношения sup, заданного на множестве классов объектов.

Классифицирующая сеть приведена в подразделе 3.4 раздела 3. Графические материалы.

^ 2.6 ФОРМИРОВАНИЕ ВОЗМОЖНЫХ ВАРИАНТОВ ДОГОВОРОВ С ИСПОЛЬЗОВАНИЕМ КЛАССИФИЦИРУЮЩЕЙ СЕТИ
В данном курсовом проекте классифицирующая сеть используется для определения принадлежности товара к подгруппе товаров. Благодаря этому при заключении договоров покупателю не обязательно задавать непосредственно товар, а можно задать только название подгруппы товаров, в которой он находится. Система выведет все предложения конкретных товаров из заданной подгруппы. В конкретном случае, покупатель, при запросе военная униформа, получает не один, а несколько вариантов предложений.

Программно, классифицирующая сеть реализована в виде стандартных баз данных Пролога (database) и выглядит следующим образом:

class(Ki,Kj)

где Ki и Kj – класс и его подкласс соответственно.


^ 2.7 КРИТЕРИЙ ВЫБОРА НАИБОЛЕЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАТОВ ДОГОВОРОВ
Для начала необходимо определить критерий выбора подходящего договора. Прежде необходимо условиться, что в спросе атрибуты, имеющие значение «___», означают, что данный атрибут не определен, то есть подразумевается любое значение. Итак, предложение, подходящее для данного спроса, должно обладать следующими свойствами:

  • атрибуты «производитель товара», «форма упаковки» должны полностью совпадать, если заданы в спросе, или иметь любое значение, если они в спросе не заданы;

  • атрибуты «цена упаковки» предложения должны быть меньше или равны значению этих атрибутов в спросе, если они заданы, в противном случае, эти атрибуты могут иметь любое значение;

  • атрибут «количество упаковок» должен быть равен значению этого атрибута в спросе, если он задан, либо быть больше;

  • атрибут «наименование товара» должен содержать название конкретного товара, либо название группы товаров.


Сформировав весь список возможных предложений, необходимо выбрать наиболее подходящее предложение. Критерием выбора наиболее подходящего предложения является минимальная цена.
^

Таблица 1.3Вариант договоров




^ Имя поставщика

Имя

покупателя

Тип униформы

Наименование товара

Страна – произво-дитель

Упаковка

Кол-во

Цена, руб.

Срок доставки

1

ООО "Мастерская Сергея Кононенко"

Мосфильм

Офицерская униформа Элитных войск

AL-2

Украина

Целлофановый пакет

15

3200

1

2

DWS

Музей обороны Москвы

Африканская униформа офицеров

W-1

Германия

-//-

15

2900

1

3

БритишАрмз

Магазин военного антиквариата «Лейбштандартъ»

Офицерская униформа танковых войск

P-1

Англия


-//-

75

4100

1

4

Омаха Трэйд

Компани

Военно-исторический клуб «22-ой Пехотный полк»

Солдатская униформа Общевойсковая

M-1

США

-//-

150

2300

1

5

Vamos

Магазин военного антиквариата «Лейбштандартъ»

Офицерская униформа танковых войск

P-1

Англия

-//-

25

4500

1

6

Deutchland Uber Ales

Мосфильм

Офицерская униформа Элитных войск

AL-2

Украина

-//-

31

3600

1



^

Таблица 1.4 Варианты договоров, наиболее предпочтительных для покупателей







^ Имя поставщика

Имя

покупателя

Тип униформы

Наименование товара

Страна – произво-дитель

Упаковка

Кол-во

Цена, руб.

Срок доставки

1

ООО "Мастерская Сергея Кононенко"

Мосфильм

Офицерская униформа Элитных войск

AL-2

Украина

Целлофановый пакет

15

3200

1

2

Vamos

Магазин военного антиквариата «Лейбштандартъ»

Офицерская униформа танковых войск

P-1

Англия

-//-

25

4500

1

    1. ^ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СИСТЕМЫ


Листинг программы “посредник”




code=3000
domains

I=integer

C=char

S=string

file=tempfile

R=real

List=integer*

DATABASE

offer(I,S,S,S,S,S,I,R,I) /*Predloshenie*/

demand(I,S,S,S,S,S,I,R,I) /*Spros*/
predicates

Zastavka

Start

CreateTitle

LoadBD(S)

Select(I)

Work

WatchDemand

WatchOffer

Find(I,S,S,S,S,I,R,I,List)

sort(List,List,List)

good(S,S)

package(S,S)

size(S,S)

block(S,S)

kolvo(I,I)

price(R,R)

data(I,I)

Show_offer(List)

Find_best(List,R,R)

Compare(R,R,R)

Show_best(List,R,I)

class(S,S)

Error(S)


goal

Zastavka,

LoadBD("lafa.dat"),

CreateTitle,

Start.

clauses

/* Information o programme*/

Zastavka:-

makewindow(1,31,32,"",0,0,25,80),

nl,nl,nl,

write(" SYSTEMA-POSREDNIK"),nl,nl,

write(" THEME: POSTAVKA ISTORICHESKOY UNIFORMI" ),nl,

nl,nl,nl,nl,nl,nl,nl,

write(" STUDENT: DERGACHEV D.P." ),nl,

write(" THE PROJECT HEAD: POTRESOVA G.D." ),nl,

write(" GROUP IJ-1-05 " ),nl,

write(" FACULTY OF CYBERNETICS " ),nl,

nl,nl,nl,nl,nl,nl,

write(" MOSCOW MIREA 2007 " ),nl,nl,

readchar(_), removewindow(1,1).


/* zagolovok*/

CreateTitle:-

makewindow(1,31,0,"",0,0,25,80),

attribute(113),

write(" SYSTEMA-POSREDNIK \"POSTAVKA ISTORICHESKOY UNIFORMI\" ").

/*Zagruzka Bazi*/

LoadBD(FileName):-

consult(FileName),!.

LoadBD(_):-

Error(" Oshibka zagruzki bazi ").


/* Sozdanie oknaO shibok */

Error(Msg):-

makewindow(50,79,78," ERROR ",7,15,7,50,1,255,"-¬L--"),

write(Msg),ReadChar(_),removewindow(50,1).


/* Glavnoe menu */

Start:-

makewindow(1,26,94,"SISTEMA POSREDNIK",0,0,25,80),

clearwindow,

cursor(7,0),

write(" MAIN MENU:"),nl,

write(" ------------------------"),nl,

write(" 1-BACK TO MAIN PAGE"),nl,

write(" 2-BURGAINS"),nl,

write(" 3-BURGAIN'S VARIATIONS"),nl,

write(" 4-QUIT PROGRAMM"),nl,

write(" =>"),

readint(Ch),

Select(Ch),fail.
Start:-

Start.


/* Vibor punkta menu*/

Select(Ch):-

Ch = 1,Zastavka;

Ch = 2,Work;

Ch = 3,WatchDemand,WatchOffer;

Ch = 4,exit(0).


/*Prosmotr bazi*/

WatchDemand:-

makewindow(1,90,91,"DEMAND",0,0,25,80),

nl,

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),nl,

write("| | | UNIFORM | UNIFORM | THE | WAY |QUANTITY|PRICE|TERM |"),nl,

write("|N | CUSTOMERS | TYPE | NAME | MANUFACT | OF | | |OF DE|"),nl,

write("| | | | | |PACKING| |(rub)|(ned)|"),nl,

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),nl,

demand(Num,Customer,Name,Form,Sposob,Size,Blocks,Price,Dost), /*Opredel.atributov sprosa*/

cursor(Z,_),

cursor(Z,0),write("|"),write(Num),

cursor(Z,3),write("|"),write(Customer),

cursor(Z,16),write("|"),write(Name),

cursor(Z,26),write("|"),write(Form),

cursor(Z,36),write("|"),write(Sposob),

cursor(Z,47),write("| "),write(Size),

cursor(Z,55),write("| "),write(Blocks),

cursor(Z,64),write("| "),write(Price),

cursor(Z,70),write("| "),write(Dost),

cursor(Z,76),write("|"),

nl,

fail.
WatchDemand:-

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),

readchar(_),

removewindow.


WatchOffer:-

makewindow(1,90,91,"OFFER",0,0,25,80),

nl,

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),nl,

write("| | | UNIFORM | UNIFORM | THE | WAY |QUANTITY|PRICE|TERM |"),nl,

write("|N | DELIVERS | TYPE | NAME | MANUFACT | OF | | |OF DE|"),nl,

write("| | | | | |PACKING| |(rub)|(ned)|"),nl,

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),nl,
offer(Num,Deliver,Name,Form,Sposob,Size,Blocks,Price,Dost), /*Opredel.atributov predlosh*/

cursor(Z,_),

cursor(Z,0),write("|"),write(Num),

cursor(Z,3),write("|"),write(Deliver),

cursor(Z,16),write("|"),write(Name),

cursor(Z,26),write("|"),write(Form),

cursor(Z,36),write("|"),write(Sposob),

cursor(Z,47),write("| "),write(Size),

cursor(Z,55),write("| "),write(Blocks),

cursor(Z,64),write("| "),write(Price),

cursor(Z,70),write("| "),write(Dost),

cursor(Z,76),write("|"),

nl,

fail.
WatchOffer:-

write("|==|============|=========|=========|==========|=======|========|=====|=====|"),

readchar(_),

removewindow.

/*Zakluch.dogovora*/

Work:-

makewindow(2,90,90,"BURGAINS",0,0,25,80),

write("ENTER THE NUMBER OF DEMAND:"), readint(Num),

demand(Num,_,Name,Form,Sposob,Size,Blocks,Price,Dost),
Find(1,Name,Form,Sposob,Size,Blocks,Price,Dost,Ll),

clearwindow,

sort(Ll,[ ],Ll1),

Show_offer(Ll1),

Find_best(Ll1,5000,X),

Show_best(Ll1,X,Num),

removewindow.

/*Poisk predloshenii*/

Find(21,_,_,_,_,_,_,_,[]):-!.

Find(X,Name1,Formproducer,Sposob1,Size1,Blocks1,Priceproducer,Dost1,[T|L1]):-

offer(X,_,Name2,Formgood,Sposob2,Size2,Blocks2,PriceGood,Dost2), /*Read atributov fakta predlosh*/

good(Name1,Name2),

package(Formproducer,Formgood),

size(Size1,Size2),

block(Sposob1,Sposob2),

/*kolvo(Blocks1,Blocks2),*/

price(Priceproducer,PriceGood),

data(Dost1,Dost2),

T=X,

Xn=X+1,!,

Find(Xn,Name1,Formproducer,Sposob1,Size1,Blocks1,Priceproducer,Dost1,L1).
Find(X,Name,Form,Sposob,Size,Blocks,Price,Dost,L1):-

Xn=X+1,!,

Find(Xn,Name,Form,Sposob,Size,Blocks,Price,Dost,L1).
/*sortirovka spiska predlojenii*/

sort(L1,[ ],L1):-!.

sort([ ],L2,L2):-!.

sort([H1 | T1], [H2 | T2], [H1| T]):-

H1<H2,!,

sort(T1, [H2 | T2], T).

sort(L1, [H2 | T2], [H2 | T]):-

sort(L1,T2,T).
/*Sravnenie atributov sprosa i predloshenia*/

good("",_).

good(X,X).

good(X,Y):-

class(X,X1),

good(X1,Y).

package(X,X).

package("",_).

size(X,X).

size("",_).

block(X,X).

block("",_).

kolvo(X,Y):- Y>=X.

kolvo(0,_).

price(X,Y):- Y<=X or Y>X.

price(0,_).

data(X,Y):- Y<=X.

data(0,_).


/*Vivod naidennix predloshenii*/

Show_offer([]):-

clearwindow,

write("NO MORE OFFERS ARE AVAILABLE -----> PRESS ANY KEY TO CONTINUE..."),

readchar(_).

Show_offer([H|T]):-

clearwindow,

offer(H,Prodavez,Name,Form,Sposob,Size,Blocks,Price,Dost),

write(" ACCESSIBLE OFFERS:"),nl,

write(" ------------------------"),nl,

write("DELIVER: ",Prodavez),nl,

write("UNIFORM TIPE: ",Name),nl,

write("UNIFORM NAME: ",Form),nl,

write("THE MANUFACTURER: ",Sposob),nl,

write("WAY OF PACKING: ",Size),nl,

write("QUANTITY: ",Blocks),nl,

write("PRICE: ",Price),nl,

write("TERM OF DELIVERY: ",Dost),nl,nl,

write(" PRESS ANY KEY TO CONTINUE..."),

readchar(_),

Show_offer(T).


/*Poisk nailuchsego predloshenij*/

Find_best([],X,X).

Find_best([H|T],Px,X):-

offer(H,_,_,_,_,_,_,Price,_),

Compare(Px,Price,Px2),

Find_best(T,Px2,X).

/*Sravnenie cen*/

Compare(X1,X2,X1):-

X1<X2,!.

Compare(X1,X2,X2):-

X2<X1,!.

Compare(X,X,X).

/*Vivod best predloshenij*/

Show_best([],_,_).

Show_best([H|T],Price,Num):-

clearwindow,

offer(H,Prodavez,Name,Form,Sposob,Size,Blocks,Price,Dost),

write(" THE BEST OFFER: "),nl,

write("------------------------"),nl,

write("DELIVER: ",Prodavez),nl,

write("UNIFORM TIPE: "),nl,

write(" ",Name),nl,

write("UNIFORM NAME: "),nl,

write(" ",Form),nl,

write("THE MANUFACTURER: "),nl,

write(" ",Sposob),nl,

write("WAY OF PACKING: ",Size),nl,

write("QUANTITY: ",Blocks),nl,

write("PRICE: ",Price),nl,

write("TERM OF DELIVERY: ",Dost),

demand(Num,Customer,Name2,Formgood,Sposob2,Size2,Blocks2,PriceGood,Dost2),

cursor(0,40),

write("ENTERED DEMAND: ",Num),nl,

cursor(1,40),

write("------------------"),nl,

cursor(2,40),

write("CUSTOMER: ",Customer),nl,

cursor(3,40),

write("UNIFORM TIPE: "),

cursor(4,43),

write(Name2),nl,

cursor(5,40),

write("UNIFORM NAME: "),

cursor(6,43),

write(Formgood),nl,

cursor(7,40),

write("THE MANUFACTURER: "),

cursor(8,43),

write(Sposob2),nl,

cursor(9,40),

write("WAY OF PACKING: ",Size2),nl,

cursor(10,40),

write("QUANTITY: ",Blocks2),nl,

cursor(11,40),

write("PRICE: ",PriceGood),nl,

cursor(12,40),

write("TERM OF DELIVERY: ",Dost2),

cursor(15,0),

write(" PRESS ANY KEY TO CONTINUE..."),

readchar(_),

!,Show_best(T,Price,Num).

Show_best([_|T],Price,Num):-

Show_best(T,Price,Num).


^ 2.9 ТЕСТИРОВАНИЕ СИСТЕМЫ

После запуска программы перед пользователем предстает титульный лист программы (рис. 2.1). Для продолжения работы следует нажать клавишу Enter.



Рис.2.1 Титульный лист
Следующим окном программы является основное меню (рис 2.2), которое содержит 4 пункта: переход на титульную страницу, вывод базы знаний, заключение договора, выход из программы. При выборе пункта 1 на экран выводится титульный лист данного курсового проекта.



Рис.2.2 Меню программы
Режим “Просмотр базы знаний и классифицирующей сети” предназначен для того, чтобы пользователь смог узнать, какие атрибуты находятся в спросе или предложении с заданным номером, а также мог увидеть связи между объектами. Получение информации о виде классифицирующей сети позволит задавать не определенный товар, а подгруппу товаров.

Сначала на экран выводится таблица, содержащая все варианты спроса (рис.2.3), а затем – таблица вариантов предложения (рис.2.4). Затем показывается общий вид классифицирующей сети в текстовом режиме(рис.2.5).



Рис.2.3 Таблица спроса



Рис.2.4 Таблица предложения

При выборе в основном меню пункт 2 (заключение договора) на экране появляется окно, в котором необходимо ввести номер спроса из базы знаний, для которого нужно получить возможные варианты предложений (рис 2.6).



Рис.2.5 Ввод номера спроса
Заранее ознакомившись с таблицей спроса(Рис.2.3), пользователь выбирает интересующий его товар, согласно номеру спроса и нажимает клавишу на клавиатуре с соответствующим номером.

Программа выводит на экран все варианты предложений, которые соответствуют введенному запросу. Рассмотрим работу программы на примере спроса из базы знаний под номером 5. Для данного спроса в базе имеется два подходящих предложения, которые выводятся на экран по очереди (рис.2.6 и рис.2.7 соответственно).



Рис.2.6 Первое предложение



Рис.2.7 Второе предложение
Отметим, что на примере спроса номер 1 происходит взаимодействие программы с классифицирующей сетью: при запросе униформы программа выводит все возможные виды униформы, которые удовлетворяют запросу.

После завершения всех возможных вариантов предложения на экране появляется вариант (который программа выбирает из всех возможных), наиболее благоприятный для заказчика с точки зрения цены (рис.2.8).



Рис.2.8 Наилучшее предложение
Для завершения работы с программой следует нажать клавишу Enter и в появившемся основном меню выбрать 4 пункт - “Выход”.
^ 3. ГРАФИЧЕСКИЕ МАТЕРИАЛЫ

3.1 ER-ДИАГРАММА




3.2 ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ИНТЕНСИОНАЛЬНОЙ СЕМАНТИЧЕСКОЙ СЕТИ



^ 3.3 ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ ЭКСТЕНСИОНАЛЬНОЙ СЕМАНТИЧЕСКОЙ СЕТИ



3.4 КЛАССИФИЦИРУЮЩАЯ СЕТЬ



ЗАКЛЮЧЕНИЕ
В результате написания данной курсовой работы была создана экспертная система по заключению договоров по продаже копий военной униформы. Был изучен язык многосортного исчисления предикатов и способы представления данных. Знания, полученные при выполнении данного курсового проекта, могут быть в дальнейшем использованы при построении баз данных и разработке интеллектуальных систем.


^ СПИСОК ЛИТЕРАТУРЫ
1. Потресова Г.Д. Инженерия знаний. Методические указания к лабораторным работам. – М.: МИРЭА, 1998.

2. Малпас Дж. Реляционный язык Пролог и его применение.-М.: Наука, 1990.

3. Братко И. Программирование на языке Пролог для искуственного интеллекта. -М.:Мир, 1990.

4. Курс лекций по инженерии знаний за 2007г.



Скачать файл (1921.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru