Система-посредник в заключении договоров на поставку алкогольной продукции

Автор работы: Пользователь скрыл имя, 02 Июня 2013 в 21:27, курсовая работа

Описание работы

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

Содержание работы

Введение
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 Критерий выбора наиболее предпочтительных вариантов договоров…..15
2.7 Программная реализация системы………………………………………...19
2.8 Тестирование системы………………………………………………………25
3. Графические материалы……………………………………………………...28
3.1 ER-диаграмма………………………………………………………………..28
3.2 Графическое представление интенсиональной семантической сети…….29
3.3 Графическое представление экстенсиональной семантической сети……30
3.4 Классифицирующая сеть……………………………………………………32
Заключение……………………………………………………………………….33
Список литературы………………………………………………………………34

Файлы: 1 файл

Пояснительная записка.doc

— 4.66 Мб (Скачать файл)

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

 

Структура, интерпретирующая сигнатуру

 

Сигнатура будет представлена следующими предикатами:

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

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

     предложение: Код_тов × Имя_пост × Кол_предл_тов

 

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

Имя_покуп={01КАФЕ, Apple Bar & Restaurant, Devaldi, Ресторан Эль Гаучо г. Москва}.

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

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

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

     Производитель={ Франция, Великобритания, Мексика,  Франция}.

Наименование={ Ром Бакарди  Золотой Bacardi Oro, Джин Гордонс Gordons, Текила Камино БланкоCamino Blanco, Коньяк Курвуазье ХО Courvoisier XO }.

     Цена=N.

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

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

     Имя_пост={ "Альфа Альянс", Арома, ТД, ЗАО, Дионис Клуб, МСК, ТД, ООО, АСТ - Интернэшнл Инваэронмент }.

     Кол_предл_тов=N.

 

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

    спрос(01КАФЕ, 2, S1),

    спрос(Apple Bar & Restaurant, 5, S2),

    спрос(Devaldi, 4, S3),

    спрос(Ресторан Эль Гаучо г. Москва, 1, S4),

    договор(S1, D1, Франция, Ром Бакарди Золотой Bacardi Oro, 1050, 2, Т1),

    договор(S2, D2, Великобритания, Джин Гордонс Gordons, 320, 5, Т2),

    договор(S3, D3, Мексика, Текила Камино БланкоCamino Blanco, 600, 4, Т3),

    договор(S4, D4, Франция, Коньяк Курвуазье ХО Courvoisier XO, 5000, 1, T4),    

    предложение(Т1, "Альфа Альянс ", 6),

    предложение(Т2, Арома, ТД, ЗАО 15),

    предложение(Т3, Дионис Клуб, МСК, ТД, ООО 12),

    предложение(Т4, АСТ - Интернэшнл Инваэронмент , 3).

 

 

Таблицы для  ИСС

 

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

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

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

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

01КАФЕ

2

S1

Apple Bar & Restaurant

5

S2

Devaldi

4

S3

Ресторан Эль Гаучо,

Г. Москва

1

S4


 

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

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

дог_номер

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

дог_наимен

дог_цена

дог_кол_тов

дог_код_тов

S1

D1

Франция

Ром Бакарди Золотой Bacardi Oro

1050

2

Т1

S2

D2

Великобритания

Джин Гордонс Gordons

320

5

Т2

S3

D3

Мексика

Текила Камино БланкоCamino Blanco

600

4

Т3

S4

D4

Франция

Коньяк Курвуазье ХО Courvoisier XO

5000

1

Т4


 

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

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

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

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

Т1

"Альфа Альянс" 

6

Т2

Арома, ТД, ЗАО

15

Т3

Дионис Клуб, МСК, ТД, ООО

12

Т4

АСТ - Интернэшнл Инваэронмент

3


 

 

 

 

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

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

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

 

 

 

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

 

В данном курсовом проекте  классифицирующая сеть используется для определения принадлежности товара к подгруппе товаров. Благодаря этому при заключении договоров покупателю не обязательно задавать непосредственно товар, а можно задать только  название подгруппы товаров, в которой он находится. Система выведет все предложения конкретных товаров из заданной подгруппы. В конкретном случае, покупатель, при запросе чистые алкогольные напитки, получает не один, а несколько вариантов предложений (высоко алкогольные, крепкие, средне алкогольные и  слабо алкогольные напитки).

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

class(Ki,Kj)

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

 

 

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

 

Для начала необходимо определить критерий выбора подходящего договора. Прежде необходимо условиться, что  в спросе атрибуты, имеющие значение «___», означают, что данный атрибут  не определен, то есть подразумевается  любое значение. Итак, предложение, подходящее для данного спроса, должно обладать следующими свойствами:

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

 

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

 

 

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

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

Имя

покупателя

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

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

Упаковка

Цена, руб.

объем

1

"АСТ - Интернэшнл  Инваэронмент

Ресторан Эль Гаучо,

Г. Москва

Коньяк Курвуазье ХО Courvoisier XO

Франция

Картонная коробка 

5000

0,75

2

Кауффман

01КАФЕ

Ром Бакарди Золотой Bacardi Oro

Франция

-//-

1100

1

3

"Альфа Альянс" 

01КАФЕ

Ром Бакарди Золотой Bacardi Oro

Франция

-//-

1050

1

4

Bodegas Valdepablo-Neva, Компания

Apple Bar & Restaurant

Джин Гордонс Gordons

Великобритания

-//-

345

0,375

5

Арома, ТД, ЗАО

Apple Bar & Restaurant

Джин Гордонс Gordons

Великобритания

-//-

320

0,375

6

Дионис Клуб, МСК, ТД, ООО

Devaldi

Текила Камино БланкоCamino Blanco

Мексика

-//- 

600

0,75

7

Адамар ОНК, ООО

Devaldi

Текила Камино БланкоCamino Blanco

Мексика

-//- 

610

0,75


 

 

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

 

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

Имя

покупателя

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

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

Упаковка

Цена, руб.

объем

1

"Альфа Альянс" 

01КАФЕ

Ром Бакарди Золотой Bacardi Oro

Франция

Картонная коробка

1050

1

2

Арома, ТД, ЗАО

Apple Bar & Restaurant

Джин Гордонс Gordons

Великобритания

-//-

320

0,375

3

"АСТ - Интернэшнл  Инваэронмент

Ресторан Эль Гаучо,

Г. Москва

Коньяк Курвуазье ХО Courvoisier XO

Франция

-//-

5000

0,75

4

Дионис Клуб, МСК, ТД, ООО

Devaldi

Текила Камино БланкоCamino Blanco

Мексика

-//- 

600

0,75


 

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

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

 

 

 

code=3000           

 

domains

I=integer         

C=char

S=string

file=tempfile

R=real

List=integer*

 

DATABASE   

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

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

 

predicates

Zastavka

Start

CreateTitle

LoadBD(S)

Select(I)                    

Work

WatchDemand

WatchOffer

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

sort(List,List,List)

 

 

good(S,S)

package(S,S)

size(I,I)

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("DATA.DAT"),

CreateTitle,           

Start.               

 

clauses

 

/* Information o programme*/

   Zastavka:-

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

   nl,nl,nl,

   write("                          Sistema-posrednik"),nl,nl,

write("               Tema: Postavka alkogol'nblx napitkov" ),nl,

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

write("                                      Studentka: Komarova T.E."       ),nl,

   write("                                      Rukovoditel: Potresova G.D." ),nl,

   write("                                      Gruppa IU-1-05      "   ),nl,

   write("                                      Fakultet: Kibernetiki  "  ),nl,

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

write("                              Moscow 2007     "  ),nl,nl,

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

 

 

/* zagolovok*/

   CreateTitle:-

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

      attribute(113),

      write("         Sistema-posrednik \"Postavka alkogol'nblx napitkov\"           ").

 

    

/*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("                           Glavnoe menu:"),nl,

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

      write("                           1-Spravka"),nl,

      write("                           2-Dogovorbl"),nl,

      write("                           3-Prosmotr bazbl"),nl,

      write("                           4-Zaverwenie programmbl"),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," Spros ",0,0,25,80),

  nl,

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

  write("|  |            |  Naimeno  |  Forma | Strana |ob'em  |Kol-vo|Cena |Srok |"),nl,

  write("|N | Pokupateli |   vanie   |upakovki| proiz. |       |zakaza|     |     |"),nl,

  write("|  |            |   tovara  |        |        |       |      |     |     |"),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,28),write("|"),write(Form),

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

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

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

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

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

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

  nl,

  fail.

 

WatchDemand:-

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

  readchar(_),

  removewindow.

 

 

WatchOffer:-

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

  nl,

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

  write("|  |            |  Naimeno  |  Forma | Strana |ob'em  |Kol-vo|Cena |Srok |"),nl,

Информация о работе Система-посредник в заключении договоров на поставку алкогольной продукции