ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 16
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ЗАВДАННЯ
на курсову роботу
з дисципліни ""
студента групи
___________ _________
(П.І.Б. студента)
Тема курсової роботи:
Вибір сорту вина для заданого набору блюд _____________________________________________________________________________
1. Дата видачі завдання:________________
2.Термін видачі роботи:________________
3. Дата захисту курсової роботи:_______________
Керівник курсової роботи:__________.
РЕФЕРAТ
Курсова робота містить: сторінок, рисунки, додаток, 20 джерел.
ІНФОРМАЦІЙНО-ДОРАДЧА СИСТЕМА, БАЗА ДАНИХ, МОВА ПРОГРАМУВАННЯ, ІНСТРУМЕНТАЛЬНІ ЗАСОБИ, БАЗА ЗНАНЬ, ІНТЕЛЕКТУАЛЬНА СИСТЕМА, ПРОЕКТУВАННЯ
Завдання курсової роботи з дисципліни «» – надання знань по основам створення експертних систем та баз знань в системах штучного інтелекту, а також вивчення принципів роботи в експертних системах та принципів програмування у різних інтелектуальних програмних середовищах.
В результаті виконання курсової роботи ми будемо знати: сутність роботи в експертних системах, сутність створення баз знань, вміти програмувати за допомогою логічних мов програмування та знати основи та принципи створення інтелектуальних систем.
В результаті виконання курсової роботи ми будемо вміти: застосовувати отримані навики роботи при створенні експертних систем та баз знань, вміти вирішувати складні інженерні задачі за допомогою вивченого матеріалу з дисципліни.
В результаті виконання курсової роботи з дисципліни „Технології розробки та проектування інформаційних систем” ми отримаємо навички: практичної роботи в експертних системах та базах знань, програмування у логічних мовах програмування та інтелектуальних системах.
ЗМІСТ
РЕФЕРAТ 1
ВСТУП 4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 6
1.1Огляд інтелектуальних інформаційних систем 6
1.2Класифікація інтелектуальних інформаційних систем 9
2 АНАЛІТИЧНИЙ РОЗДІЛ 12
2.1 Розробка технічного завдання системи 12
2.2 Проектування структури експертної системи 13
2.3 Обґрунтування вибору мови програмування 15
3 ПРОЕКТУВАННЯ СИСТЕМИ 21
3.1 Обґрунтування бази даних системи 21
3.2Розробка макету користувальницького інтерфейсу системи 24
3.3Опис роботи системи 27
3.4Тестування та експлуатація 28
ВИСНОВКИ 31
СПИСОК ЛІТЕРАТУРИ 32
ВСТУП
Інформаційні системи здавна знаходять (в тому чи іншому вигляді) досить широке застосування в життєдіяльності людства. Це пов'язано з тим, що для існування цивілізації необхідний обмін інформацією — передача знань, як між окремими членами і колективами суспільства, так і між різними поколіннями. Інформаційні системи існують з моменту появи суспільства, оскільки на кожній стадії його розвитку існує потреба в управлінні. Місією інформаційної системи є переробка інформації, потрібної для ефективного управління всіма ресурсами організації, створення інформаційного та технічного середовища для управління її діяльністю.Така кількість інформації роблять неможливим обробку таких масивів даних власноруч. Завдяки необхідності, у людства зв’явилася необхідність в створенні комп’ютерних засобів автоматизації обробки, пошуку, збереження, систематизації даних, при цьому здатних аналізувати дані, пристосовуватися до змін інформації, робити власні висновки на основі аналізу. Подібні системи мають назву – інтелектуальні інформаційні системи. Щоб створити експертну систему, потрібно розуміти з яких компонентів вона складається. Безумовно головним з них можна назвати інтерфейс користувача. Він повинен бути зрозумілим у використанні, та виводити потрібні результати користувачу. Але перед тим як починати робити сам інтерфейс, потрібно розуміти низку інших компонентів, які цей інтерфейс роблять діючим, працюючим, діючим за певними алгоритмами, підлаштовані під вибір кожної людини, яка працює з системою. Варто також розібрати базу знань, вона містить факти про проблемну область, а також відношення між ними. Ще потрібно мати на увазі правила, їх задача визначити що робити в кожній ситуації, ділиться на дві частини: умова, яка може виконатися або ні, та дія яку потрібно проробити якщо виконується умова. Навіть проста система може включати в себе тисячу або і більше правил. Для створення подібної програми треба дослідити найчастіші проблеми у вибору сортів вина кліентами, виявити найпростіші шляхи реалізації проблеми.
Отже, використовуючи ці можливості, програма повинна розкрито відповідати на обрані проблеми користувача, що потребує мінімальні знання увиборі сортів вина.
Об’єкт — експертна система, що знаходить оптимальний вибір сорту вина.
Предмет — надання допомоги клієнту з вибору сорту вина.
Мета: створення програми, що буде надавати пораду з вибору сорту вина клієнту, який не має досвіду та знань в даній сфері.
Методи дослідження: виявлення практичної значущості програми у її актуальності, дотриманню стандартів розробки.
1. Теоретичні: узагальнення зібраної інформації, класифікацію, дедукція, абстрагування.
2. Емпіричні методи: моделювання, систематизація, тестування, спостереження.
Практична значущість: потрібність людей з мінімальним досвідом роботи з вибору сортів вина та отриманими за різними критеріями порад, що розділяються на послідовні етапи.
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
-
Огляд інтелектуальних інформаційних систем
Розуміння принципів поєднання вин та страв, до яких вони подаються, дозволить вам без особливих проблем вибрати напій на вечір чи торжество. Ви зможете підібрати вино під страву, яка чекає на вас на урочистій вечері або навпаки - під вино організувати приготування певної страви. Нижче кілька основних моментів, на які слід звернути увагу, при виборі комбінації вина та страви. Перше, що слід зрозуміти, це факт того, що і вино, і їжа – явища комплексні. Смак і того, і іншого украй складний і містить величезну кількість аспектів. В основі поєднання вин і страв, з якими вони подаються, лежить гармонія ключових смакових комплексів -домінант. Баланс смакових відчуттів - ось той ідеал, якого необхідно прагнути при виборі вина. Якщо у вас є розуміння того, що домінує у смаку вина і страви, до якого ви його підбираєте, ви зможете легко створювати нескінченні поєднання зі страв і вин, з вин і страв.
Власне, поєднуватися компоненти напоїв та страв можуть за двома моделями:
1) Вино і блюдо, до якого воно подається, мають багато спільного в ароматичній палітрі. Смаки взаємно доповнюють одне одного, відтіняючи чи збагачуючи. Така комбінація називається конгруентною.
2) Вино та блюдо, до якого воно подається, мають незначну кількість схожих ароматів. Смаки перебувають у відносинах протиставлення; в основі поєднання знаходиться відношення протиставлення. Смаки відтіняють один одного за рахунок контрастних смакових відчуттів. Такі смаки – комплементарні.
Ще раз узагальним:
Комплементарні поєднання - поєднання, в яких баланс досягається за рахунок протиставлення смаків. Конгруентні поєднання — поєднання, у яких баланс досягається з допомогою взаємного посилення чи збагачення подібних смаків.
Як вибрати вино до страви? Основні принципи:
-
Знати і розуміти принципи поєднання вин і страв, до яких вони подаються.
-
Визначити основні харакетристики їжі та вина; визначити домінанти.
-
Оцінити «інтенсивність» страви, щоб знайти потрібний «еквівалент» серед вин. Інтенсивність вина має «врівноважити» інтенсивність страви.
-
Визначитися з ключовою парою смаків, щодо якої ви будете вибудовувати зв'язок між вином і стравою (наприклад, солодкий+солоний, жирний+кислий, солодкий+кислий тощо)
-
Поекспериментуйте зі сполученнями, де вина та їжа схожі/несхожі один на одного.
Ключові характеристики вина.
На даний момент фахівці виділяють понад 20 характеристик, якими можуть бути описані будь-які страви. До цього списку входять як «базові» (солодкий, кислий, жирний), так і додаткові (гострий, умами (м'ясний смак) та тонізуючий). На щастя, для того, щоб навчитися правильно вибирати вино, достатньо брати до уваги лише 6 смаків:
-
солоний,
-
кислий,
-
солодкий,
-
гіркий,
-
жирний
-
та пікантний (насичений спеціями).
Основна смакова характеристика вина (домінанта).
У більшості випадків у вині відсутні жирний смак, смак спецій і солоний смак, але завжди (в більшій чи меншій мірі) присутні три інші ключові компоненти:
-
кислий смак,
-
солодкий смак і
-
гіркий (таніни) смак.
У зв'язку з чим вина можна згрупувати за 3 основними категоріями:
-
Вина, у яких переважає гіркий смак (таніни). Як правило, це червоні вина;
-
Вина, у яких переважає кислий смак. Сюди належить переважна більшість сухих білих, рожевих та ігристих вин.
-
Вина, у яких переважає солодкий смак. У цій групі – всі солодкі та десертні вина.
Ключові характеристики їжі.
За аналогією, кожна з страв може бути спрощена до кількох базових домінант. Наприклад, паста може бути описана двома компонентами: жир і сіль. Барбекю — значно складніше: тут жир, сіль, насолода та спеції (плюс трохи кислоти). Наприклад, у зеленому салаті можна виділити такі ключові компоненти: кислота та гіркота; Геркулесова молочна каша - це жир і насолода.
У їжі ми шукаємо 1 -2 домінанти зі списку нижче:
-
солоний,
-
кислий,
-
солодкий,
-
гіркий,
-
жирний
-
та пікантний (насичений спеціями).
Інтелектуальні системи (ІС) – це системи, що дозволяють будувати програми доцільної діяльності при вирішенні поставлених перед ними завдань на підставі конкретної ситуації, що складається на даний момент у навколишньому середовищі. При цьому інтелектуальні системи повинні зберігати працездатність при непередбачених змінах властивостей керованого об’єкту, цілей управління або навколишнього середовища (бути адаптивними). Штучний інтелект (ШТ) – здатність інженерної системи обробляти, застосовувати та вдосконалювати здобуті знання та вміння. Найчастіше, інформаційні інтелектуальні системи (ІС) в мережі інтернет використовуються в якості рекламно-інформаційної функції, в свою чергу, спеціалізовані інтелектуальні системи використовуються локально, тому що, виконують конкретні вузькопрофільні завдання. Комунікаційні здібності ІС характеризують спосіб взаємодії кінцевого користувача з системою – тобто можливість формулювання довільного запиту в діалозі системи. Складні, погано формалізовані завдання – завдання, що погано формалізуються та вимагають побудови оригінального, нестандартного алгоритму рішення, залежно від конкретної ситуації, для якої можуть бути характерні невизначеність і динамічність.[8]
-
Класифікація інтелектуальних інформаційних систем
Оскільки в основі інтелектуальних систем, що створюються як додаток теорії несилової взаємодії, лежить обробка різних дій з виробленням адекватною цим діям реакції, то такі системи отримали назву рефлекторних (по аналогії з поведінкою об’єктів живої природи). За критерієм ступеня інтелектуалізації, який у першому наближенні може характеризуватися обсягом інформації, що обробляється, інтелектуальні системи можна поділити на:
-
системи перебору варіантів рішень згідно встановленої пріоритетності для наперед змодельованих ситуацій;
-
ІС, які приймають рішення за детермінованими вирішальними правилами без навчання;
-
інтелектуальні системи, що реалізують алгоритми компараторного розпізнавання за еталонами;
-
експертні системи, що з метою прийняття ефективних рішень маніпулюють спеціальними знаннями
-
накопиченими фахівцями експертами у конкретній предметній сфері знань;
-
інтелектуальні системи, що здатні самонавчатися;
-
знання-орієнтовані ІС, що здатні утворювати та використовувати базу знань.
Інтелектуальні системи, що здатні самонавчатися, можна поділити на такі основні класи: 1. ІС, що розв’язують задачу розпізнавання образів за апріорно класифікованою навчальною матрицею (навчання з “учителем”). 2. ІС, що реалізують алгоритми факторного кластер-аналізу. 3. ІС, що реалізують алгоритми кластер-аналізу при незмінному словнику ознак і за апріорно некласифікованими навчальними матрицями, тобто за умови неповної апріорної інформації про функціональний стан системи (навчання без “учителя”). 4. ІС, які реалізують алгоритми автоматичної класифікації за апріорно некласифікованими навчальними матрицями та здатні оптимізувати параметри словника ознак розпізнавання. 5. Відмово стійкі ІС, що здатні самостійно діагностувати свій функціональний стан і відновлювати свою функціональну спроможність при виникненні відмов. 6. Адаптивні ІС, що здійснюють класифікаційне самонастроювання та самоорганізацію. 7. ІС, що вирішують проблему шалювання, яка полягає у побудові для шкал з різними мірами виміру зведеної шкали, координати якої можуть бути обернено відображені на відповідні вихідні шкали. 8. Сенсорні ІС, що моделюють чуттєві функції людини та базуються на “образному” комп’ютері, наділеному властивостями “технічного зору”, усномовного розпізнавання, розпізнавання пахощів тощо. 9. Гібридні ІС, які поєднують різні алгоритми та методи автоматичної класифікації.
До знанню-орієнтованих інтелектуальних систем відносять:
1. Системи, що ґрунтуються на інструктивних знаннях (rulebased reasoning).
2. Системи, що ґрунтуються на автоматичному доведенні теорем (automatic theorem-proving techniques).
3. Системи, що ґрунтуються на автоматичному породженні гіпотез (automatic hypothesizing).
4. Системи, що ґрунтуються на доведенні за аналогією (analogical reasoning).
5. Об’єктно-орієнтовані інтелектуальні системи (object-oriented intelligent systems).
6. Об’єктно-логічні інтелектуальні системи, що поєднують окремі переваги об’єктно-орієнтованих систем з системами автоматичного доведення теорем і використовують об’єктно-логічні мови, фреймові логіки (F-logics), логіки транзакції (transaction logics) та інше. Зрозуміло, що наведена класифікація не є досить повною, оскільки відбувається неперервне розширення номенклатури ІС як за призначенням, так і за принципами функціонування.
2 АНАЛІТИЧНИЙ РОЗДІЛ
2.1 Розробка технічного завдання системи
Технічне завдання по Проектування довідкової-інтелектуальної системи «Вибір сорту вина для заданого набору блюд»» відповідно до бажань клієнта має вигляди наступним чином:
1. Назва проету та область його застосування.
1.1 Тема проекту: «Вибір сорту вина для заданого набору блюд»
2. Виконавець проекту.
2.1 Виконавець –.
2.2 Группа –
3. Характеристики об'єкту проектування.
3.1 Об'єкт проектування довідкової-інтелектуальної системи.
4. Мета та призначення.
4.1 Метою проекту є: створення довідкової-інтелектуальної системи.
5. Характеристики процесу проектування.
5.1 Очикуемий результат проектування: довідкової-інтелектуальної системи.
6. Вимоги до технічних засобів та необхідного ПЗ
6.1 Вимоги до технічних засобів.
Для роботи ПЗ необхідні наступні мінімальні параметри системи:
- процесор: Intel Core чи AMD Ryzen;
- обсяг ОП: 8 Гб;
- обсяг вільного місця на диску: 500 Гб;
- відеокарта з обсягом ОП: 4 ГБ .
6.2 Вимоги до мінімального програмного забезпечення.
Для роботи системи необхідна операційна система Windows 8/8.1/10/11
7. Вимоги до інформаційної довідкової-інтелектуальної системи.
7.1 Вимоги замовника до мови довідкової-інтелектуальної системи, що проходить стадію розробки.
Мова програмування для розробки довідкової-інтелектуальної системи обирається виконавцем замовлення самостійно.
7.2 Вимоги до мови текстового наповнення довідкової-інтелектуальної системи, що проектується.
Мова виконання замовлення – українська.
7.3 Об'єм і склад текстової довідкової-інтелектуальної системи.
Вимоги узгоджуються в співбеседі між замовником системи та її виконавцем.
8. Вимоги до інтерфейсу програмного забезпечення.
8.1 Інтерфейс програмного забезпечення.
Вимоги до інтерфейсу прогамного забезпечення виконується виконавцем при узгодженні з замовником.
9. Термін розробки програмного забезпечення
Термін узгоджуються в співбеседі між замовником системи та її виконавцем.
10. Додаткові умови.
Додаткові умови узгоджуються в співбеседі між замовником системи та її виконавцем.
11. Стадії та етапи.
11.1 Проектування буде виконано на протязі трьох місяців.
2.2 Проектування структури експертної системи
Якщо казати про класифікацію ЕС яку можна побачити на рисунку 1.1, то можна виділити основні критерії. За типом задачі: інтерпретація даних, діагностика, моніторинг, прогнозування, планування, навчання.
Рисунок 1.1 - Класифікація існуючих ЕС
Під інтерпретацією розуміється визначення значення даних, результати якого повинні бути узгодженими і коректними. Звичайно передбачається багатоваріантний аналіз даних. Це одна з традиційних задач для ЕС. Під діагностикою розуміється виявлення несправності в деякій системі. Несправність – це відхилення від норми. Таке трактування дозволяє з єдиних теоретичних позицій розглядати і несправність устаткування в технічних системах, і захворювання живих організмів і всілякі природні аномалії. Важливою специфікою є необхідність розуміння функціональної структури системи діагностування. Основна задача моніторингу – безперервна інтерпретація даних в реальному масштабі часу і сигналізація про вихід тих чи інших параметрів за допустимі межі. Головні проблеми – пропуск тривожної ситуації і інверсна задача помилкового спрацьовування. Складність цих проблем – в розмитості симптомів „тривожних” сигналів. Підготовка специфікацій на створення об'єктів з наперед визначеними властивостями. Під специфікацією розуміється весь набір необхідних документів: креслення, записка пояснення і т.д. Основні проблеми тут – отримання чіткого структурного опису знань про об'єкт. Для організації ефективного проектування необхідно формувати не тільки самі проектні рішення, але і мотиви їх ухвалення. Таким чином, в задачах проектування тісно пов'язуються два основні процеси: процес виведення рішення і процес пояснення. Системи прогнозування логічно виводять вірогідні наслідки із заданих ситуацій. У системі прогнозування звичайно використовується параметрична динамічна модель, в якій значення параметрів підганяються під задану ситуацію. Наслідки, що виводяться з цієї моделі, складають основу для прогнозів з оцінками вірогідності. Під плануванням розуміється знаходження планів дій, що відносяться до об'єктів, здатних виконувати деякі функції. У таких ЕС використовуються моделі поведінки реальних об'єктів з тим, щоб логічно вивести наслідки планованої діяльності. Навчання. Системи навчання діагностують помилки при вивченні будь-якої дисципліни за допомогою ЕОМ і підказують правильні рішення. Вони акумулюють знання про гіпотетичного учня і його характерні помилки, потім в роботі здатні діагностувати слабкості в знаннях тих, кого навчають, і знаходити відповідні способи для їх ліквідації. Такі системи планують процес спілкування з учнем залежно від успіхів учня, з метою передачі знань.[9]
У загальному випадку, всі системи, основані на знаннях, можна розділити на:
- системи, які вирішують задачі аналізу,
- системи, які вирішують задачі синтезу.
Основна відмінність задач аналізу від задач синтезу – в задачах аналізу безліч рішень може бути перераховано і включено в систему, а в задачах синтезу безліч рішень потенційно будується з рішень компонентів або підпроблем. Задачі аналізу – інтерпретація даних, діагностика, задачі синтезу – проектування, планування. Комбіновані задачі – навчання, моніторинг, прогнозування.
2.3 Обґрунтування вибору мови програмування
ІDE (Integrated Development Environment) та редактор коду – це види програмного забезпечення, призначені для роботи над додатками, їх розробки та тестування. Можливості цих інструментів різняться. Редактор коду є програмою, що працює як текстовий редактор, що тільки більш підходить для написання коду самого текстового редактора для написання та редагування коду;
IDE – це програмне забезпечення, яке поєднує інструменти для розробки додатків та їх тестування в єдиному інтерфейсі. Може робити все те, що текстовий редактор, і навіть більше. У принципі, цим IDE і відрізняється від нього, вона надає більш розширені функції. Середовища розробки дозволяють створювати великі проекти, а також підключати Git. IDE є складнішим інструментом, ніж звичайний текстовий редактор. Незважаючи на те, що в текстових редакторах є багато корисних функцій на кшталт підсвічування синтаксису, єдине їх завдання - забезпечувати роботу з кодом. Тобто для повноцінної розробки вам знадобиться ще хоча б компілятор та відладчик. IDE вже містить у собі всі ці та інші корисні компоненти. По суті, термін IDE означає те, що у вас під рукою буде все, що необхідно для розробки програм і програм. PhpStorm Розумне середовище від відомої компанії JetBrains призначене для розробки на PHP, JavaScript, HTML і CSS і ідеально підходить для роботи з різними CMS: Drupal, Wordpress, Symfony, Joomla та багатьма іншими. Середовище розробки глибоко аналізує структуру коду, допомагаючи уникати помилок, а також підтримує бази даних та SQL. Для розробки зовнішнього вигляду та клієнтського інтерфейсу була використана мова програмування Python. Python – багатоцільова мова програмування, яка дозволяє писати код, що добре читається. Відносний лаконізм мови Python дозволяє створити програму, яка буде набагато коротше свого аналога, написаного на іншій мові. Python – багато платформна мова програмування. Це означає, що програми на Python можна запускати в різних операційних системах без будь-яких змін. Ще однією перевагою Python є його стандартна бібліотека, яка встановлюється разом з Python і містить готові інструменти для роботи з операційною системою, веб-сторінками, базами даних, різними форматами даних, для побудови графічного інтерфейсу програм тощо. Програми, написані на мові програмування Python, можуть бути як невеликими скриптами, так і складними системами. Використовувалась також бібліотека для Python PySide. PySide - це бібліотека, що дає доступ до інструментарію кроссплатформенного графічного інтерфейсу користувача Qt. Qt є набором бібліотек C++, але за допомогою PySide можна використовувати ті ж компоненти з Python. Будь-який складний графічний інтерфейс, який може бути створений в C++, може бути створений і змінений в Python. Перевага використання Python полягає в тому, що інтерфейси Qt можна розробляти та тестувати наживо, без потреби компілювати вихідні файли.
2.4 Інформаційна модель і її опис
Сама по собі система є безліччю елементів, що зв'язується відносинами і зв'язках один з одним. Описати ці стосунки може інформаційна модель. Інформаційна модель — це модель, яка описує об'єкт, застосовуючи індивідуальну інформацію, що складається з різних взаємозалежних параметрів та змінних. Інформаційна модель системи потрібна щоб визначити компоненти системи між собою, її взаємодію з учасниками системи, принцип її створення та процес розробки. Представити опис інформаційної моделі можливо у вигляді наступних діаграм: діаграми варіантів використання, діаграми функціональної моделі IDEF0, та діаграми декомпозиції Діаграма варіантів використання (англ. use-case diagram) — діаграма, яка описує, який функціонал програмної системи, що розробляється, доступний кожній групі користувачів. Тобто ця система описує взаємодію користувачів зі системою. Успішна діаграма варіантів використання повинна описувати дії і варіанти, які використовуються для досягнення мети.
Загальні компоненти:
1. Актори: користувачі, які взаємодіють із системою. Актор може бути людиною, організацією або зовнішньою системою, що взаємодіє з додатком або системою. Вони повинні бути зовнішніми об’єктами, які виробляють або користуються даними;
2. Прецедент: конкретна послідовність дій та взаємодій між учасниками і системою. Прецедент також можна назвати сценарієм;
3. Цілі: кінцевий результат більшості випадків використання.
На рисунку 2.1 наведена діаграма варіантів використання системи
Рисунок 2.1 - Діаграма варіантів використання
Після тестування ЕС, подальшого можливого редагування інтерфейсу, система надходить до користувача. Слід сказати про відношення користувача з системою. В першу чергу користувач повинен увійти в систему, мати доступ до неї. Наступною обов’язковою настановою є перегляд рекомендацій, так можна зрозуміти як саме користуватися ЕС, інакше в іншому випадку є ймовірність, що результат буде неочікуваним та можливо невдалим. Після того, як людина знає, про всі етапи роботи із системою, можна розпочинати з нею працювати. Важливим є введення вхідних даних, які будуть оброблені та на основі яких отримується кінцевий результат. Модель IDEF0 - функціональна модель системи, яка відображає структуру та функції. Опис системи за допомогою IDEF0 називається функціональною моделлю. Функціональна модель призначена для опису існуючих бізнес-процесів, у якому використовуються як природна, так і графічна мови. Для передачі інформації про конкретну систему джерелом графічної є сама методологія IDEF0. Модель IDEF0 наступним чином: спочатку проводиться опис системи в цілому та її взаємодії з навколишнім світом (контекстна діаграма), після чого проводиться функціональна декомпозиція — система розбивається на підсистеми та кожна підсистема описується окремо (діаграми декомпозиції). Контекстна діаграма DEF0 будується по моделі "чорний ящик". Модель «чорний ящик» — це система, в якій зовнішньому спостерігачеві доступні лише вхідні та вихідні величини, а структура та внутрішні процеси не відомі
На рисунку 2.2 наведена діаграма IDEF0 (контекстна діаграма)
Рисунок 2.2 - Діаграма IDEF0 (контекстна діаграма)
Декомпозиція дозволяє поступово представляти модель системи у вигляді ієрархічної структури окремих діаграм, що робить її менш перевантаженою та легко засвоюваною. Декомпозиція — науковий метод, що використовує структуру завдання і дозволяє замінити вирішення одного великого завдання рішенням серії менших завдань, нехай і взаємопов'язаних, але більш простих. Декомпозиція, як процес розділення, дозволяє розглядати будь-яку досліджувану систему як складну, що складається з окремих взаємопов'язаних підсистем, які, в свою чергу, також можуть бути розділеними на частини. Як системи можуть виступати не тільки матеріальні об'єкти, а й процеси, явища і поняття. Декомпозиція є умовним прийомом, що дозволяє уявити систему у вигляді, зручному для сприйняття, і оцінити її складність. В результаті декомпозиції підсистеми за певними ознаками виділяються окремі структурні елементи та зв'язки між ними. Декомпозиція служить засобом, що дозволяє уникнути труднощів у розумінні системи. Глибина декомпозиції визначається складністю і розмірністю системи, а також цілями моделювання
На рисунку 2.3 наведена Декомпозиція моделі IDEF0
Рисунок 2.3 – Декомпозиція моделі IDEF0
3 ПРОЕКТУВАННЯ СИСТЕМИ
3.1 Обґрунтування бази даних системи
Реляційні бази даних – найстаріший тип широко використовуваних БД загального призначення. Дані та зв'язки між даними організовані за допомогою таблиць. Кожен стовпець у таблиці має ім'я та тип. Кожен рядок представляє окремий запис або елемент даних у таблиці, який містить значення для кожного зі стовпців наслідки:
-
поле в таблиці, що називається зовнішнім ключем, може містити посилання на стовпці в інших таблицях, що дозволяє їх з'єднувати;
-
високоорганізована структура і гнучкість робить реляційні БД сильними і адаптованими до різних типів даних;
-
для доступу до даних використовується мова структурованих запитів (SQL);
-
надійний вибір для багатьох програм.
MySQL – це популярний сервер баз даних, що використовується у різних додатках. SQL означає мову структурованих запитів - (S)tructured (Q)uery (L)anguage, яку MySQL використовує для комунікації з іншими програмами. Крім того, MySQL має власні розширені функції SQL для того, щоб забезпечити користувачам додатковий функціонал. У цьому документі ми розглянемо як провести початкову установку MySQL, налаштувати бази даних та таблиці та створити нових користувачів. Почнемо з установки. MariaDB – відгалуження реляційної СУБД MySQL, що розробляється спільнотою під ліцензією GPL. MariaDB повністю сумісна з програмами, що використовують MySQL, а перехід на цю СУБД виправданий тим, що MySQL вже не так активно розвивається. Крім зрозумілої політики розповсюдження продукту, дана СУБД відрізняється від MySQL вищою продуктивністю, новими можливостями та меншою кількістю помилок у коді (зокрема, за рахунок кращого покриття тестами та активнішого розвитку). У MariaDB вбудовані покращений оптимізатор запитів, безпечна та швидка реплікація, швидші індекси для механізму зберігання даних MEMORY(HEAP), більш висока продуктивність перекодування символів, використання пулу потоків, а також багато інших покращень, що позитивно впливають на продуктивність. Відмова від підсистеми зберігання даних InnoDB та його заміна на XtraDB. Також крім MyISAM, Blackhole, CSV, Memory та Archive включені підсистеми зберігання Aria, PBXT (до версії 5.5), FederatedX, OQGRAPH, SphinxSE, IBMDB2I (до версії 5.5), TokuDB, а також c версії 10.0 — Cassan SEQUENCE, Spider. Провідний розробник - Майкл Віденіус, автор оригінальної версії MySQL. Поштовхом до створення стала необхідність забезпечення вільного статусу СУБД (під ліцензією GPL) на противагу невизначеній політиці ліцензування MySQL компанією Oracle. PostgreSQL є однією з найпопулярніших систем управління базами даних. Сам проект postgresql еволюціонував з іншого проекту, який називався Ingres. Формально розвиток postgresql почався ще 1986 року. Тоді він називався POSTGRES. А в 1996 році проект був перейменований на PostgreSQL, що відображало більший акцент на SQL. І 8 липня 1996 року відбувся перший реліз товару. З того часу вийшло безліч версій postgresql. Поточною версією є версія 15. Однак, регулярно також виходять під версії. SQLite — це швидка і легка одно файлова СУБД, що вбудовується, на мові C, яка не має сервера і дозволяє зберігати всю базу локально на одному пристрої. Для роботи SQLite не потрібні сторонні бібліотеки або служби. Поняття «вбудований» означає, що СУБД не використовує парадигму клієнт-сервер. Двигун SQLite — це не окремий процес, з яким взаємодіє програма, а бібліотека. Програма компонується з нею, і двигун служить складовою програми. Як протокол обміну використовуються виклики функцій (API) бібліотеки SQLite. Висока швидкість. Завдяки особливостям архітектури SQLite працює швидко, особливо читання. Компоненти СУБД вбудовані у додаток і викликаються у тому процесі. Тому доступ до них швидший, ніж при взаємодії між різними процесами. Зберігання даних у одному файлі. База даних складається з табличних записів, зв'язків між ними, індексів та інших компонентів. У SQLite вони зберігаються в єдиному файлі (database file), який знаходиться на тому ж пристрої, що й програма. Щоб під час роботи не виникало помилок, файл блокується для сторонніх процесів перед записом. Раніше це призводило до того, що записувати дані до бази міг лише один процес одночасно. Але в нових версіях це вирішується пере настроюванням режиму роботи СУБД. Мінімалізм. Автори SQLite користуються принципом «мінімального повного набору». З усіх можливостей SQL у ній є потрібні. Тому SQLite відрізняють малий розмір, простота рішень та легкість адміністрування. Для підвищення базової функціональності можна використовувати стороннє програмне забезпечення та розширення. Надійність. Код на 100% покритий тестами. Це означає, що випробуваний кожен компонент ПЗ. Тому SQLite вважається надійною СУБД із мінімальним ризиком непередбачуваної поведінки. Нульова конфігурація. Перед використанням СУБД не потрібне складне налаштування або тривале встановлення. Для вирішення більшості завдань їй можна скористатися «з коробки», без встановлення додаткових компонентів. Мінімальний розмір. Повністю налаштований SQLite з усіма параметрами займає менше 400 Кб. Якщо використовувати СУБД без додаткових компонентів, можна зменшити розмір до 250 Кб. Він залежить лише від кількості завантаженої інформації. Незважаючи на малий розмір, SQLite підтримує більшість функцій стандарту SQL2 і має низку власних. Доступність. SQLite знаходиться у публічному доступі. На її використання немає правових обмежень, а власником вважається суспільство. Можна відкривати, переглядати та змінювати вихідний код встановленого програмного забезпечення. Кросплатформність. СУБД підходить для UNIX-подібних систем, MacOS та Windows. Автономність. Система незалежна від стороннього програмного забезпечення, бібліотек або фреймворків. Щоб додаток з базою SQLite працював, додаткові компоненти не потрібні. Також не є обов'язковим доступ в інтернет: вся база зберігається на пристрої, отримати дані можна локально. Проаналізувавши бази даних та їх можливості було виявлено що доцільніше створити базу даних у середині коду, та розмістити усю інформацію у коді, це зменшить об’єм коду та збільшить швидкість реагування системи.
-
Розробка макету користувальницького інтерфейсу системи
PyQt — це бібліотека Python для створення програм із графічним інтерфейсом за допомогою інструментарію Qt. PyQt є вільним програмним забезпеченням (за ліцензією GPL) і розробляється з 1999 року. Остання версія PyQt6 – на основі Qt 6 – випущена у 2021 році, і бібліотека продовжує оновлюватись. На основі знань бібліотеки PyQt також можна використовувати PySide2, PySide6, PyQt6 і PyQt5. Сьогодні використовуються дві основні версії: PyQt5 на основі Qt5 та PyQt6 на основі Qt6. Обидві майже повністю сумісні, за винятком імпорту та відсутності підтримки деяких сучасних модулів з Qt6. У PyQt6 вносяться зміни у роботу просторів імен та прапорів, але ними легко управляти. Створюється вікно, потім додаються елементи з назвами блоків та чекбокси, розташовуються на площині вікна щоб не накладались один на одного та щоб не були в одній кучі, так само додаються і елементи з виводом інформації результатів.
Рисунок 3.1 – Тіло інтерфейсу
Як ми бачило на рис. 3.1 у вигляді блоків оформлено вибір чекбоксів з типами перших блюд. На рис. 3.2 блок програми з розширенням дисплею та наявністю у середені нього чекбоксу з вибором розширення дисплею, також поле яке вказуе назву блоку та лінії які візуально відділяють блок від інших елементів.
Рисунок 3.2 – Блок “Перше блюдо”
На рисунку 3.3 показано блок другим блюдом, також розміщене поле з назвою блоку та лінії які виділяють поле тим самим візуально видіяють поле та показують межі блоку.
Рисунок 3.3 – Друге блюдо
На рисунку 3.4 показано блок «Гарнір» у ньому містится три чекбокси з вибору типу гарніра, також у блоці є поле яке вказуе назву блоку та що в нбому містиця, лінії яки візуально виділяють блок від инших елементів.
Рисунок 3.4 – Блок «Гарнір»
На рисунку 3.5 показано блок «Дисерт» у ньому містится три чекбокси з вибору типу дисерт, також назва блоку та линії які візуально розділяють блок від інших елементів.
Рисунок 3.5 – Дисерт
На рисунку 3.6 показано блок «Напої» у ньому містится три чекбокси з вибору типу напоїв, також назва блоку та линії які візуально розділяють блок від інших елементів.
Рисунок 3.6 – Напої
На рисунку 3.7 наведено блок з полем виведення інформації та полем яке виводить інформацію про поле яке знаходится під ним.
Рисунок 3.7 – Елементи поза блоками
На рисунку 3.8 наведен приклад роботи інформаційно-довідкової системи з «вибор сорту вина для заданого набору блюд» .
Рисунок 3.8 – Приклад роботи інформаційно-довідкової системи
-
Опис роботи системи
Головна сторонка інтелектуальної інформаційної системи, що проходить стадію розробки, моють знаходиться загальний перелік доступних сортів вина.
Дана інтелектуальна система має наступні переваги:
- простий інтерфейс;
- велика кількість параметрів для підбору;
- великий товарний асортимент;
- інтуїтивно зрозумілий принцип роботи системи.
Користувач має можливість пошуку товару через параметри моделей, такі як:
- Перше блюдо;
- Друге блюдо;
-Гарнір;
-Дисерт;
-Напої.
-
Тестування та експлуатація
Тестування систем - є важливий етап виробництва ПЗ, спрямований на детальне дослідження програмного коду та виявлення помилок у роботі систем. Системне тестування тестує інтегровану систему для перевірки відповідності всім вимогам. Перевірка повноти та правильності документації користувача є важливою частиною системного тестування. Всі тестові комбінації повинні розроблятися тільки з використанням документації користувача. Однією з головних цілей тестування є перевірка відповідності працездатності інформаційної системи в цілому або її окремих модулів очікуванням користувача.
Тестування включає в себе наступні етапи:
- Функціональне тестування (Functional Testing). Включає в себе перевірку функціональності інформаційної системи, коректності виконання завдань. Цей вид випробувань проводиться на етапі розробки. У програмній архітектурі виділяються підсистеми, кожна з яких проходить компонентне та інтеграційне тестування. Мета функціонального тестування – виявлення невідповідностей між реальною поведінкою реалізованих функцій і очікуваною поведінкою відповідно до специфікації і вимог. Функціональні тести повинні охоплювати всі реалізовані функції з урахуванням найбільш ймовірних типів помилок. Тестові сценарії, що поєднують окремі тести, орієнтовані на перевірку якості розв'язку функціональних задач.
- Тестування продуктивності (performance testing). Мета цього випробування - в програмній інженерії – це тестування, яке проводиться з ціллю визначення, як швидко працює програма або її частина під деяким навантаженням. Тестування продуктивності намагається враховувати продуктивність на стадії.
- Тестування на етапі підготовки до експлуатації. Тестування програмного забезпечення — процес перевірки відповідності заявлених до продукту вимог і реально реалізованої функціональності, який здійснюють шляхом спостереження за його роботою в штучно створених ситуаціях і на обмеженому наборі тестів, обраних певним чином.
Можуть оцінювати:
-
відповідність вимогам, якими керувалися проектувальники та розробники,
-
правильність відповіді для всіх можливих вхідних даних,
-
виконання функцій за прийнятний час,
-
практичність,
-
сумісність із програмним забезпеченням та операційними системами,
-
відповідність задачам замовника.
- Модульне тестування на етапах супроводу. це метод тестування програмного забезпечення, який полягає в окремому тестуванні кожного модуля коду програми. Модулем називають найменшу частину програми, яка може бути протестованою. У процедурному програмуванні модулем вважають окрему функцію або процедуру. В об'єктно-орієнтованому програмуванні — метод. Тестування проводиться в процесі експлуатації інформаційної системи, практично не впливає на роботу користувачів і вимагає значно меншого часу в порівнянні з комплексним випробуванням.
В процесі тестування системи були виявлені наступні результати:
- сторінки системи відповідають макету на всіх пристроях;
- контент відображається коректно;
- обробники подій працюють коректно;
- оформлення системи працює без помилок;
- система працює з БД без помилок;
- процес підбору працює коректно.
ВИСНОВКИ
Було про аналізовано предметну область, а саме дана загальна характеристики сортів вина, розкрите поняття та перелічені основні характеристики. Також був проведеній огляд інтелектуальних інформаційних систем, виявлені особливості та відмінності. Класифіковано інтелектуальні інформаційні системи, виявлено що є доволі багато класифікацій інтелектуальних інформаційних систем також виділяють знанню-орієнтовані інтелектуальні системи. Був розроблений макет користувальницького інтерфейсу системи за допомогою бібліотеки Python для створення програм із графічним інтерфейсом за допомогою інструментарію Qt, Сьогодні використовуються дві основні версії: PyQt5 на основі Qt5 та PyQt6 на основі Qt6. Обидві майже повністю сумісні, за винятком імпорту та відсутності підтримки деяких сучасних модулів з Qt6. Був описаний користувацький інтерфейс системи, а саме те яким чином створювались об'єкти у вікні, за допомогою яких команд та якого коду вони виконують свою роботу, також описана взаємодія та взяття інформації від користувача та вивід цієї інформації у вікні, та дублюванні її у вигляді текстового документу який створюеться у директорії в якої і розташовується інтелектуальна інформаційна система. Було проведено декілько етапів тестування створеної інтелектуальної системи. Система на відмінно пройшла усі етапи тестування, помилок при роботі не було виявлено. Розроблена інтелектуальна інформаційна система повністю відповідає вимогам, які були задані у завданні данного курсового проекту.
СПИСОК ЛІТЕРАТУРИ
-
Тема 1. Введение в информационные системы [Електронний ресурс] / - режим доступу: https://samara.mgpu.ru/
dzhadzha/dis/15/120.html
РЕФЕРAТ 1
ВСТУП 4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 6
1.1Огляд інтелектуальних інформаційних систем 6
1.2Класифікація інтелектуальних інформаційних систем 9
2 АНАЛІТИЧНИЙ РОЗДІЛ 12
2.1 Розробка технічного завдання системи 12
2.2 Проектування структури експертної системи 13
2.3 Обґрунтування вибору мови програмування 15
3 ПРОЕКТУВАННЯ СИСТЕМИ 21
3.1 Обґрунтування бази даних системи 21
3.2Розробка макету користувальницького інтерфейсу системи 24
3.3Опис роботи системи 27
3.4Тестування та експлуатація 28
ВИСНОВКИ 31
СПИСОК ЛІТЕРАТУРИ 32
-
Огляд інтелектуальних інформаційних систем
Знати і розуміти принципи поєднання вин і страв, до яких вони подаються.
Визначити основні харакетристики їжі та вина; визначити домінанти.
Оцінити «інтенсивність» страви, щоб знайти потрібний «еквівалент» серед вин. Інтенсивність вина має «врівноважити» інтенсивність страви.
Визначитися з ключовою парою смаків, щодо якої ви будете вибудовувати зв'язок між вином і стравою (наприклад, солодкий+солоний, жирний+кислий, солодкий+кислий тощо)
Поекспериментуйте зі сполученнями, де вина та їжа схожі/несхожі один на одного.
солоний,
кислий,
солодкий,
гіркий,
жирний
та пікантний (насичений спеціями).
кислий смак,
солодкий смак і
гіркий (таніни) смак.
Вина, у яких переважає гіркий смак (таніни). Як правило, це червоні вина;
Вина, у яких переважає кислий смак. Сюди належить переважна більшість сухих білих, рожевих та ігристих вин.
Вина, у яких переважає солодкий смак. У цій групі – всі солодкі та десертні вина.
солоний,
кислий,
солодкий,
гіркий,
жирний
та пікантний (насичений спеціями).
-
Класифікація інтелектуальних інформаційних систем
системи перебору варіантів рішень згідно встановленої пріоритетності для наперед змодельованих ситуацій;
ІС, які приймають рішення за детермінованими вирішальними правилами без навчання;
інтелектуальні системи, що реалізують алгоритми компараторного розпізнавання за еталонами;
експертні системи, що з метою прийняття ефективних рішень маніпулюють спеціальними знаннями
накопиченими фахівцями експертами у конкретній предметній сфері знань;
інтелектуальні системи, що здатні самонавчатися;
знання-орієнтовані ІС, що здатні утворювати та використовувати базу знань.
поле в таблиці, що називається зовнішнім ключем, може містити посилання на стовпці в інших таблицях, що дозволяє їх з'єднувати;
високоорганізована структура і гнучкість робить реляційні БД сильними і адаптованими до різних типів даних;
для доступу до даних використовується мова структурованих запитів (SQL);
надійний вибір для багатьох програм.
-
Розробка макету користувальницького інтерфейсу системи
-
Опис роботи системи
-
Тестування та експлуатація
відповідність вимогам, якими керувалися проектувальники та розробники,
правильність відповіді для всіх можливих вхідних даних,
виконання функцій за прийнятний час,
практичність,
сумісність із програмним забезпеченням та операційними системами,
відповідність задачам замовника.
Тема 1. Введение в информационные системы [Електронний ресурс] / - режим доступу: https://samara.mgpu.ru/
Денісова О.О. Інформаційні системи і технології в юридичній діяльності: навч. посібник / О.О. Денісова; - К.: КНЕУ, 2003. - 315 с.
Експерт [Електронний ресурс] / - режим доступу: https://uk.wikipedia.org/wiki/Експерт
Таврійський державний агротехнологічний університет імені Дмитра Моторного [Електронний ресурс] / - режим доступу: https://uk.wikipedia.org/wiki/Таврійський_державний_агротехнологічний_університет_імені_Дмитра_Моторного
Університет [Електронний ресурс] / - режим доступу: http://www.tsatu.edu.ua/pro-universytet/
Положення про кафедру [Електронний ресурс] / - режим доступу: http://www.tsatu.edu.ua/kn/wp-content/uploads/sites/16/polozhennja-pro-kafedru-kn.pdf
Программа по выбору языка программирования [Електронний ресурс] / - режим доступу: https://www.bibliofond.ru/view.aspx?id=551425#text
Розробка прототипу експертної системи з вибору оптимальної мови програмування [Електронний ресурс] / - режим доступу: https://otherreferats.allbest.ru/programming/00678024_0.html#text
Искусственный интеллект (ИИ) [Електронний ресурс] / - режим доступу: https://www.tadviser.ru/index.php/Продукт:Искусственный_интеллект_
Левин Р. Практическое введение в технологию искусственного интеллекта и экспертных систем с иллюстрациями на Бейсике / Р. Левин - М.: Финансы и статистика, 1990. - 238 с.
Т. А. Гаврилова, Базы знаний интеллектуальных систем / Т. А. Гаврилова, В. Ф. Хорошевский. - Питер: 2000. - 384 с.
Экспертные системы [Електронний ресурс] / - режим доступу: http://www.mari-el.ru/mmlab/home/AI/7_8/.
ISO/IEC 22989:2022 Information technology — Artificial intelligence — Artificial intelligence concepts and terminology [Електронний ресурс] / - режим доступу: https://www.iso.org/ru/standard/74296.html
Попов Э.В. Искусственный интеллект. Справочник. Книга 1. Системы общения и экспертные системы. - М.:Радио и Связь, 1990. - 464 с.
Що таке база даних [Електронний ресурс] / - режим доступу: https://hostiq.ua/wiki/ukr/database/
SQLite — замечательная встраиваемая БД (часть 1) [Електронний ресурс] / - режим доступу: https://habr.com/ru/post/149356/
SQLite – Обзор [Електронний ресурс] / - режим доступу: https://coderlessons.com/tutorials/bazy-dannykh/vyuchit-sqlite/sqlite-obzor
Основные принципы и правила разработки графического пользовательского интерфейса [Електронний ресурс] / - режим доступу: https://cyberleninka.ru/article/n/osnovnye-printsipy-i-pravila-razrabotki-graficheskogo-polzovatelskogo-interfeysa
Представление знаний [Електронний ресурс] / - режим доступу: https://neerc.ifmo.ru/wiki/index.php?title=Представление_знаний
Представления знаний в интеллектуальных системах, экспертные системы [Електронний ресурс] / - режим доступу: https://habr.com/ru/post/346236/
Червоне напівсолодке – Грузія