Лекції з інформатики
В блоці «інтерпретатор запитів й докладне пояснення результатів» призначений для функціонування системи як експлуатації під час роботи з кінцевим користувачем. Інтерпретатор запитів формує звернення користувачів до системи, а блок пояснення результатів коментує увесь перебіг формування рішення на системі. За теорією ЕС обидві ці блоку повинен мати розвинені кошти спілкування з користувачем мовою… Читати ще >
Лекції з інформатики (реферат, курсова, диплом, контрольна)
ИИ — це науково-дослідне напрям створюють моделі й формує відповідні програмні кошти, що дозволяють з допомогою ЕОМ виконувати завдання творчого, не обчислювального характеру, які у процесі рішення вимагають звернення до семантикою (проблемі сенсу). Дослідження у сфері ІІ проводять у протягом 30 лет.
Началом робіт у галузі ІІ вважають створення ЕОМ, яка б імітувати процес людського мислення. Розробка Розенблата. Машина-персептрон мала два виду нейтронів, які утворювали нейтронну сеь.
Исследования у сфері ІІ розділилися на два подхода:
1)Конекционистский.
2)Символьный Начало робіт у (2) вважають розробки університету Корнеги Меллона, саме два програмних комплекса:
а)логик-теорик;
б)общий решатель задач.
В кінці 60-х змінилася методологія вирішення завдань ІІ, тобто. замість моделювання способів мислення людини почалася розробка програм спроможних вирішувати людські завдання, але базі Ефективних машинно-ориентированных методов.
Исследовательским полігоном цього періоду з’явилися головоломки і з гри. Це замкнутістю простору пошуку прийняття рішень та можливістю моделювання дуже складної стратегії пошуку рішення. У той самий час робляться спроби перенести ІІ зі штучної середовища на реальну. Виникає проблема моделювання зовнішнього світу. Це спричинило появі інтегральних роботів, які мали виконувати певні операції в технологічними процесами, працювати у небезпечні людини середовищах. З появою роботів приділяють значну увагу реалізації функції формування дій, сприйняття ними інформації про зовнішнього середовища. Поява роботів вважають другим етапом досліджень, у ИИ.
В початку 70-х акценти в ІІ змістилися створення людино-машинних систем, дозволяють комплексно з урахуванням евристичних методів виробляти рішення на рамках конкретних предметних областей з урахуванням символьного підходу. У цей час почали розвиватися бурхливими темпами експертні системи (ЕС). ЕС — дозволяє виявляти, нагромаджувати борги і коригувати знання з різних галузей на основі цих знань формувати рішення, які вважають, а то й оптимальними, досить ефективними у певних ситуациях.
ЭС використовують знання групи експертів у межах певної предметної області. Як експертів використовуються конкретні фахівці, які можна недостатньо обізнаний із ЕОМ. Нині у загальному обсягу частка ЕС становить до 90%. Якщо проранжировать області застосування за кількістю створених образцов:
Медична діагностика, навчання, консультування. Проектування ЕС. Надання допомоги користувачам у вирішенні завдань у різних сферах. Автоматичне програмування. Перевірка і аналіз якості ПО. Проектування надвеликих інтегральних схем. Технічна діагностика, і вироблення рекомендацій про ремонт устаткування. Планування у різних предметних областях і аналіз даних, зокрема на основі статистичних методів. Інтерпретація геологічних даних, і вироблення рекомендацій з виявлення з корисними копалинами.Первые зразки ЕС займали по трудомісткості розробки 20−30 человеко/лет. У колектив розробників входили: експерти предметної області, інженери за знаннями чи проектувальники ЕС, програмісти. У проектуванні ЕС є суттєва відмінність від проектування традиційних інформаційних систем. Це тим, що у ЕС використовується поняття «знання», а традиційної системі - «дані». У ЕС відсутня поняття жорсткого алгоритму, а різноманітні дії задаються як правил, що є эвристиками, тобто. емпіричними правилами чи спрощеннями. У процесі роботи системи виробляється побудова динамічного плану виконання завдання з допомогою спеціального апарату логічного висновку понятий.
С появою ЕС з’явилася нова наукову дисципліну — інженерія знань, що займається дослідженнями у сфері уявлення та формалізації знань, їх опрацювання і використання у ЕС. Нині під термін ЕС потрапляє дуже великі коло систем, які можна зарахувати до ЕС лише з що використовуються моделям і методам проектування. Тому робиться спроба суворішої класифікації систем ІІ символьного направления.
В час при широке використання символьного підходу посилилося увагу для використання нейтронних мереж. Це тим, що запропоновані досить потужні моделі нейтронних мереж, і алгоритми їх навчання (метод зворотного поширення ошибок).
Нейтронные мережі використовують у медичної діагностиці, управлінні літаком, податкових і поштових службах США.
Одной із цього успіху нейтронних мереж стала спільне вироблення компанії Intel і корпорації Nestor мікросхеми з архітектурою нейтронних сетей.
Тенденции розвитку засобів обчислювальної техники:
Розвиток обчислювальної бази: паралельні, нейтронні і оптичні технології, які спроможні до роздільного уявленню інформації, паралельної її обробки, навчання і самоорганізації. Розвиток теоретичної підстави інформаційної обробки заснований на понятті ‘Softlogic', підтримуючий як логічний, і інтуїтивний висновок понять. Розробка для реальних додатків системи когнетивных функцій, як-от мова, звукові ефекти, когнетивная графіку й т.п. ЕС як різновид систем ІІ. Структура ЕС. Визначення знань та фінансової бази знань (БЗ). Визначення понять логічного висновку. Організація інтерфейсу з користувачем в ЕС. 1. Структура ЕС. 2. Визначення знань та фінансової бази знань (БЗ).Основним елементом БЗ є знання про предметної області, у якій повинна функціонувати ЭС.
Знание — це сукупність відомостей, їхнім виокремленням цілісне опис відповідне певному рівню поінформованості про описуваної проблеме.
Основное відмінність знань від даних у цьому, що ці описують лише конкретна стан об'єктів чи групи об'єктів в цей час часу, а знання крім даних містять дані про те як оперувати цими данными.
В БЗ ЕС знання повинні прагнути бути обов’язково структуровані й описані термінами одній з моделі знань. Вибір моделі знань — це найскладніший питання на проектуванні ЕС, оскільки формальне опис знань істотно впливає на кінцеві характеристики й поліпшуючи властивості ЭС.
В однієї БЗ все знання повинні прагнути бути однорідний описані і простими розуміння. Однорідність описи диктується тим, у межах ЕС слід розробити єдина процедура логічного висновку, яка маніпулює знаннями з урахуванням стандартних типових підходів. Простота розуміння визначається необхідністю постійних контактів із експертами предметної області, які мають достатніми знаннями у комп’ютерній технике.
Знания поділяються з погляду семантики на факти і що евристики. Факти зазвичай свідчить про усталені у межах предметної області обставини, а евристики грунтуються на інтуїції і надзвичайно досвіді експертів предметної области.
По ступеня узагальненості описи знання поділяються на:
Поверхневі - описують сукупності причиннослідчих відносин між окремими поняттями предметної області. Глибинні - відносять абстракції, аналогії, зразки, які відбивають глибину розуміння всіх процесів які у предметної області.Введение
до бази глибинних уявлень дозволяє: зробити систему гнучкішою і адаптивної, оскільки глибинні знання результат узагальнення проектувальником чи експертом первинних примітивних понятий.
По ступеня відображення явищ знання поділяються на:
Жорсткі - дозволяють отримати однозначні чіткі рекомендації при завданні початкових умов. М’які - допускають множинні розпливчасті рішення і різноманітні рекомендації.Тенденции розвитку ЭС.
М, Ж — м’які, жорсткі знания.
П, Г — поверхневі, глибинні знания.
медицина, управління психодіагностика, планування діагностика несправностей різного виду проектування різних видів пристроївОбычно під час проектування БЗ проектувальник намагається користуватися стандартної моделлю знань (МЗ):
продукционная модель знань (системи продукції) логічна МОЗ фреймова МОЗ реляційна МОЗПо формі описи знання поділяються на:
Декларативні (факти) — це знання виду «А А». Процедурні - це знання виду «Якщо Бо У».Декларативные знання поділяються на об'єкти, класи об'єктів і отношения.
Объект — це факт, який задається своїм значением.
Класс об'єктів — це, під яким об'єднується конкретна сукупність объектов-фактов.
Отношения — визначають зв’язок між класами об'єктів й окремими об'єктами, які виникли у рамках предметної области.
К процедурним знань відносять сукупності правил, які показують, як вивести нові відмінні риси класів чи добросусідські відносини для об'єктів. У правилах використовують усі види декларативних знань, і навіть логічні зв’язки. Після обробітку правил треба сказати рекурсивность аналізу відносин, тобто. одне правило викликає глибинний пошук всіх можливих варіантів об'єктів БЗ.
Граница між декларативними і процедурними знаннями дуже рухається, тобто. проектувальник може описати один і той само як ставлення чи зазвичай.
Во всі види моделей виділено ще одна частка знань — метазнания, тобто. знання про даних. Метазнания можуть ставити засоби використання знань, властивості знань тощо., тобто. усе, що необхідне управління логічним висновком навчанням ЭС.
3. Визначення понять логічного висновку.Аппарат логічного висновку призначений на формування новопонять, тобто. рішень на певної предметної області. Зазвичай логічний висновок тісно пов’язані з конкретної моделлю знань і оперує термінологією цієї моделі. Є кілька загальних понять всім МЗ:
стратегія виведення управляюча структураВ ЕС застосовується стратегія виведення як прямий і зворотної ланцюжків міркування. Пряма стратегія веде від фактів до гіпотезам, а зворотна намагається знайти дані як доказ чи спростування гипотезы.
В сучасних ЕС застосовуються комбіновані стратегії, котрі з одних етапах використовують пряму, але в інших зворотний ланцюжка рассуждения.
Управляющая структура — це спосіб застосування чи активізації правив у процесі формування рішень. Керуюча структура залежить від обраної проектувальником модели.
Например, для продукционной моделі найчастіше використовуються такі управляючі структуры:
послідовний перебір правил одне підмножина правил застосовується для вибору чергового правилаНезависимо від форми керуючої структури у процесі пошуку рішень на деяких точках пошуку виникла потреба вибору наступного напрями пошуку. Використовується два метода:
«спочатку всередину» «спочатку вшир»Важной проблемою, що потребує обов’язкового рішення на рамках апарату логічного висновку, є підтвердження чи оцінка достовірності формованих системою часткових чи загальних рішень. Складність у тому, що ЕС зазвичай, працюють із нечіткими, часто невизначеними поняттями, що їх суворо оцінені плюс чітку форму выражения.
Термин «нечіткість» в ЕС недостатньо визначено верб інженерії знань використовується така класифікація нечеткости:
недетерминированность виведення багатозначності ненадійність знань неповнота неточність Під недетерминированностью виведення мається на увазі можливість формування плану виконання завдання з певних правил методом спроб і помилок, з поверненнями за необхідності для побудови інших, ефективніших планів. З метою прискорення пошуку ефективного плану до системи вводять оціночні функції різного вид, і навіть евристичні значення експертів. Багатозначності інтерпретації знань у процесі вироблення рішень усувається через включення до системи ширшого контексту і семантичних обмежень.Метод семантичних обмежень називається методом релаксації. Суть у тому, що з допомогою циклічних операцій застосовуються локальні обмеження, які погоджуються між собою на верхньому уровне.
Ненадійність. Для усунення ненадійності знань, яка частенько використовують у ЕС, використовуються методи засновані на нечіткою логіці: розрахунок коефіцієнтів впевненості, метод Байєса тощо. Нечітка логіка — різновид безупинної логіки, у якій логічні формули можуть приймати відвідувачів значення як 0 чи 1, але й дробные значення між 0 і одну для вказівки часткової істини. Найбільш слабке місце у нечіткою логіці - це реалізація функції приналежності, тобто. присвоювання передумов вагових значень експертами (залежить від конкретної людини).Якщо tx і ty значення істинності передумов правил x і y, тоді під час використання логічних зв’язок «і/або» справжнє значення передумови визначається наступним образом:
— під час «і» — tпредпосылки =min{tx, ty}.
— під час зв’язку «чи» — tпредпосылки =max{tx, ty}.
Якщо загальному разі tправила є справжнє значення, приписувану правилу, тоді tправила определяется:
tправила =min{tпредпосылки, tдействия}.
Методи нечіткою логики:
Коефіцієнт впевненості - це відмінність між двома заходами: мірою довіри й мірою недоверия.
КУ[h:e]=МД[h:e]-МНД[h:e].
КУ[h:e] - коефіцієнт впевненості у гіпотезі h з урахуванням свідчень e, МД/МНД — міра довіри / недовіри.
Коефіцієнт впевненості може приймати значення від -1 (абсолютна брехня) до +1 (абсолютна істина), і навіть все проміжні значення з-поміж них. У цьому 0 означає повне незнання. Значення заходи довіри й заходи недовіри можуть змінюватися від 0 до 1.
Основна хиба: дуже важко відрізнити випадок суперечливих свідчень від нагоди недостатньою інформації.
У основі методу Байєса лежить оцінка конкуруючих гіпотез. Основна розрахункова формула:
ОП[h:e]=Р[h:e]/Р[h':e].
ОП — ставлення правдоподібності, що визначається як ймовірність події чи свідоцтва e за умови заданої гіпотези h, ділене на ймовірність цього свідоцтва за умови помилковості даної гіпотези h.
4. Неповні знання притаманні реального світу і припускають наявність безлічі винятків та для конкретних висловлювань, які приймаються до уваги, з здоровим глуздом.
В ЕС передбачається роботу з неповними знаннями. При проектуванні БЗ до бази вносяться лише вірні знання, а невизначені знання вважаються невірними — гіпотеза закритого мира.
5 — Неточність виведення є у ЕС і пов’язана з тим, що у світі система працює із нечіткими множинами, для усунення неточності використовується теорія нечітких множеств.
4. Організація інтерфейсу з користувачем в ЕС.В блоці «інтерпретатор запитів й докладне пояснення результатів» призначений для функціонування системи як експлуатації під час роботи з кінцевим користувачем. Інтерпретатор запитів формує звернення користувачів до системи, а блок пояснення результатів коментує увесь перебіг формування рішення на системі. За теорією ЕС обидві ці блоку повинен мати розвинені кошти спілкування з користувачем мовою, максимально наближеному до природного. Нині цілий напрям займається питаннями створення інтерфейсу природному мові. Інтерпретатор запитів виробляє редагування звернення користувача і формує його основі завдання системі. У інтерпретаторі мають бути передбачені кошти усунення невизначеності запитів, і навіть виробляються синтаксичний і семантичний аналіз запиту. Невизначеність породжується, зазвичай, некомпетентністю користувача. У окремих випадках об'єктивну оцінку цілого ряду чинників, що описують конкретну ситуацію, то, можливо об'єктивно неможлива. У інтерпретаторі запитів передбачається система що уточнюють запитань до користувачеві, і навіть розробляється спеціальний апарат, дозволяє з урахуванням аналізу контексту запиту призначити відсутні значення показників за умовчанням. У запиті користувача використовується, зазвичай, декларативні знання, які обов’язково контролюються як у семантичному, і на синтаксичному рівні. Інтерпретатор перетворює декларативні знання запитів у ті формализмы, які використовуються у моделі БЗ. Чим простіше користувачеві звертатися до системи природному мові, то складніше інтерпретатор запросов.
В блоці пояснення має бути передбачено повне текстове пояснення з допомогою когнетивных функцій всього ходу виконання завдання, і навіть опис стратегії поведінки системи на складних етапах вироблення решений.
Блок навчання функціонує як актуалізації БЗ на етапі її проектування й експлуатації і взаємодіє зі експертами предметної області. Його основне завдання — це формалізація знань отримані від експерта відповідно до обраної проектувальником моделлю знань. У цьому вся блоці об'єднуються функції інтерпретатора запитів та економічного блоку пояснення. Блок пояснення повинен реалізувати спілкування з експертом природному языке.
Продукционная модель (ЛМ) знань та її застосування в ЕС. Представление знань. Особливості організації логічного висновку. Організація пошуку рішень на прості і складні ЕС. Приклади використання ЛМ. 1. Уявлення знань.ПМ або системи продукції використовують із уявлення знань два понятия:
«объект-атрибут-значение» «правило продукції»С допомогою (1) описуються декларативні знання на базі. Це уявлення дозволяє для формування БЗ впорядкувати опис об'єктів, дотримуючись певну їх ієрархію. Якщо до таких упорядкованим об'єктах у процесі логічного висновку застосовувати правила, можна організувати звернення окремо об'єкта, окремо до атрибута і окремо до значению.
Правило продукції є засіб описи процедурних знань у вигляді MG->MD.
MG описує певну ситуації у предметної області.
MD описує собою одну дію чи соволкупность дій, які потрібно виконати разі виявлення відповідної ситуації у предметної области Применеие кожного поточного правила змінює ситуацію на обьекте, тому у наступному циклі перевірити весь набір правил, доки зустрінеться умова зупинки. І ліва і права частина правила будується з урахуванням знань у вигляді «объект-атрибут-значение» або як складних конструкцій, побудованих з їхньої базе.
Продукционные системи використовують модульний принцип організації знань (цим вони відрізняються традиційних систем, т.к. ті використовують модульний принцип організації алгоритмов) В продукционных моделях передбачається повна незалежність правил друг від друга, тобто. одному рівні ієрархії одне правило, не може викликати другое.
Продукционные моделі мають високим рівнем модифицируемости значень, дають можливість чітко відокремити метазнания від предметних знань, що дозволяє навіть врамках однієї системи використовувати різні стратегії вывода.
2. Особливості організації логічного висновку.Механизм чи апарат логічного висновку продукционной моделі грунтується на принципі розпізнавання образів. Цей механізм називають интерпретатором, который циклічно виконує 4 послідовних етапу (вибірку, зіставлення, вирішення конфлікту, дію чи його совокупность) На кожному з вище перерахованих етапів інтерпретатор працює із БЗ, робочої пам’яттю, пам’яттю станів интерпретатора.
Схема одного циклу роботи інтерпретатора следующая:
На етапі вибірки виробляється активізація тієї частини даних, і знань, виходячи з яких може бути реалізовано запит пользователя.
Активизация знань виготовляють основі закладених у системі стратегії виведення. Найчастіше цьому етапі використовується операції заміни, додавання, видалення, з допомогою яких поповнюються переліки активних знань і змінюється порядок активізації обьектов.
На етапі зіставлення, обраний попередньому етапі безліч активних правил Рv наводиться у відповідність обраному безлічі елементів робочої пам’яті Fv й конфліктний набір правил, тобто. правил з Рv та об'єктивності даних з Fv, де ці правила определены.
Конфликтный набір — впорядковані послідовності Рv і Fv, що називається означивание.
Этап зіставлення вимагає проведення значних операцій, т.к. для конфліктного набору слід перевірити всі умови правил усім поєднаннях активних елементів робочої памяти.
В ході владнання конфлікту інтерпретатор вибирає одне чи кілька означиваний, кіт. д.б. виконані поточному циклі. Система будується в такий спосіб, що у цьому етапі передбачається обов’язкова її реакція зміну оточуючої Середовища, і навіть предусм. можливість здобути нові значень у випадках, коли з’являються нові аспекти оточуючої Середовища. У результаті владнання конфлікту виникає потреба координації дій кількох правил, кіт. з визначення д.б. незалежні. Залежно від обраної моделі знань, вирішення конфлікту м.б. використані такі управляючі структурыиначе порядок вибору правил:
1-я управляюча структура — упорядкування правил.
2-я управляюча структура — управляюча структура спеціальних случаев.
3-я управляюча структура — віку элемента.
4-я управляюча структура — відмінностей (подобия).
5-я управляюча структура — випадкові стратегии.
(1) — використовують у ролі критерію вибору означиваний пріоритети чи оцінки, кіт. приписують відповідним правилам. І тут вводиться поняття пам’яті правила.
Оценочный показник вибирається довільно, найчастіше виходячи з таких критеріїв :
1 — динамічний пріоритет правила залежно з його внеску до досягнення целей.
2 — динамічний пріоритет залежно від важливості використовуваних фактов.
(2) — ісп. критерієм зарание певного відносини двох правил, таке що й перше правило є спеціальним випадком, воно вважається предпочтительным.
(3) — ісп. критерієм часу перебування елемента у робочої пам’яті. Зазвичай вік визначається кількістю циклів роботи инт-ра чи числом дій, кіт. виконувалися після створення элемента.
(4) — ісп. критерієм відмінності чи подоби означиваний з поточного набору тим означиваниям, кіт. були у межах цикла.
(5) — явл. небажаної, до них доводиться вдаватися у його случаях, когда після застосування інших стратегій немає вибору ниодного правила. До (5) можна вважати і вичерпний перебір правил. Він припустимо у невеликих за величиною БЗ у його случаях, когда необхідно проаналізувати всіх можливих висновків, і комбинаций.
На етапі виконання дій здійснюється зміна робочої пам’яті через проведення операції введення і перетворення поточних елементів. Аналізуючи цей етап використовується операція виведення в організацію діалог із користувачем. Аналізуючи цей етап виробляється перевірка: чи поточний стан робочої пам’яті цільовим, тобто. кінцевим. Якщо ні, то процес виведення триває, починаючи з етапу выборки.
В продукционных системах можна виділити два підходу, ісп. при виведення рішень:
1 — безвозвратный.
2 — пробный В (1) обраний для обраний виспівати правило використовується необоротно, тобто. без можливості подальшого перегляду. У (2) уживане до конкретної історичної ситуації правило також виконується, але передбачає можливість повернутися до цій ситуації, щоб застосувати інше правило. І тому режиму передбачається точка повернення і якби наступні етапи неможливо досягти результату, то управління передається до останньої точку возврата.
3. Організація пошуку рішень на прості і складні ЕС.Процедури пошуку рашений залежить від особливостей предметної області й вимог, кіт. предьявляют користувачі до цих рішенням. Особливості предметної області м.б. описані такими параметрами:
1 — розмір предметної области.
2 — змінюваність предметної області у часі ипространстве.
3 — повнота моделі, описів предметної области.
4 — визначеність даних про розв’язуваної задаче Требования користувача у системі може описыв. следующ. параметрами:
1 — у необхідних рішень (одне уживане, кілька, або всі допустимые).
2 — обмеження на результат і його получения.
Описанные з помощбю зазначених пар в ЕС подраздел-ся на прості (мала статична предметна область, повнота і визначеність даних) складні. Для прості і складні ЕС повинні использ-ся різні процедури пошуку решений.
Процедуры пошуку рішення значно різняться друг від друга в прості і складні ЕС. Для простих ЕС найчастіше використовують пошук у просторі станів: метод редукції, евристичний поиск.
Метод пошук у просторі станів можна описати так: нехай задана трійка (S0,F, SТ), где.
S0— безліч початкових станів системи (запрос).
F— безліч операторів, які відбивають одні стану в другие.
ST— безліч кінцевих цільових станів системы Обработать завдання (запит) — визначити таку послідовність операторів, кіт. дозволить преобразовазовать початкова стан системи в кінцеве. Процес рішення представляється як графа.
сигма=(x, y), где.
x=(x0,x1…xТ) безліч нескінченних вершин графа, кожна з яких пов’язана із певними состояниями.
y — безліч пар (xi, xj), тотожність. множ. X.
Если кожне подружжя (Xi;Xj) не впорядкована, що його називають руба графа, а граф неориентированным.
Если кожної пари (Xi;Xj) заданий порядок, що його називають дугою, а граф ориентированным.
Наиболее часто метод використовується для орієнтованого графа.
В цьому випадку вирішення завдання є шлях на орієнтованому графі, де пари (Xij-1;Xij) належать Y, який наводить з початкового стану до цільовому. Насправді дугам графа приписують вагові характеристики, які відбивають їх пріоритетність у процесі опрацювання запиту. І тут вибір шляху зводиться до мінімізації чи максимізації суми вагових характеристик дуг, їхнім виокремленням цей нелегкий шлях. Отже граф j задає простір можливих станів предметної області. Побудова простору здійснюється з допомогою наступній процедури: береться деяка вершина з багатьох початкових станів і до неї застосовуються всіх можливих оператори, які породжують дочірні вершини. Цей процес відбувається інакше називається «розкриттям вершин». Він триває до того часу, поки що не знайдено вершина, відповідна одного з цільових состояний.
Поиск може здійснюватися або у глибину, або у ширину. Під час пошуку завглибшки початкова вершина отримує значення 0, а глибина кожній такій вершини дорівнює 1 плюс значення глибини найближчої батьківської вершини. Під час пошуку завширшки вершини розкриваються у тому порядку, як і народжуються. Якщо просторі станів запровадити оператори, що переводять поточні стану попередніми, то пошук можна робити у прямому, а й у зворотному направлении.
Метод II — редукция.
При пошуку методом редукції вирішення завдання зводиться до вирішення їхнім виокремленням її подзадач. Процес повторюється кожної наступній подзадачи до того часу, поки що не знайдено очевидне рішення для усією їхньою сукупності. Процес розбивки завдань на подзадачи представляється як орієнтованого графа j, що називається «и/или-граф». Кожна вершина «и/или-графа» є завдання чи подзадачу і то, можливо конъюнктивной («и"-вершиной) чи диз’юнктивної («или"-вершиной). Конъюнктивные вершини разом із дочірніми вершинами інтерпретуються так: вирішення завдання зводиться до вирішення всіх його подзадач, відповідних дочірнім вершин конъюнктивной вершины.
Дизъюнктивные вершини можна інтерпретувати так: вирішення завдання зводиться до вирішення «з його подзадач, відповідних дочірнім вершин диз’юнктивної вершини. Пошук на «и/или-графе» зводиться до пошуку вирішального графа для «початковій вершины.
С метою скорочення часу пошуку рішень використовуються евристичні методи поиска.
В основі евристичних методів закладено інформацію про специфіці предметної області, що дозволяє скоротити перебір вершин задля досягнення мети. З цією групи методів характерно, що у кожної вершині використовується евристична інформація, яка перед розкриттям вершини дозволяє визначити рівень її перспективності для реалізації певного запиту. Оцінка перспективності визначається з урахуванням обраної проектувальником оцінної функції, у якій задаються різноманітних семантичні ограничения.
Метод «генерация-проверка» дозволяє у процесі пошуку просторі станів чи подзадач генерувати чергове можливе рішення і відразу перевірити, чи воно кінцевим. Генератор рішень мусить бути дуже повним, тобто. забезпечувати отримання всіх можливих прийняття рішень та до того ж час ненадлишковим, тобто. генерувати одне правильне рішення лише одне раз. Перевірка чергових сгенерированных рішень виготовляють основі евристичних знань, закладених генератор. Збільшення кількості цих знань призводить до зменшення простору пошуку рішень, але водночас вдвічі збільшує видатки на генерацію кожного решения.
Для складних ЕС застосовуються процедури пошуку, призначених для роботи з тими видами складності, властивих системі. Тільки для ЕС з великим розміром простору пошуку доцільно розбивка його за підпростору іншого рівня ієрархії. У цьому можуть виділятися підпростору, описують конкретні групи явищ предметної області, і навіть абстрактні простору для описи будь-яких сутностей. Для останнього випадку характерно використання неповних описів, котрим у просторі нижчого рівня наведено певна конкретизация.
К методам пошуку, реалізованою на вимогу користувача повного складу рішень на рамках великого простору станів, відносять пошук в факторизованном просторі. Факторизованным простором називають простір, що можна розбити на непересічні підпростору частковими неповними рішеннями. Тут використовується метод «ієрархічна генерация-проверка». Генератор визначає поточне часткове рішення, потім перевіряється, чи може призвести це рішення до успіху. Якщо поточне рішення відхиляється, те з розгляду без генерації та усуваються всі даного класса.
И т.д. (дуже багато методов).
4. Приклади використання ЛМ.MYCIN — система для діагностику і лікування інфекційних заболеваний.
Был розроблений скелетний мову, інакше — оболонка ЕС. Декларативні знання системи MYCIN описуються як «объект-атрибут-значение» і «кожної трійці приписується коефіцієнт впевненості, визначальний ступінь надійності знань. Процедурні знання описані у вигляді класичного правила продукції. Механізм логічного висновку грунтується на зворотної ланцюжку міркувань. Пошук виробляється у ієрархічно упорядкованому просторі состояний.
В системі EMYCIN (оболонка) посилено предметної області відношення до MYCIN функція редагування БЗ, доведено до високого рівня система пояснення ходу виконання завдання, і навіть апарат навчання системи. Написаний на ФОРТРАНе.
OPS-5. Універсальний мову інженерії знань, готовий до розробки ЕС, які у комерційних додатках. Розробник — університет Корнеги-Меллон. Декларативні знання на системі описані у вигляді «объект-атрибут-значение». Процедурні знання описані у вигляді класичних правил продукції. У механізмі логічного висновку використовується стратегія прямий ланцюжка міркувань, реалізується метод застосування однієї й тієї ж правила у різних контекстах; на формування конфлікту набору та ліквідації конфлікту використовуються спеціальні методи {RETELEX}, що дозволяють домогтися високої ефективності з допомогою керуючої структури, де перевагу надають правилам із посиланням останній сгенерированный елемент «объект-атрибут-значение».
Методологія побудови ЕС.1. Підхід до ЭС.
2. Зміст етапів проектирования.
3. Практичні аспекти розроблення та впровадження ЭС.
1. Підхід до ЕС.Проектирование ЕС має суттєва відмінність від проектування традиційних інформаційних систем через те, що постановка завдань, розв’язуваних експертної системою може уточнюватися впродовж усього циклу проектування. У результаті виникає потреба модифікувати принципи і знаходять способи побудови бази знань і апарата лгического виведення під час проектування тоді, як збільшується обсяг знань розробників про предметної области.
В силу відзначених особливостей під час проектування ЭС-м застосовується концепція «швидкого прототипу». Її суть: розробники прагнуть відразу побудувати цілковитий продукт. На початковому етапі знають створюється прототип, к-рый повинен відповідати двом условиям:
1) він має вирішувати типові завдання предметної области;
2) з іншого боку трудомісткість його розробки має бути дуже незначительной.
Для задоволення цих умов під час створення прототипу використовуються інструментальні кошти, дозволяють прискорити процес програмування ЕС (кісткові мови, оболонки ЕС). Що стосується успіху прототип має бути розширено додатковими знаннями з предметної області. При невдачі може знадобитися розробка нового прототипу чи проектувальники можуть дійти висновку про непридатність методів искуственного інтелекту для даного приложения.
По збільшення знання предметної області прототип може сягнути такої міри, що він успішно вирішує все необхідні завдання у рамках предметної області. І тут потрібно перетворення прототипу в кінцевий продукт шляхом його перепрограмування мовами «низького рівня», що забезпечить збільшення швидкодії та ефективності програмного продукта.
Кол-во розробників ЕС повинно бути менше 4 чол., з к-рых 1 явл-ся експертом ПО, 2 — інженери за знаннями чи проектувальники ЕС, 1 — програміст, здійснює модифікацію й узгодження інструментальних средств.
В подальшому, у процесі перетворення прототипу в кінцевий продукт, склад програмістів може бути увеличен.
2. Основні етапи розробки ЕС.1. Идентификация.
2. Концептуализация.
3. Формализация.
4. Выполнение.
6. Тестирование.
a. Переформулирование.
b. Переконструирование.
c. Усовершенствование.
d. Завершение В склад функцій етапу 1 входит:
1) визначення команди проектувальників, їхній ролі, і навіть форми взаимоотоношений;
2) визначення цілей розробок та ресурсов;
3) опис загальних характеристик проблеми, вхідних даних, гаданого виду рішення, ключових понять і отношений.
Типичные ресурси цього етапу: джерела знань, час розробки, обчислювальні ресурси, обсяг финансирования.
На етапі 2 експерт і инжинер за знаннями формалізують ключові поняття, стосунки держави й характеристики, які виявлено попередньому етапі. Цей етап призвн вирішити такі вопросы:
определить типи даних, виведені поняття, використовувані стратегії і гіпотези, види взаємозв'язків між об'єктами, типи обмежень, накладених процес розв’язування завдання, склад знань, що використовуються вироблення і обгрунтування решений.
Опыт показує, що з успішного вирішення питань цього етапу доцільно складати протокол діянь П. Лазаренка та міркувань експертів у процесі проектування. Такий протокол забезпечує інженера за знаннями словником термінів та сот водночас змушує експерта осмислено ставитися до своїх словам.
На цьому етапі непотрібен домагатися повної визначеності і коректності всіх висновків, а слід намітити лише основні типові напрямки вирішення проблемы.
На етапі 3 виробляється опис всіх ключових понять і стосунків на формальному мові. Інженер за знаннями виробляє аналіз інструментальних систем яких і визначає їх придатність конкретної докладання. Виходом цього етапу є формальне опис всього процесу рішення жадачи лише на рівні декларативних і процедурних знань. Інженер за знаннями визначає структуру простору пошуку рішень, вибирає і обгрунтовує модель знань, визначає склад метазнаний, які потім можна покласти в механізм логічного висновку. Працюючи зі знаннями вивчається ступінь їх достовірності, узгодженість і надмірність, реалізується функція приналежності різних оціночних показників (наприклад, коефіцієнтів впевненості), і навіть закладається певна інтерпретація знань у формальних структурах.
Этап 4 залежить від розробці однієї чи кількох прототипів. Цей етап виконується програмістом й у наповненні бази знань інструментальної системи конкретними знаннями, і навіть програмуванні окремих компонент системи. Звичайна помилка програміста у тому, що наповнення бази знань реальними знаннями відкладається до закінчення програмування. Якщо база знань заповнюється початку розробки прототипу, це дозволяє своєчасно уточнити структуру знань і швидко змінити програмні компоненты.
Первый прототип має бути готовим вже 2 місяці. Працюючи з нею програміст доводить, що обрані структури та методи придатні для даного докладання і може бути, у подальшому розширено. Заодно він не піклується про ефективність машинної реалізації. Після закінчення першого прототипу коло завдань розширюється й цій основі формується наступний прототип. Після досягнення досить ефективного функціонування ЕС з урахуванням прототипів, вдосконалюються структури декларативних і процедурних знань, і навіть процедури логічного висновку. Основна труднощі у тому, що часто-густо у системі є громіздкі правила чи схожі правил. Неправильно обрані управляючі стратегії, у яких порядок вибору і політичного аналізу понять істотно відрізняється від технології експерта. Аналізуючи цей етап дуже важливо присвячувати експерта у всі проблеми, пов’язані із отриманням рішень, і уважно проводити аналіз думки експерта вади системы.
Этап 5 оцінює придатність ЕС для кінцевого користувача. У цьому розробники намагаються привернути якнайбільше користувачів різної кваліфікації, які можуть опинитися звертатися до системи для реалізації різноманітних запитів. А, ніж дискредитувати систему у власних очах користувача, розробники які були етапом повинні усунути всі помилки у роботі системи, незначні технічні помилки. Користувач аналізує систему з погляду корисності (можливість системи під час діалогу визначити потреби користувача, виявити і усунути причини його невдач у роботі) і зручності (настраиваемость до рівня кваліфікації користувача, і навіть опірність ошибкам).
По результатам 5-го етапу може знадобитися як модифікація програмного забезпечення, а й ідеології розробки интерфейса.
Этап 6. Покликаний здійснювати оцінку системи загалом. Тут необхідно особливу увагу приділити добору тестових прикладів. Вони мають відбитися такі случаи:
не так сформулированныые питання користувача; присутність невизначеності у питаннях користувача; доступність для користувача лексики системи; доступність для користувача пояснень, які видає система; проиворечивость і неповнота правил; узгодження контекстів дії правил.По результатам 6-го етапу здійснюється модифікація системи. Найпростішим її виглядом явл-ся вдосконалення прототипів. Цей вид стосується лише етапи 4 і 6.
Более серйозним виглядом модифікації явл-ся переконструирование уявлень. Цей вид модифікації необхідний у разі, якщо можна знайти, що бажане поведінка системи що немає. Передбачається повернення на етап формалізації і далі здійснюється весь цикл проектування. Якщо проблеми функціонування системи ще більше серьёзны, то доводиться повертатися на етапи 2 і одну для переформулювання вимог до системи і основних понятий.
3. Практичні аспекти розробки і впровадження ЕС.В відповідність до результатами тестування ЕС може бути одній із наступних стадий:
1) демонстраційний прототип (вирішує тільки п’яту частину завдань у межах ПО, демонструючи правильність обраного апарату логічного висновку). Термін доведення системи до стадії - близько 3-х міс., у правив у базі знань — 50−100.
2) дослідницький прототип (вирішує завдання у межах ПО, на недостатньо стійка у роботі, в повному обсязі перевірено). Термін доведення — 1−2 року, у правил — 200−500.
3) діючий прототип (вирішує стабільно завдання у межах ПО, але цього замало ефективна у роботі, зокрема нераціональне використання пам’яті, невисока швидкодія). 2−3 р., 500−1000.
4) промислова система (обеспчивает роботу і високу якість рішень, містить порівняно з стадією 3 набагато більше правив у базі знань, програмне забезпечення проти 3) переказано Білоконеве мовою низького рівня). 2−4 р., 1000−1500.
5) комерційна система (передбачає узагальнення завдань, ухиляння від специфіки ПО, призначається на продаж іншим споживачам. Розвинена по сравнинию із чотирьох) система редагування знань, інтерфейсу з конкретною користувачем, навчання). 3−6 років, 1000−3000.
В процесі проектування ЕС треба враховувати той негативний досвід, нагромадженого розробниками з кожної стадії проектирования.
На етапі 1 може бути, що систему чи завдання настільки важка, що її не можна реалізовувати рамках выдеенной проектувальником системи ресурсів (час, гроші й т. буд.). Проектувальники повинні здійснювати дуже уважно підійти стосовно питання про, зможе вирішення завдання принести істотну користь, для пресонала, який її експлуатує. Слід враховувати, що з скорочення часу проектування не можна розширювати склад проектувальників, оскільки процес проектування ітеративний і категорії проектувальників що неспроможні протягом короткого терміну осмислити все етапи проектирования.
Традиционной помилкою етапу 3 явл-ся припасування інструментального кошти під поняття і взаємозв'язку конкретної ПО.
Нельзя погоджуватися розробки прототипу на програмування відразу ж потрапляє мовами низького рівня, т. е. без використання інструментальної системы.
На всіх стадіях проектування інженер за знаннями працює із експертом і навіть постає цілий ряд труднощів, які заздалегідь треба учитывать:
експерти завжди мали бути зацікавленими висококваліфікованими, його потрібно зацікавлювати матеріально; експерт будь-коли може знайти час працювати з інженером за знаннями; у системі неодмінно повинна використовуватися той самий термінологія, як і в експертів ПО; лише цього разі експерт може успішно розуміти структуру бази знань і вносити у неї зміни; з часом експерт втрачає інтерес нині проектом системи та постійно скорочує час з проектувальником. Для усунення цього проектувальник вносить зміни у систему лише разом із експертом, тестує також разом із; експерт незнайомий, зазвичай, з комп’ютером, тому РС встановлюється з його робочому місці й доопрацювання системи виробляється там-таки; при добуванні знань експерта проектувальнику дуже важко відокремити знання ПЗ від метазнаний, тому роботу з експертом має відбуватися за всіх цих питаннях загалом, а, по суворо спланованим інженером за знаннями порціям.На етапі 4 розробки прототипу слід прагнути не розробляти самостійно кошти пояснення, а використовувати ті, що є у інструментальної системе.
При розробці першого прототипу необхідно прагне, щоб у базу знань потрапили прості універсальні правил і скорочувати кількість специфічних правил.
На етапі 6 треба враховувати, що й розмір правил перевищує 300, їх виправлення і додавання можуть призвести до появи нових помилок, а тому має існувати спеціальний тест, який перевіряє систему на несуперечність правил.
Особливості реалізації експертних систем з урахуванням логічного моделі знань.1. Поняття логічного моделі знаний.
2. Характеристика мови предикатів першого порядку. Особливості уявлення знаний.
3. Апарат логічного вывода.
4. Особливості машинної реалізації мови предикатів першого порядка.
1. Поняття логічного моделі знань.В основі лот. моделі знань лежить поняття формальної теорії та відносини, що існують між одиницями знань можна описувати лише за допомогою синтаксичних правил, допустимих у межах теории.
Формальная теорія задається завжди четвіркою символів P. S=, де.
В — кінцеве безліч базових символів, інакше — алфавіт теорії S;
F — підмножина висловів теорії P. S, званих формулами теорії. Зазвичай є ефективна процедура, що дає сукупність правил, дозволяють з елементів безлічі У будувати синтаксично правильні выражения.
А — виділений безліч правил, званих аксіомами теорії, т. е. безліч апріорно істинних формул.
R — кінцеве безліч відносин { r1, r2, …, rn } між формулами, званими правилами виведення. Для будь-якого ri існує цілий позитивне число j, таке, що кожного безлічі, що складається з j формул, для кожної формули F ефективно вирішується питання, містяться ці j-формулы щодо ri з формулою F. Якщо ri виконується, то F називають безпосереднім наслідком F-формул за правилом ri.
Следствием (висновком) формули теоретично P. S називається така послідовність правил, що з кожного з них представлена формула явл-ся або аксіомою теорії P. S, або безпосереднім следствием.
Правила виведення, що розробляються проектувальниками, позволдяют розширити безліч формул, які явл-ся аксіомами теории.
Формальная теорія зв. можливо розв’язати, якщо є ефективна процедура, дозволяє дізнатися для будь-якої заданої формули, може бути її висновок теоретично S.
Формальная теорія P. S зв. Непротиаворечивой, а то й існує такий формули Хіба й О, і А виведені у цій теории.
Наиболее поширеної формальної теорією, яка у системах искуственного інтелекту явл-ся літочислення предикатів, тобто функцій, яких можуть прибирати лише 2 значения.
К гідностям логічного моделі относят:
— наявність стандартної типовий процедури логічного висновку (докази теорем). Але такий однаковість тягне у себе основний недолік моделі - складність використання їх у процесі логічного висновку эвристик, що відбивають специфіку ПО.
К іншим недоліків логічного моделі относят:
— «монотонность»;
— «комбинаторный взрыв»;
— слабкість структурованості описаний.
2. Характеристика мови предикатів першого порядку. Особливості уявлення знань.В основі мови предикатів першого порядку лежить поняття предикатів, тобто логічна функція від одній або кількох нелогических пременных. Функція може приймати значення істина (t) чи нахабна брехня (f). У межах логіки твердження вважається істинним, як і що належить до нього припущення вважається істинним і висновок самого затвердження теж истина.
Синтаксис мови предикатів включає: предикативные символи, символи змінних, константи (?), і навіть роздільники (), [ ], «, ‘.
Предикативные символи йдуть на позначення відносин. Об'єкти відносин записуються в () після предикативного символу і наз-ся аргументами. Повна запис відносини наз-ся атомної чи атомарної формулой.
Атомарная формула:
Является (Іванов, спец.—поЭВМ) предикативный терм 1 терм 2.
символ Термы можуть представлятися констанатами і перемінними. Дозволено також як термов використовувати функції, к-рые обов’язково слід визначити у межах ПО. Проектувальник ЕС заранеее визначає, як інтерпретувати порядок термов щодо. Допустимі висловлювання на обчисленні предикатів, зокрема атомарні формули, наз-ся правильно побудованими функціями (ППФ). У мові предикатів кожної ППФ обов’язково визначається конкретна інтерпретація. Щойно для ППФ визначено інтерпретація, кажуть, що формула має значення «істина», якщо відповідне твердження ПО істинно, інакше ППФ має значення «ложь».
Из формул можна скласти речення з допомогою логічних зв’язок: й, диз’юнкція, імплікація, отрицание.
Конъюнкция () використовується для освіти складових фраз:
Учится (Іванов, эк.-университет) розташовується (эк.-университет, Київ).
ППФ, побудовані з допомогою зв’язки та, наз-ся просто конъюнкциями.
Дизъюнкция () реалізує функцію не виключає «или».
Находятся (Іванов, аудит.-147) І перебуває (Іванов, бібліотека).
ППФ, побудовані з допомогою зв’язки диз’юнкція, наз-ся дизъюнкциями.
Связка імплікація () використовується до подання затвердження типу «якщо, то».
Владеть (Іванов, машина-1) марка (машина-1, «BMW»).
ППФ, побудована шляхом сполуки формул з допомогою зв’язки імплікація, наз-ся импликацией.
Левая сторона імплікації наз-ся антецедент, права — конциквент. Імплікація має значення «істина», якщо антецедент і конциквент мають значення «істина», або антецедент має значення «брехня» незалежно від конциквента. У інших випадках імплікація має значення «ложь».
ППФ зі знаком заперечення (~) перед ній наз-ся отрицанием.
В мові предикатів атомна формула може приймати тільки істинні значення, лише хибні значення, соціальній та залежність від значень змінних, які у неї входять, або итсина, або брехня. А, щоб за обчисленні предикатів можна було маніпулювати значеннями змінних, знадобилося запровадити поняття «квантор».
Квантор — це операція, у якій беруть участь все значення перемінної одного предиката.
Квантор служить для вказівки заходи, як і екземпляри перемінної (?), тобто константи повинні прагнути бути істинними, щоб усе значення цілому були истинными.
Различают квантор спільності та квантор сущестовования. Якщо перед предикатом записано квантор для якийсь перемінної, напр. (x), це означатиме, що значення предиката буде істинним в тому разі, коли всі значення перемінної x будуть истинными.
(x) (специалист-по-ЭВМ (x) програміст).
Если перед предикатом записано квантор, напр. (x), то тут для істинності предиката досить, аби тільки некотрые значення перемінної, по крайнього заходу одне, були истинными.
(x) (специалист-по-ЭВМ (х) оптимист (х)).
В однієї предиката можна використовувати й кванторы спільності, і кванторы існування, але до різних переменных.
(x) (y) (службовець (x) керівник (y, х)).
Если некотрая змінна в ППФ проквантифицирована, вона називається пов’язаної. Інакше змінна називається вільної. Будь-яке вираз, яке виходить шляхом квантифицирования правильної формули, є й ППФ.
Предикатами першого порядку наз-ся предикати, у яких заборонена квантификация по предикатным чи функціональним символів, а можна квантифікувати лише переменные.
3. Апарат логічного висновку.В мові предикатів процедури логічного висновку виробляються над знаннями, представленими у внутрішній формі стосовно тим з описів, к-рые виконав проектувальник, відбиваючи специфіку ПО, т. про. проектувальник працює із зовнішньої формою уявлення знань, але процедуру логічного висновку — зі внутренней.
Перевод зовнішньої форми у внутрішнє виробляється у системах, що реалізують мову предикатів, автоматично з урахуванням таблиць істинності для обчислення окремих предикатів і логічних операцій, і навіть виходячи з цілого ряду еквівалентності (закони де Моргана, дистрибутивні закони, асоціативні закони). У процесі логічного висновку мови предикатів використовуються операції, к-рые застосовуються до існуючим ППФ з єдиною метою побудови нових ППФ.
«Modus ponens» — використовується до створення з ППФ виду, А ППФ виду У.
(А У).? («турнікет») інтерпретується як «следовательно».
Операция спеціалізації. Суть — дозволяє довести, що й деякому класу об'єктів властиво к.-л. властивість, будь-який об'єкт даного класу володітиме цією властивістю. Всім об'єктів класу ісп. властивість А, следовательно.
x) W (x), A L*W (A) (?).
Операция — уніфікація. Использ-ся для док-ва теорії, містять квантиоризированные формули викликають відповідність певні подвыражения форми шляхом перебування подстановок.
Операция резолюція. Використовується для породження нових припущень. У основі методу резолюції лежить спростування гіпотези і доказ, що це не так. У процесі реалізації методу використовується операція винятку висловлювання, коли ці висловлювання на даных припущеннях заперечуються, а вдругих — немає. Врезультате докази якщо спростування брехливо, формується порожня резольвента.
Для застосування резолюції ППФ слід перевести в клаузальную форму шляхом спрощення, та був представлено у вигляді дизьюнкции. Процес перетворення зводиться до следующ. основним этапам:
1 — виняток символів імплікації з формул і її області дії символу отрицания.
2 — поділ змінних, тобто. заміна однієї пов’язаної квантором перемінної, кіт. є у вираженні кілька разів — різними іменами.
3 — виняток кванторів існування шляхом їх заміни функціями, аргументами яких є перемінні, пов’язані квантором спільності, область дії кіт. включає область дії виключеного квантора существования.
4 — перетворення припущень в префиксную форму, тобто. в ППФ іншого кванторів існування. Кожен квантор спільності має власну зміну, тому всі кванторы спільності можна перемістити на початок ППФ і слід вважати, що область дії кожного квантора включає всю ППФ.
5 — приведення матриці до коньюнктивной нормальної формі, тобто. коньюнкции кінцевого безлічі дизьюнкций.
6 — виняток кванторів спільності. Це можна, т.к. все перемінні, решта цьому етапі ставляться до квантору общности.
7 — виняток символів коньюнкции. Через війну матриця залишається лише у вигляді дизьюнкций, з яких можливо проведення операцій резлюции.
4. Особливості машинної реалізації мови предикатів першого порядку.Машинная реалізація мови предиката першого порядку має низку серйозні проблеми, пов’язані з універсальністю апарату логічного висновку. 1-ша проблема — монотонність міркувань (у процесі логічного висновку не можна відмовитися від проміжного укладання, якщо стають відомими додаткові факти, які свідчать, що отримане з урахуванням цього висновку рішення не призводять до бажаному результату. 2-га проблема — комбинаторный вибух (у процесі логічного висновку неможливо застосовувати оціночні критерії для вибору чергового правила. Безсистемное застосування правив у рассчете на випадкове доказ призводить до того, що виникає багато зайвих ланцюжків ППФ, активних в момент часу. Це найчастіше призводить до переповненню робочої памяти.
В процесі досліджень з відшуканню ефективних процедур машинної реалізації мови предиката намітилося 2 основних подхода (кон. 60-х гг.):
1 — Відкидається принцип універсальності мови предиката і виробляється пошук конкретних процедур, ефективних для конкретної предметної області. І тут в БЗ вводилися великі знання предметної області. Найтиповіший представник — LISP.
2 — розвивався у межах традиційної логіки й направили зберегти універсальності, властивої мовипредикату шляхом розробки ефективних процедур логічного висновку універсальних за своїм характером, але дозволяють нейтралізувати монотонність і комбинаторный взрыв.
Наиболее ефективної розробкою цього підходу явл. мову PROLOG. У ньому прийнята зворотна стратегія виведення. Повністю буде реалізовано всі кошти описи знань языка-предиката, зокрема. і кванторами для породження нових висловлювань використовується операція резолюции. В ролі процедури пошуку рішення, що дозволяє усунути монотонність і комбинаторный вибух використовують пошук в ієрархічно упорядкованому просторі состояний.
PROLOG. Реалізація на ПЕОМ1. Интегрировання Середовище мови Turbo Prolog.
2. Структура программы.
3. Стандартні типи доменов.
4. Прототипи предиката.
5. Твердження й цели.
6. Арифметичні выражения.
7. Вбудовані прдикаты языка.
1. Интегрировання Середовище мови Turbo Prolog.Функционирование Т.Р. вимагає наявність наступних стандартних каталогов:
кореневої Prolog, у якому мають перебуває такі файли: prolog. exe prolog.ovl до створення exe файла prolog. r тексти повідомлення помилки prolog. hlp файл допомоги prolog. sys конфігурація середовища prolog. lib бібліотеки prolog. obj вспомагательный файл до створення пользов-их exe файлів підкаталог PRO для користувальних вихідних файлів (розширення .pro) підкаталог OBJ для користувальних обьктных і prg файлів підкаталог EXE для зберігання користувальних exe файлів підкаталог DOS для команд ОС у разі, якщо передбачається їх використання з користувальних програм. (min command.com) 2. Структура програми на TURBO PROLOG1.Domains.
2.predicates.
3.clauses.
1 Для визначення типів доменів чи даних, які у программе.
2 опис прототипів користувальних предикатов.
3 «затвердження» включає опис фактів вигляді предикатів і керував, тобто. декларативних і процедурних знаний.
4 містить мета вирішення завдань, за його відсутності система затребувана мета виконання завдання з вікна діалогу й в этом-же вікні отримуємо відповідь, за його присутності у ньому поміщаємо користувальницький интерфейс.
Место для печатания.
-35—36—37-readint ().
(integer): (0) — читає ціла кількість, читання закінчується натисканням.
readreal ().
(real): (0) — вещ.
readchar ().
(char): (0) — читає одиничний символ.
readln () (string): (0) — читає рядок символов.
inkey () (char): (0) — закінчується істиною, коли після попередньої операції була натиснута клавіша, повертається її код. Не була натиснута, то предикат закінчується неудачей.
nl — код двох клавіш — перехід нові строку.
write (x1, x2, …).
(переменные і константи): (і, і, …) — видає поточний пристрій записи констант і змістом переменных.
writef (, x1, x2, …).
(string,): (і, і, …).
Структура формата:
" % - m. pw «, де % - ознака форматного вывода если заданий «-», то знаки повинні вирівнюватися із лівого краю, а то й заданий — по правому.
m — довжина поля вывода.
p — у цифр після точки.
w — тип числа, замість w записується f, якщо виводиться число в десятковому вигляді, e — в экспотенциальной формі, q — у самому короткому формате.
Предикаты роботи з символьними данными.
str_lon (,).
(string, integer): (і, і) (і, 0).
если поставлено (і, і), перевіряється довжина рядки, якщо (і, 0) — повертається довжина строки Преобразование типов Все предикатні перетворення діють у обидві сторони. Випадок (і, і) перевіряє істинність всім типів, крім real. Перетворення між типами string, symbol і real, integer пр-ся (?) автоматически.
char_int (,).
(сhar, integer): (і, 0) (0, і) (і, i).
str_char (,).
(string, сhar): (і, 0) (0, і) (і, i).
str_int (,).
(string, real): (і, 0) (0, i).
и т. д.
Работа з командами операційній системы Необходимым передумовою роботи з предикатами цієї групи є наявність підкаталогу DOS, у якому був записаний мінімум command.com.
system ().
(string): (і) — передає команду OS.
date (, ,).
(integer, integer, integer): (і, і, і) (0, 0, 0) — встановлює, якщо (і, і, і), чи повертає, якщо (0, 0, 0) системну дату.
time … — то же.
dir (, ,).
(string, string, string): (і, і, 0) — видаються на екран специфіковані файли з каталогу маршрутом. Можливо вибрати з каталогу ім'я одного файла з допомогою стрілок управління курсором, при натисканні ім'я цього файла присвоюється третьому аргументу предиката.
Спеціальні предикати мови Turbo Prologbouncl () — «істина, якщо змінна є конкретизированной.
free () — «істина, якщо змінна перестав бути конкретизированной.
fail — завжди ложн. викликає повернення для перевірки бази на правилах.
! — (cat) — предикат відсікання, обмежує возврат.
exit — зупиняє виконання користувальницької програми розвитку й передає управління меню Turbo Prolog.
trace — загальне включення режиму налагодження. Вказується на початку вихідної программы.
trace ().
(symbol): (і) (0) — встановлює, якщо і, чи повертає, якщо 0, поточний режим налагодження. Як статусу можна використовувати on/off. Використання цього предиката припускає наявність trace на початку программы.
diagnostics — дозволяє видати аналіз програми у процесі компіляції. Аналіз включає імена використовуваних предикатів. До кожного імені визначається, чи є аргументи конкретного предиката фактами чи вказується конкретність предиката.
nowarnings — відключає попередження у процесі компиляции.
project «ім'я файла» — ця програма є частиною проекта.
include «ім'я файла» — в компіляцію включається файл із зазначеним именем.
Управління ходом виконання програм мовою ТР.1. Рекурсия.
2. Повернення і отсечение.
1. Рекурсія.В механізм обробки програм мовою ТР закладено рекурсія, тобто обчислення значення функції з допомогою тієї ж функції, але з зміненими параметрами. Рекурсія в ТР реалізується у 2 этапа:
1) вихідна завдання розбивається більш дрібні приватні завдання й формуються приватні рішення на основі яких потім отримають спільне рішення задачи.
Процесс розбивки завдання на подзадачи наз-ся редукцією. Редукція спливає тому випадку, якщо сформована подзадача, яка може бути розв’язана непосредственно.
2) складання рішення, починаючи з самого (?) останнього до самого загальному. Для використання рекурсії програми необхідно використовувати наступний формат правила рекурсии:
if.
(1).
(2).
(3).
(4).
(5).
В структурі правила компоненти (1), (3), (5) можуть бути присутні чи відсутні з огляду на специфіку розв’язуваної завдання. Компоненти (2), (4) обов’язкові, оскільки вони організують апарат активізації правила рекурсії. Зазвичай компонента (1) — це предикати, які впливають на рекурсию. Компонента (3) містить предикати, з допомогою яких є формування нового значення аргументів, що у рекурсії, а (5) включає предикати, які формують з допомогою апарату рекурсії шукані значення. (5) — складання рішення. (2) — використовується для зупинки рекурсії, а (4) — реалізує виклик рекурсивного правила нових значень аргументу. Залежно від заданих граничних умов розрізняють спадну і що ведеться рекурсию.
Пример.
Определение n-го терма послідовності 1, 1, 2, 6, 24, …
N 0 1 2 3 4 …
0 терм=1 3 терм=2*3.
1 терм=1*1 4 терм=6*4.
2 терм=1*2 5 терм=24*5.
Для позначення той факт, що енну кількість член послідовності дорівнює V, вводиться предикат наступного виду: posl (N, V).
Фрагмент программы:
domains.
N, V = integer.
predicates.
posl = (N, V).
clauses.
posl (0, 1).
posl (N, V) if.
1) N>0.
2) M=N-1.
3) posl (M, U).
4) V=U*N.
goal.
posl (3, x).
Решение завдання виробляється у 2 этапа:
I этап.
1. Виробляється спроба задовольнити запит користувача, використовуючи перше твердження розділ clauses (posl (3,x) зіставляється із posl (0, 1)). Оскільки 0 не зіставляється із 3, то спроба завершується невдачею. Після цього posl (3, x) зіставляється із заголовком 2-го затвердження posl (N, V). Звідси N отримує значення 3, а V пов’язують із x і системи переходить до доведенню подцели у тілі правила:
1) N>0 узгоджується при N1=3.
2) M1=N1−3 узгоджується при N1=3 і M1=2.
3) posl (2, U1) наводить до другого рекурсивному зверненню й, оскільки звернення не узгоджується з першим, то останнє твердження (V=U*N) откладывается.
2. Узгодження posl (2, U1) з posl (0, 1) призводить до невдачі. Відбувається порівняння з заголовком 2-го затвердження, що закінчується удачею, у своїй N2=2 і V=U1. відбувається доказ по мети цього утверждения:
1) узгоджується при N2=2.
2) узгоджується при N2=2 і М2=1.
3) posl (1, U2) призводить до повторному рекурсивному обращению.
4) откладывается.
3. Узгодження posl (1, U2) з posl (0, 1) призводить до невдачі. Зіставлення з заголовком 2-го затвердження закінчується невдачею, при N3=1 і V=U2. Відбувається доказ по мети цього утверждения:
1) узгоджується при N3=1.
2) узгоджується при N3=1 і М3=0.
3) posl (0, N3) призводить до повторному рекурсивному обращению.
Полученное цільове твердження зіставляється із першим цільовим твердженням posl (0, 1), у своїй U3 отримує заначение 1.
На цьому етап розбивки заканчивается.
II. Етап складання решения.
Производится спроба узгодження останнього з відкладених цільових тверджень, якщо вдається, то виробляється узгодження передостаннього цільового затвердження, й дуже впритул до першого з відкладених, тобто запроса.
1) U2=U3*1, оскільки U3=1 то U2=1.
2) U1=U2*2 U1=2.
3) X=U1*3 X=6.
2. Повернення і відсікання.В процесі реалізації запиту інтерпретатора мови необхідно аналізувати чимало фактів і керував, к-рые беруться у процесі кількох переглядів відповідних баз фактів. Причому у процесі одного перегляду формується часткове рішення. Процес в PROLOGе виконується автоматично шляхом позначки чи заповнення тих модулів, к-рые аналізувалися перед поточної метою, про те, аби внеможливити отримане приватне рішення з дальнейнего розгляду. Цей механізм в PROLOGе наз-ся поверненням й реалізується через використання стандартного предиката fail, к-рый має значення «брехня». Цей предикат змушує інтерпретатор проаналізувати вкотре базу фактів, аби виконати більш цільове твердження й інших значень змінних. Він дає змогу отримати у базі всіх можливих решения.
ПРИМЕР:
domains.
p, T=symbo L.
predicat s.
like (P, T).
poleg (T).
dauses.
like («Іванов»," пиво").
like («Іванов»," сок").
poleg («cok»)…
otv if.
like (P, T) and.
poleg (T), nl,.
write (P),.
fail.
goal.
otv.
Для управління процесом виконання програм, у PROLOG є вмонтований предикей cut, кіт. кодується в turbo-PROLOG як !. Основне призначення — зупинка процесу повернення, тобто. припинення вироблення подальших решений.
Этот процес у Пролозі зв. ВІДСІКАННЯМ. Найчастіше предикей cut використовується що з fail.
ПРИМЕР.
…
goal.
like (P, T).
T= «кефир»,.
nl,.
write («любитель кефіру найден»).
!.
fail.
Отсечение використовується усунення нескінченних циклів (див. перед. пример):
clauses.
posl (0,1) if !
posl (N, V) if.
M=N-1.
posl (M, U).
V=U*N.
Отсечение також використовується для устр. взаємовиключних утверждений.
ПРИМЕР.
ball (M,'A") if M> so,!
ball (M, «B») if M< so an M>60,!.
ТЕМА: АГРЕГАТИ ФАКТІВ1.Списки.
2.Динамическая база фактов.
3.Структуры.
1. Списки.Якщо пр-ме необхідно організувати зі змінними чи заздалегідь невизначеним кількістю об'єктів, то испол. списки.
СПИСОК — упорядкована послідовність эл-в одного типу невизначеною довжини, кіт м. складатися з 0 і більше эл-в.
Константы, хто у список, записуються в [ ] і відокремлюються друг від друга комами.
Исходя з визначення списку, два списку, сост. з одних тієї ж.
эл-в, але розміщених у різному порядку вважаються різними. У розділі domains эл-ты списку обяз-но д.б. порівняно з певним типом домену (Sp=integer*).
Список в domains м.б. опосредствован через ім'я перемінної, эл-ты кіт. збираються в список.
domains.
k_fms = string, kol = integer,.
Sp = kol*.
predicates.
fms (k_fms, kd, …).
Списки складаються з заголовка (початку списку) і захоплення (закінчення списку). До заголовку стосується лише 1-ї эл-т списку, інше — хвост.
Список із нульовим кількістю эл-в окреслюється порожній список, не має ні заголовка ні хвоста.
Для роботи з списками у мові є низка вбудованих предикатов.
MEMO (,) — де м.б. заданий або ім'ям Sp, або безпосередньо константами, які входять у цей список.
Предикат визначає приналежність эл-та до списку.
I — розподіл списку на голову і хвіст [ Head I Tail] чи [H I T].
H — чи перемінної для позначення заголовка.
T — — «— хвоста ПРИМЕР.
domains.
list=char*.
predicates.
test (List).
clouses.
test ([‘A', ‘B', ‘З', ‘D']).
goal.
test ([H/T]),.
nl,.
write (H).
APPEND ([ эл-ты старого списку ],[ эл-ты нового списку ],< ім'я нового списку >).
— з 2-х списків, й нового, створюють III список.
REVERS ([ эл-ты старий. списку], < ім'я нового списку >).
— змінює послідовність эл-в на противоположную.
FINDALL (< ім'я перемінної >,< формат предиката >,< ім'я списку >).
ПРИМЕР.
domains.
post = string.
Kol, Cena, Sum = integer.
Sp = integer* (Sp = Kol*).
Kod = string.
predicates.
tmc (P, Kol, Cena).
sum (Sp, Sum).
goal.
write («Запровадьте код»),.
readln (Kod),.
nl,.
findall (Kol, tmc (Pos1, Kod, Kol, Cena), Sp),.
sum (Sp, Sum),.
write («Кількість =», Sum).
clauses.
tmc («001», «001», 45, 80).
…
sum ([ ], 0).
sum ([ H/T ], Sum) if.
sum (T, Sum1).
Sum = H + Sum1.
В мові є можливість роботи з динамічної базою фактів, у якій м. об'єднуватися як однорідні, і різнорідні предикаты-факторы.
База фактів — щось середнє у реляційної СУБД і масивом. У час активізації все факти бази переносяться в ОЗУ із зовнішнього зап. устрою. Робота з БД створюється новий розподіл програми, в кіт. визначаються прототипи предикатов-фактов, объедененных в базу.
DATABASE.
прототипы у цьому підрозділі описуються за тими самими правилам, що у predicates.
Раздел database записується перед розділом predicates і предикати, кіт. у ньому описуються що неспроможні описуватися розділ predicates, а ис-ся в розділах clouses і goal. Активізація бази в галузі ОЗУ, кіт. за умовчанням має тип домену dbasedom. Цей тип програміст не вказує явно у програмі розділ domains, але м. його використовувати як аргументів вбудованих предикатів мови, що дозволяє скоротити текст програми під час роботи з базой.
domains.
dbasedom = tms (Post, Kod, Kol, Cena).
…
database.
…
tmc (Post, Kod, Kol, Cena).
Возможно доповнення бази новими фактами, видалення застарілих, коригування окремих фактів. Усі операції у базі фактів виробляються з допомогою стандартних вбудованих предикатов:
asserta.
(< факт >) (dbasedom): (i).
assertz.
— використовується для додавання нового факту до бази. Факт д.б. обов’язково визначено і належить до області dbasedom. З використанням предиката asserta факт додається над іншими фактами наявного предиката.
assertz — додавання після — «—.
retraсt (< факт>)(dbasedom): (і) — видалення з БД першого факту, кіт. зіставляється із зазначених у retraсt фактом. Можливо видалення групи. Причому у факті вказується загальне видалення фактів значення, але в місці решти змінних записуються ті перемінні, кіт. нема на цьому предикате.
SAVE (< ім'я файла >) — скорочує все факти дин. бази з ОЗУ на магн. диск під именем.
string: (і) заданим в предикаті save/.
CONSULT (< ім'я файла >) — додає в опер. дин. базу все факти з файла на диску сstring: (i)указанным именем.
2. Прийоми роботи з динамічної базою фактів.1.Перезапись фактів із розділу clouses до бази на МД.
domains.
Post, Kod = string.
Kol, Cena = integer.
database.
tmc (Post, Kod, Kol, Cena).
predicates.
perezap.
dauses.
tmc («001», «001», 45,80).
…
perzap if.
save («data»).
gocel.
perezap.
2. Створення бази на процесі диалога.
domains.
Post, Kod = string.
Kol, Cena = integer.
Pc = integer&&признак закінчення ввода.
database.
tmc (Post, Kod, Kol, Cena)&&база створюється первоначально.
predicates.
vvod.
clouses.
vvod if.
write («Запровадьте код поставщика»),.
nl,.
readln (post),.
nl,.
write («Запровадьте код ТМЦ»),.
nl,.
readln (Kod),.
nl, write («Запровадьте у ТМЦ»),.
nl,.
readint (Kol),.
write («Запровадьте цену»),.
nl,.
readint (Cena),.
assertz (tmc (Post, Kod, Kol, Cena)),.
write («Запровадьте ознака продовження s/0»),.
pr=0,.
vvod.
goal.
vvod,.
save («data»).
3.Дополнение бази новими фактами.
…
goal.
consult («data»),.
vvod,.
save («data').
4.Активизация фактів з файла на диск.
domaines.
Post, Kod = string.
Kol, Cena = integer.
Sum, Sum1 = integer.
Sp = kol*.
database.
tmc (Post, Kod, Kol, Cena).
predicates.
sum (Sp, Sum).
clouses.
sum ([ ], 0).
sum ([ H/t ], Sum) if.
sum (T, Sum1),.
Sum= H + Sum1.
goal.
consult («data»),.
write («Запровадьте код ТМЦ»),.
nl,.
readln (Kod),.
sum (Sp, Sum),.
write (Sum).
5.Удаление конкретних фактів з БД.
domains.
Post, Kod = string.
Kol, Cena = integer.
database.
tmc (Post, Kod, Kol, Cena).
predicates.
udal.
clouses.
udal if.
write («Зазначте код поставщика»),.
nl,.
readln (Post),.
write («Зазначте код ТМЦ»),.
nl,.
readln (Kod),.
retract (tmc (Post, Kod, Kol, Cena)),.
goal.
consult (data),.
udal,.
save («data').
6.Удаление групи факторов.
dauses.
udal if.
write («Запровадьте код поставщика»),.
nl,.
readln (post),.
retract (tmc (Post, Kod, Kol, Cena)),.
…
С допомогою retract відбувається видалення дин. бази фактів з ОЗУ.
Корректировка вмісту факта.
Операции проихзводятся в 2-а этапа:
1— з допомогою retract осущ. видалення застарілого факти із базы.
2— assertz — додавання нового факту в базу.
3. Структури.СТР-РА — набір об'єктів, логічно пов’язаних між собою у процесі виконання завдання і об'єднаних під ім'ям. Стр-ра в П. використовується під час створення складної бази фактів і правил.
Если об'єкти стр-ры ставляться одного типу доменів. то стр-ра зв. однодоменной. Допускається исп-е доменів різного типу, у разі стр-ра зв. разнодоменной.
Исп-е стр-ры програми дозволяє впорядкувати базу, дозволяється звернення до стр-рам по имени.
ТЕМА: Організація роботи з файлами у системі «ТУРБО-ПРОЛОГ».1. Визначення файлов.
2. Порядок роботи з файлами користувача в программе.
3.Стандартные предикати обробки файлів і їх использования.
1. Визначення файлів.В П. використовуються традиційне й інших мов програмування визначення файла. Для вказівки порядку роботи з конкретними файлами в пр-ме, исп-ся символічне ім'я файла. У системі прийнято слід. станд. імена файлів, з кіт. м. працювати у програмах без предв. описания.
1.Входной з екрана дисплея keyboard.
2.Выходная форма на екран screen.
3.Вых. ф-ма на пристрій друку printer.
4. — «— на порт com1.
По вмовчанням наз-ся файли (1) і (2). Для перевизначення стандартних файлів і файлів користувача исп-ся станд. предикаты.
readdevice.
(< символьне ім'я файла>).
(file):(i).
writedevice.
ПРИМЕР.
readdevice (printer),.
write («Робота завершена»),.
readdevice (screen),.
…
Файлы користувача в П. м. являти собою як Д. і факти як предикатів, у своїй 1-ша запис файла буд. відповідати 1-му предикату-факту.
2. Порядок роботи з файлами користувача програми такі:1.Определение символьного імені файла.
2.Открытие відповідного виду доступа.
3.Определение чи перевизначення уст-ва, використовуваного в обробці файла.
4.Закрытие файла після обробки із можливим перевизначенням пристроїв ввода-вывода Для визначення символьного імені цього у П. використовується стандартний домен file, певний розділ domaines.
Символьное ім'я м. збігатися, а м. не збігатися з іменем Тараса Шевченка в ОС. Символьне ім'я діє також у межах тієї пр-мы, кіт. його описує. Залежно від порядку роботи з файлом, його відкриття м виконуватися лише з допомогою слід. стан. предикатов:
OPENWRITE (< цим. ім'я файла>, < ім'я файла в ОС>).
(file, string):(i, i).
— відкриває файл з указаным ім'ям для операції записи. Якщо це файл реально існує під указаным його ім'ям на середовищі ОС, він уничтожается.
OPENREAD (< цим. ім'я файла >,< ім'я файла в ОС >).
(file, string):(i, i).
— відкриває файл з указаным ім'ям для чтения.
OPENAPPEND ()(file, string):(i, i).
— відкриває файл для дозаписи. Якщо за використанні предиката OPENREAD і OPENAPPEND файл не знайдено, це интерпр. як помилка. Якщо за використанні предикатів OPENWRITE і OPENMOCLIFY файл не знайдено, це відбувається створення нової файла. Для перевірки наявності файла в П. є слід. стан. предикат:
EXISTEFILE ().
(string):(i).
Если файл із зазначеним ім'ям не сущ., то предикат приймає значення .t., якщо нібрехня. Перевизначення пристроїв до роботи з файлами користувача проводиться за допомогою readdevice і writedevice.
FILE_STR (< ім'я файла в ОС>,< строка>).
(string, string): (i, 0) (i, i).
— читає знаки до 64кб з файла в перем. пам’яті, якщо поставлено (i, 0). Якщо поставлено (i, i), то знаки з пер. памяти зап-ся в файл. Читання і запис припиняється, якщо зустрітися ознака кінця файла. Цей предикат працює без визначення символьного імені файла.
READTERM (,< терм>).
(< ім'я області>,< терм>): (i, 0).
После відкриття файла цей предикат читає факти потім із нього. Перший аргумент предиката д.б. описаний розділ domains программы.
EOF (< символьне ім'я файла>).
(file): (i).
Предикат має значення «Істина», якщо покажчик файлів позиції установлено в кінці файла.
FILEPOS (< цим. ім'я файла>,< позиція>,< режим>).
(file, real, integer): (i, i, i) (i, 0, i).
RENAME (< ім'я файла1 в ОС>,< ім'я файла2 в ОС>) — переим. файла.
(string, string): (i, i).
DELETE (< ім'я файла в ОС>) — видалення файла.
(string): (i).
DISK (< маршрут>).
(string): (і) (0) — встановлює, якщо (1) чи повертає, якщо задана (0) дисковод чи тих. каталог, подкаталог…
CLOSEFILE (< цим. ім'я файла>).
(file): (i).
3. Стандартні предикати обробки файлів і їх використання.Техника роботи з файлами в программах.
1.Создание файла.
domains.
file = ff.
P2 = integer.
Pole, Pole1 = string.
predicates.
vvod.
put.
clouses.
put if.
write («Запровадьте ознака продолжения»),.
readint (Pr),.
Pr=0.
vvod.
vvod if.
write («Запровадьте строку»),.
readln (Pole), nl,.
write (Pole),.
concat (Pole, «n», Pole1),.
openappend (ff, «text»).
writedevice (ff),.
write (pole1),.
closefile (ff),.
writedevice (screen),.
write («Рядок», Pole1, «на диск записана»).
В полі м.б. введенозначение предиката-факта, з кіт. надалі м. працюватиме, як ср-вами обробки файла, і ср-вами динам. фаз фактів. Предположим, что у цьому прикладі користувач ввів значення предиката-факта tmc.
tmc (Post, Kod, Kol, Cena).
2.Обработка фактів з файла.
domains.
file = ff.
data= tmc (Post, Kod, Kol, Cena).
Post, Kod=string.
Kol, Cena=integer.
predicates.
put.
spr.
clouses.
put if.
not (eof (ff)),.
spr.
put if.
eof (ff), nl,.
write («Робота закончена»),.
closefile (ff).
spr if.
readterm (data, tmc (Post, Kod, Kol, Cena), nl,.
write (post), nl,.
put.
goal.
openread (ff, «text»),.
readdevice (ff),.
spr.
3.Модификация даних файла.
domains.
file=ff.
Pr= integer.
Pole, Pole1 = string.
K = real.
predicaes.
put.
mod.
clouses.
put if.
write («Запровадьте ознака продолжения»),.
readint (P2),.
p2 = 0,.
mod.
mod if.
write («Запровадьте номер записи»), nl,.
readreal (K), nl,.
K1=K*12,.
openmodify (ff, «text»),.
readdevice (ff),.
filepos (ff, K1,0).
readln (Pole),.
write («Старе значення», pole), nl,.
writedevice (ff),.
filepos (ff, K1,0),.
write (Pole1,"n"),.
closefile (ff),.
writedevice (screen),.
write («Нове значення», Pole1), nl,.
readdevice (keybord),.
put.
goal.
mod.
ТЕМА: Кошти модульного прг-я в ТПТП, будучи прообразом мови парал. обчислень, підтримує стиль модульного проектирования.
Средства ТП на підтримку мод. прог-я следующие:
1.Междумольная інформаційна зв’язок в П. реалізується кака та інших мовами прог-я, через загальні перемінні. І тому в пов’язують модулях після розділу domains, де описуються ті прийоми, кіт. описуються у різних модулях.
2.Актуализация кожного модуля виробляється шляхом виклику відповідного правила, кіт. д.б. під всіх що пов’язують модулях розділ global predicates.
3.Ср-ва обр-ки модульних программ.
3.1.Использование предиката include «ім'я програмного файла».
include — використовують у тому випадку, коли до поточної програмі лише на рівні вихідного модуля.
Цепочка модулів м.б. як завгодно довгою, але з д.б. циклов.
" ім'я прогр. файла «м. утримувати маршрут пошуку файла на диске.
4.project «ім'я файла-проекта».
Эта дирректива д.б. записана 1-ї у його модулях, кіт. необхідно поєднати у 1-ї завантажувальний модуль безпосередньо з ім'ям файла-проекта. По аналогам з розробками Borland, все модулі, объед. до проекту, компілюється окремо, а зв’язок відбувається лише на рівні об'єктних модулей.
ТЕМА: Фреймові моделі уявлення знань1.Особенности уявлення знань з допомогою фреймов.
2.Аппарат логічного висновку фреймовой модели.
3.Примеры-приложения фреймовой модели.
1. Особливості уявлення знань з допомогою фреймівПредставление знань з допомогою фреймів явл. альтернативним по отнош. до систем продукції і на лот. моделям. Воно дає змогу зберігати родовидовую ієрархію в явною форме.
Фрейм — складова структурна одиниця, призначена для описи які стосуються стериотипной ситуації на объекте Осн. елемент одиниць фрейму явл. слот, кіт. ісп. для зберігання одиничного знання. Станд. стр-ра слота след.:
{ ім'я слота; ;…; …}.
fi — ім'я атрибута, властивого слота.
Si — значення атрибута.
qi — посилання інші слоты чи фреймы Стр-ра слота след-я:
имя файла имя слота1 значення слота1.
имя слота n значення слота n.
Если стр-ра знань дозволяє, то, при описі потрібно исп-ть прості слоты, тобто. слоты, кіт. мають одне значення. Значенням слота м.б. не т. константа чи посилання ін. фрейм, а й функція, кіт. потребує певної деталізації у процесі рішення. Т. функції дістали назву фасет .
Фреймы-прототипы — це готовий. стр-ры для описи законів опр. п/о. Вони відсутні конкр. значення слотів. При заповненні слотів конкр. значеннями, вони перетворюються на конкретні фрейми. Часто в системах фрейми исп-ся для стереотипних послед-й дій і вони зв. сушариями.
При заповненні фреймівпрототипів, частина слотів м. залишатися порожній фреймовой стр-ры дають воз-ть описувати об'єкти різного рівня ієрархії, кіт. явл. ключовим понятием.
Иерархия об'єктів реалізується через апарат дослідження властивостей, коли класи об'єктів певного рівня успадковують будівлі класів фреймів вищого рівня. Якщо об'єкт, кіт. описується деякою групою фреймів перебуває у концептуальної зв’язки й з верхнім і нижнім рівнями фреймів, то соотв. йому фрейми конструюються з учетоми ієрархічних відносин також у своїй успадкування властивостей осущ. через слоты чи фрейми з именем.
2. Апарат логічного висновку фреймовой моделиЛогический висновок у фреймовой системі осущ. шляхом обміну повідомленнями між фреймами різного рівня ієрархії, спочатку отримує управління кореневої фрейм, далі динам. формується необхідна для реалізації запитів ланцюжок фреймів слід. рівня ієрархії. Т.а. у фреймовой системі кожному з фреймів задається суворо опр-е.
Основной операцією під час роботи з фреймами явл. пошук на зразок. У межах фреймовой моделі зразок — це фрейм, в кіт. заповнені в усіх стор. ед-цы, а т. ті, кіт. б. використані ролі ключа для реалізації дій в конкр. фреймах.
Используются спец. процедури наповнення слотів спец. значеннями, а т. введення у систему нових фреймов-прототипов і нових перетинів поміж ними.
3. Примеры-приложения фреймовой моделиВ наст. час фреймова модель явл. основою всіх объектно-ориентированных систем прог-я. Як найпопулярніших додатків м. назвати мови FRL, KRL, FSM, Small Talk, і навіть доповнення до процедурним мовам: З++, Delphi і т.д.
FRL.
Реализован з урахуванням мови LISP.