Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vstup.doc
Скачиваний:
3
Добавлен:
20.11.2018
Размер:
250.88 Кб
Скачать

2 Розробка алгоритму рішення

2.1 Аналіз концептуальної моделі знань

Для того, щоб правильно вирішити поставлену задачу необхідно, спроектувати концептуальну модель знань згідно поставленого завдання, яка буде якнайточніше відповідати вимогам, що ставляться до роботи даної системи.

У нашому випадку, необхідно реалізувати ІПС (інформаційно-пошукова система) замовлень авіаквитків (було взято до уваги тільки пасажирські перевезення).

Для вирішення поставленої задачі було визначено наступні відношення:

• авіакомпанія – підприємство, що надає послуги з авіаперевезення, в термінах системи авіакомпанія представляється у вигляді наступної структури: код фірми (цифровий), назва, країна реєстрації.

• рейс – структура, яка містить інформацію про авіарейс: номер рейсу, пункт відправлення, пункт(и) прибуття, дата, час відправлення і прибуття відповідно. Для зв’язку із структурою "авіакомпанія" використовується код фірми.

• транзакції – в термінах системи це процес замовлення авіаквитків через розроблену інформаційну систему.

Для наочності на рисунку 2.1 показана модель бази знань ІПС (спрощена, так як не показано основні параметри звітів)

Рисунок 2.1 – Модель бази знань ІПС

Для забезпечення уніфікації предикатів в системі, застосовується наступна конвенція щодо оформлення програмного коду.

Предикати внутрішніх фактів, що зберігаються у зовнішній динамічній базі даних називаються відповідно до типів звітів, що використовуються в системі:

company – структура, яка описує параметри авіакомпанії;

races – предикат для опису параметрів авіарейсу;

transactions – предикат для опису параметрів транзакцій;

Слід зазначити, що дана система не може претендувати на повноту опису, яка використовується в державі (у світі), дана робота є перш за все унаочненням можливостей, які надають засоби логічного програмування (в нашому випадку середовище Visual Prolog).

Для того, щоб забезпечити краще розуміння програми всі параметри, що використовуються у предикатах оголошені відповідними доменами, що значно спрощує супровід відповідного програмного забезпечення.

domains

/* Date domain */

day = integer – номер дня місяця

month = integer – номер місяця в році

year = string - рік

date = date(day, month, year) – домен-структура для зберігання дати

/* Time domain */

hour = integer % Години

min = integer % Хвилини

time = time(hour, min)

/* Company table */

c_code = integer % Код авіакомпанії (для забезпечення звязку)

c_title = string % Назва авіакомпанії

c_reg_country = string % Країна реєстрації

/* Races table */

r_num = integer % Номер рейсу

r_type = string % Тип рейсу (c - чартер, rc - загальний)

r_dep = string % Пункт відправлення

r_arr = string* % Пункт(и) прибуття

/* Transactions table */

t_num = integer % Номер транзакції

t_type = integer % Тип транзакції

t_staff = string % Особа

t_price = real % Вартість

2.2 Розробка алгоритму функціонування системи

В основу алгоритму роботи програми покладено механізм діалогової взаємодії користувача з ІПС на всіх етапах роботи. На рисунку 2.2 показана схема роботи інформаційно-пошукової системи. Як видно з рисунка 2.2 основним елементом є головне меню системи з якого існує можливість "добратися" до будь-якої категорії. В даному випадку категорії – це дії користувача в системі: реєстрація нових даних, видалення даних, пошук інформації. Згідно з моделлю, що представлена на рисунку 2.1 ми визначилися із чотирма типами записів у базі даних, тому при виборі із головного меню деякого підпункту, наступним буде крок вибору типу запису по відношенню до якої буде застосована дана дія (процедура), що наглядно демонструє рисунок 2.2.

Рисунок 2.2 – Структура інформаційно-пошукової системи

Після запуску програми у вікно виводиться головне меню системи, яке показане на рисунку 2.3.

Рисунок 2.3 – Головне меню програми

Після вибору будь-якого відмінного від нуля пункту меню завантажується підменю відповідного блоку ІПС, як показано на рисунку 2.4.

Рисунок 2.4 – Секція Пошук рейсу за пунктом (пунктами) прибуття

На рисунку 2.5 показано вікно реєстрації інформації про рейс. Особливістю даної програми є реалізація вводу списку станцій посадки для деякого рейсу, ця можливість реалізована з використанням списків.

Рисунок 2.5 – Діалог "Реєстрація нового рейсу"

В загальному блок-схема алгоритму функціонування системи показана на рисунку 2.6.

Під викликом процедури обробки [Х] на першому етапі розуміється перехід в підменю вибору задач, що пов’язані з окремим елементом, як показано на рисунку 2.4. Як було наведено вище вся система функціонує за подібним принципом, тобто такою ж самою схемою можна зобразити процедуру виклику обробки події користувача [X].

Рисунок 2.6 – Блок-схема алгоритму роботи програми

База знань системи організована наступним чином. Для запису інформації до зовнішнього файлу фактів використовується службовий предикат assertz після чого робиться оновлення бази, через те, що після виконання процедури додавання факту, оновлення зовнішнього файлу не відбувається. На рисунку 2.7 показаний приклад файлу зовнішньої динамічної БД.

Рисунок 2.7 – Приклад файлу зовнішньої БД

Використання такого підходу дозволяє значно спростити програмний код ІДС, але в свою чергу при необхідності збільшення бази знань до значних розмірів, необхідно використовувати засоби, які дозволяють прискорити пошук і обробку інформації великих масивів даних.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]