Лекції з інформатики

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Вступ до проблеми штучного інтелекту (ШІ) Поняття систем ІІ, їх класифікація галузі застосування та перспективи розвитку. Використання систем ІІ в організаційному управлінні. 1. Поняття систем ІІ, їх класифікація галузі застосування та перспективи розвитку. ІІ - це науково-дослідний напрямок створюють моделі та відповідні програмні засоби, що дозволяють за допомогою ЕОМ вирішувати завдання творчого, не обчислювального характеру, які в процесі вирішення вимагають звернення до семантикою (проблемі сенсу). Дослідження в галузі ШІ проводяться протягом 30 років.

Початком робіт у галузі ШІ вважають створення ЕОМ, яка повинна була імітувати процес людського мислення. Розробка Розенблата. Машина-персептрон мала два види нейтронів, які утворювали нейтронну сеь.

Дослідження в галузі ШІ розділилися на два підходи:

1) Конекціоністскій

2) Символьний

Початок робіт в (2) вважають розробки університету Корнеги Меллона, а саме два програмних комплексу:

а) логік-теорико;

б) загальний вирішувач завдань.

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

Дослідницьким полігоном цього періоду з'явилися головоломки та ігри. Це пояснюється замкнутістю простору пошуку рішень і можливістю моделювання дуже складною стратегії пошуку рішення. У той же час робляться спроби перенести ШІ з штучного середовища в реальну. Виникає проблема моделювання зовнішнього світу. Це призвело до появи інтегральних роботів, які спочатку повинні були виконувати певні операції в технологічних процесах, працювати в небезпечних для людини середовищах. З появою роботів велика увага приділяється реалізації функції формування дій, сприйняття ними інформації про зовнішнє середовище. Поява роботів вважають другим етапом досліджень у ІІ.

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

ЕС використовують знання групи експертів у рамках певної предметної області. В якості експертів використовуються конкретні фахівці, які можуть бути не достатньо знайомі з ЕОМ. В даний час у загальному обсязі частка ЕС становить до 90%. Якщо проранжувати області застосування за кількістю створених зразків:

Медична діагностика, навчання, консультування. Проектування ЕС. Надання допомоги користувачам щодо вирішення завдань в різних областях. Автоматичне програмування. Перевірка та аналіз якості ПЗ. Проектування надвеликих інтегральних схем. Технічна діагностика і вироблення рекомендацій з ремонту обладнання. Планування в різних предметних областях та аналіз даних, в тому числі і на основі статистичних методів. Інтерпретація геологічних даних і вироблення рекомендацій з виявлення корисних копалин. Перші зразки ЕС займали по трудомісткості розробки 20-30 людино / років. У колектив розробників входили: експерти предметної області, інженери по знаннях або проектувальники ЕС, програмісти. У проектуванні ЕС є суттєва відмінність від проектування традиційних інформаційних систем. Це пояснюється тим, що в ЕС використовується поняття "знання", а в традиційній системі - "дані". В ЕС відсутнє поняття жорсткого алгоритму, а всілякі дії задаються у вигляді правил, які є евристиками, тобто емпіричними правилами або спрощеннями. У процесі роботи системи здійснюється побудова динамічного плану виконання завдання за допомогою спеціального апарату логічного висновку понять.

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

Лекції з інформатики В даний час при широкому використанні символьного підходу посилилася увага до використання нейтронних мереж. Це пояснюється тим, що запропоновані дуже потужні моделі нейтронних мереж та алгоритми їх навчання (метод зворотного поширення помилок).

Нейтронні мережі використовуються в медичній діагностиці, керуванні літаком, податкових і поштових службах США.

Однією зі складових успіху нейтронних мереж стала спільна розробка компанії Intel і корпорації Nestor мікросхеми з архітектурою нейтронних мереж.

Тенденції розвитку засобів обчислювальної техніки:

Розвиток обчислювальної бази: паралельні, нейтронні та оптичні технології, які будуть здатні до розподіленого поданням інформації, паралельної її обробки, навчання та самоорганізації. Розвиток теоретичної основи для інформаційної обробки заснований на понятті 'Softlogic', що підтримує як логічний, так і інтуїтивний висновок понять. Розробка для реальних додатків системи когнетивная функцій, таких як мова, звукові ефекти, когнетивная графіка і т.п. ЕС як різновид систем ШІ. Структура ЕС. Визначення знань і бази знань (БЗ). Визначення понять логічного висновку. Організація інтерфейсу з користувачем в ЕС. 1. Структура ЕС. Лекції з інформатики 2. Визначення знань і бази знань (БЗ). Основним елементом БЗ є знання про предметну область, в якій повинна функціонувати ЕС.

Знання - це сукупність відомостей, що утворюють цілісний опис відповідне певному рівню поінформованості про описуваної проблеми.

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

У БЗ ЕС знання повинні бути обов'язково структуровані і описані термінами однієї з моделі знань. Вибір моделі знань - це найбільш складне питання в проектуванні ЕС, так як формальний опис знань має суттєвий вплив на кінцеві характеристики та властивості ЕС.

У рамках однієї БЗ всі знання повинні бути однорідно описані і простими для розуміння. Однорідність опису диктується тим, що в рамках ЕС повинна бути розроблена єдина процедура логічного висновку, що маніпулює знаннями на основі стандартних типових підходів. Простота розуміння визначається необхідністю постійних контактів з експертами предметної області, які не володіють достатніми знаннями в комп'ютерній техніці.

Знання поділяються з точки зору семантики на факти та евристики. Факти як правило вказують на усталені в рамках предметної області обставини, а евристики грунтуються на інтуїції та досвіді експертів предметної області.

За ступенем узагальненості опису знання поділяються на:

Поверхневі - описують сукупності причинно-наслідкових відносин між окремими поняттями предметної області. Глибинні - відносять абстракції, аналогії, зразки, які відображають глибину розуміння всіх процесів, що відбуваються в предметній області. Введення в базу глибинних уявлень дозволяє зробити систему більш гнучкою та адаптивною, так як глибинні знання є результатом узагальнення проектувальником або експертом первинних примітивних понять.

За ступенем відображення явищ знання поділяються на:

Жорсткі - дозволяють отримати однозначні чіткі рекомендації при завданні початкових умов. М'які - допускають множинні розпливчасті рішення і різноманітні рекомендації. Тенденції розвитку ЕС.

Лекції з інформатики М, Ж - м'які, жорсткі знання.

П, Г - поверхневі, глибинні знання.

медицина, управління психодіагностика, планування діагностика несправностей різного виду проектування різних видів пристроїв Зазвичай при проектуванні БЗ проектувальник намагається користуватися стандартною моделлю знань (МЗ):

продукційна модель знань (системи продукції) логічна МОЗ фреймова МОЗ реляційна МОЗ За формою опису знання поділяються на:

Декларативні (факти) - це знання виду "А є А". Процедурні - це знання виду "Якщо А, то В". Декларативні знання поділяються на об'єкти, класи об'єктів і відносини.

Об'єкт - це факт, який задається своїм значенням.

Клас об'єктів - це ім'я, під яким об'єднується конкретна сукупність об'єктів-фактів.

Відносини - визначають зв'язку між класами об'єктів і окремими об'єктами, які виникли у рамках предметної області.

До процедурних знань відносять сукупності правил, які показують, як вивести нові відмінні риси класів або відносини для об'єктів. У правилах використовуються всі види декларативних знань, а також логічні зв'язки. При обробці правил слід зазначити рекурсивность аналізу відносин, тобто одне правило викликає глибинний пошук всіх можливих варіантів об'єктів БЗ.

Кордон між декларативними і процедурними знаннями дуже рухлива, тобто проектувальник може описати одне й те саме як відношення або як правило.

У всіх видах моделей виділено ще один вид знань - метазнанія, тобто знання про дані. Метазнанія можуть задавати способи використання знань, властивості знань і т.д., тобто все, що необхідно для управління логічним висновком і навчанням ЕС.

3. Визначення понять логічного висновку. Апарат логічного висновку призначений для формування нових понять, тобто рішень у рамках певної предметної області. Як правило логічний висновок тісно пов'язаний з конкретною моделлю знань і оперує термінологією цієї моделі. Є кілька загальних понять для всіх МОЗ:

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

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

Керуюча структура - це спосіб застосування або активізації правил у процесі формування рішень. Керуюча структура повністю залежить від обраної проектувальником моделі.

Наприклад, для продукційної моделі найбільш часто використовуються такі керуючі структури:

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

"Спочатку вглиб" "спочатку вшир" Важливою проблемою, яка вимагає обов'язкового рішення в рамках апарату логічного висновку, є підтвердження або оцінка достовірності формованих системою часткових або загальних рішень. Складність полягає в тому, що ЕС як правило, працюють з нечіткими, часто невизначеними поняттями, які повинні бути суворо оцінені і мати чітку форму вираження.

Термін "нечіткість" в ЕС недостатньо визначено і в інженерії знань використовується така класифікація нечіткості:

недетермінірованності виведення багатозначність ненадійність знань неповнота неточність Під недетермінірованності виведення мається на увазі можливість формування плану виконання завдання з певних правил методом проб і помилок, з поверненнями при необхідності для побудови інших, більш ефективних планів. З метою прискорення пошуку ефективного плану в систему вводять оціночні функції різного вигляду, а також евристичні значення експертів. Багатозначність інтерпретації знань у процесі вироблення рішень усувається за рахунок включення в систему більш широкого контексту і семантичних обмежень. Метод семантичних обмежень називається методом релаксації. Суть його в тому, що за допомогою циклічних операцій застосовуються локальні обмеження, які узгоджуються між собою на верхньому рівні.

Ненадійність. Для усунення ненадійності знань, яка досить часто використовується в ЕС, використовуються методи засновані на нечіткій логіці: розрахунок коефіцієнтів впевненості, метод Байєса і т.д. Нечітка логіка - різновид безперервної логіки, в якій логічні формули можуть приймати значення не тільки 0 або 1, але і всі дробові значення між 0 і 1 для вказівки часткової істини. Найбільш слабке місце в нечіткій логіці - це реалізація функції приналежності, тобто присвоювання передумов вагових значень експертами (залежить від конкретної людини). Якщо 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-а керуюча структура - керуюча структура спеціальних випадків

Третій керуюча структура - віку елемента

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 і 1 для переформулювання вимог до системи і основних понять.

3. Практичні аспекти розробки і впровадження ЕС. Відповідно до результатів тестування ЕС може перебувати на одній з наступних стадій:

1) демонстраційний прототип (вирішує лише частину завдань в рамках ПЗ, демонструючи правильність обраного апарату логічного висновку). Термін доведення системи до цієї стадії - близько 3-х міс., К-ть правил в базі знань - 50-100.

2) дослідницький прототип (вирішує всі завдання в рамках ПЗ, на недостатньо стійка в роботі, не повністю перевірена). Термін доведення - 1-2 року, кол-во правил - 200-500.

3) діючий прототип (вирішує стабільно всі завдання в рамках ПЗ, але недостатньо ефективна в роботі, в тому числі нераціональне використання пам'яті, невисока швидкодія). 2-3 р., 500-1000.

4) промислова система (обеспчівает ефективну роботу і високу якість рішень, містить у порівнянні зі стадією 3 набагато більше правил в базі знань, програмне забезпечення в порівнянні з 3) переписано на мову низького рівня). 2-4 р., 1000-1500.

5) комерційна система (передбачає узагальнення завдань, відхід від специфіки ПЗ, призначається для продажу іншим споживачам. Розвинена по Порівняно з 4) система редагування знань, інтерфейсу з конкретним користувачем, навчання). 3-6 років, 1000-3000.

У процесі проектування ЕС слід враховувати той негативний досвід, який накопичено розробниками на кожній стадії проектування.

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

Традиційною помилкою етапу 3 явл-ся підгонка інструментального засобу під поняття і взаємозв'язку конкретної ПЗ.

Не можна погоджуватися при розробці прототипу на програмування відразу ж на мовах низького рівня, тобто без використання інструментальної системи.

На всіх стадіях проектування інженер по знаннях працює з експертом і при цьому виникає цілий ряд труднощів, які заздалегідь треба враховувати:

експерти завжди повинні бути висококваліфікованими, їх потрібно зацікавлювати матеріально; експерт ніколи не може знайти час на роботу з інженером по знаннях; в системі обов'язково повинна використовуватися та ж термінологія, що і у експертів ПО, тільки в цьому випадку експерт може успішно розуміти структуру бази знань та вносити до неї відповідні зміни; з плином часу експерт втрачає інтерес до проекту системи та постійно скорочує час роботи з проектувальником. Для усунення цього проектувальник вносить зміни в систему тільки разом з експертом, тестує також разом з ним; експерт незнайомий, як правило, з комп'ютером, тому РС встановлюється на його робочому місці і доопрацювання системи виробляється там же; при добуванні знань експерта проектувальнику дуже важко відокремити знання ПЗ від метазнаній, тому робота з експертом має відбуватися не з усіх питань в цілому, а по строго спланованим інженером по знаннях порцій. На етапі 4 при розробці прототипу слід прагнути не розробляти самостійно кошти пояснення, а використовувати тільки ті, що є в інструментальній системі.

При розробці першого прототипу необхідно прагнути до того, щоб в базу знань потрапили прості універсальні правила і скорочувати кількість специфічних правил.

На етапі 6 слід враховувати, що якщо розмір правил перевищує 300, то їх виправлення і додавання може призвести до появи нових помилок, тому повинен існувати спеціальний тест, який перевіряє систему на несуперечність правил.

Особливості реалізації експертних систем на базі логічної моделі знань. 1. Поняття логічної моделі знань.

2. Характеристика мови предикатів першого порядку. Особливості подання знань.

3. Апарат логічного висновку.

4. Особливості машинної реалізації мови предикатів першого порядку.

1. Поняття логічної моделі знань. В основі лот. моделі знань лежить поняття формальної теорії та відносини, які існують між одиницями знань можна описувати тільки за допомогою синтаксичних правил, допустимих в рамках цієї теорії.

Формальна теорія задається завжди четвіркою символів S =, де

В - кінцеве безліч базових символів, інакше - алфавіт теорії S;

F - підмножина виразів теорії S, званих формулами теорії. Зазвичай є ефективна процедура, яка представляє собою сукупність правил, які дозволяють з елементів множини У будувати синтаксично правильні вирази.

А - виділене безліч правил, які називаються аксіомами теорії, тобто безліч апріорно істинних формул.

R - кінцеве безліч відносин {r1, r2, ... , Rn} між формулами, званими правилами виводу. Для будь-якого ri існує ціле позитивне число j, таке, що для кожного безлічі, що складається з j формул, і для кожної формули F ефективно вирішується питання про те, чи знаходяться ці j-формули щодо ri з формулою F. Якщо ri виконується, то F називають безпосереднім наслідком F-формул за правилом ri.

Наслідком (висновком) формули в теорії S називається така послідовність правил, що для будь-якого з них представлена ​​формула явл-ся або аксіомою теорії S, або безпосереднім наслідком.

Правила виводу, які розробляються проектувальниками, позволдяют розширити безліч формул, які явл-ся аксіомами теорії.

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

Формальна теорія S зв. Непротіаворечівой, якщо не існує такої формули А, що і А, і не А виведені в цій теорії.

Найбільш поширеною формальною теорією, що використовується в системах штучного інтелекту явл-ся числення предикатів, тобто функцій, які можуть приймати тільки 2 значення.

До достоїнств логічної моделі відносять:

- Наявність стандартної типової процедури логічного висновку (докази теорем). Проте така уніфікація тягне за собою основний недолік моделі - складність використання в процесі логічного виведення евристик, що відбивають специфіку ПЗ.

До інших недоліків логічної моделі відносять:

- "Монотонність";

- "Комбінаторний вибух";

- Слабкість структурованості описів.

2. Характеристика мови предикатів першого порядку. Особливості подання знань. В основі мови предикатів першого порядку лежить поняття предикатів, тобто логічна функція від однієї або декількох нелогічних мінно. Функція може приймати значення істина (t) або брехня (f). У рамках логіки твердження вважається істинним, якщо і що відноситься до нього припущення вважається дійсним і висновок самого твердження теж істина.

Синтаксис мови предикатів включає: предикативні символи, символи змінних, константи (?), А також роздільники (), [], ", '.

Предикативні символи використовуються для позначення відносин. Об'єкти відносин записуються в () після предикативного символу і наз-ся аргументами. Повна запис відносини наз-ся атомної або атомарної формулою.

Атомарна формула:

Є (Іванов, спец.-поЕВМ)

предикативний терм 1 терм 2

символ

Терми можуть представлятися констанатамі і змінними. Дозволено також як термів використовувати функції, к-які обов'язково повинні бути визначені в рамках ПЗ. Проектувальник ЕС заранеее визначає, як інтерпретувати порядок термів у відношенні. Допустимі вирази в численні предикатів, зокрема атомарні формули, наз-ся правильно побудованими функціями (ППФ). У мові предикатів для кожної ППФ обов'язково визначається конкретна інтерпретація. Як тільки для ППФ визначена інтерпретація, кажуть, що формула має значення "істина", якщо відповідне твердження ПО істинно, інакше ППФ має значення "брехня".

З формул можна скласти пропозицію за допомогою логічних зв'язок: кон'юнкція, диз'юнкція, імплікація, заперечення.

Кон'юнкція ( ) використовується для утворення складових фраз:

Вчиться (Іванов, ек.-університет)  розташовується (ек.-університет, Київ)

ППФ, побудовані за допомогою зв'язки кон'юнкція, наз-ся просто кон'юнкції.

Диз'юнкція () реалізує функцію не виключає "або".

Знаходяться (Іванов, аудіт.-147) І знаходиться (Іванов, бібліотека).

ППФ, побудовані за допомогою зв'язки диз'юнкція, наз-ся диз'юнкції.

Зв'язка імплікація () використовується для представлення затвердження типу "якщо, то".

Володіти (Іванов, машина-1)  марка (машина-1, "BMW").

ППФ, побудована шляхом з'єднання формул з допомогою зв'язки імплікація, наз-ся імплікацією.

Ліва сторона імплікації наз-ся антецедент, права - конціквент. Імплікація має значення "істина", якщо антецедент і конціквент мають значення "істина", або антецедент має значення "брехня" незалежно від конціквента. В інших випадках імплікація має значення "брехня".

ППФ зі знаком заперечення (~) перед нею наз-ся запереченням.

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

Квантор - це операція, в якій беруть участь всі значення змінної одного предиката.

Квантор служить для вказівки заходи, в якій екземпляри змінної (?), Тобто константи повинні бути істинними, щоб всі значення в цілому були істинними.

Розрізняють квантор спільності  і квантор сущестовованія . Якщо перед предикатом записаний квантор  для якоїсь змінної, напр.  (х), то це означає, що значення предиката буде істинним тільки в тому випадку, якщо всі значення змінної х будуть істинними.

 (х) (фахівець-по-ЕОМ (х)  програміст)

Якщо перед предикатом записаний квантор , напр.  (х), то для істинності предиката досить, щоб тільки некотрое значення змінної, принаймні одне, були істинними.

 (х) (фахівець-по-ЕОМ (х)  оптиміст (х))

У рамках одного предиката можна використовувати і квантори спільності, і квантори існування, але для різних змінних.

 (х)  (y) (службовець (х)  керівник (y, х))

Якщо некотрая змінна в ППФ проквантіфіцірована, то вона називається зв'язаною. В іншому випадку змінна називається вільною. Будь-яке вираження, яке виходить шляхом квантіфіцірованія правильної формули, є також ППФ.

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

3. Апарат логічного висновку. У мові предикатів процедури логічного висновку виробляються над знаннями, представленими у внутрішній формі по відношенню до тих описів, к-які виконав проектувальник, відображаючи специфіку ПЗ, т. о. проектувальник працює з зовнішньою формою подання знань, а процедури логічного висновку - з внутрішньої.

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

"Modus ponens" - використовується для створення з ППФ виду А ППФ виду В

(А  В).  ("турнікет") інтерпретується як "отже".

Операція спеціалізації. Суть - дозволяє довести, що якщо певного класу об'єктів притаманне к.-л. властивість, то будь-який об'єкт даного класу буде володіти цією властивістю. Для всіх об'єктів класу ісп. властивість А, отже

  x) W (x), AL * 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 PROLOG 1.Domains

2.divdicates

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, ...)

(Змінні і константи): (i, i, ...) - видає на поточний пристрій запису констант і зміст змінних

writef (, x1, x2, ...)

(String,): (i, i, ...)

Структура формату:

"% - M.pw", де% - ознака форматного виведення

якщо заданий "-", то знаки повинні вирівнюватися по лівому краю, якщо не заданий - по правому

m - довжина поля виводу

p - кількість цифр після крапки

w - тип числа, замість w записується f, якщо виводиться число в десятковому вигляді, e - у експотенціальной формі, q - в самому короткому форматі.

Предикати роботи з символьними даними.

str_lon (,)

(String, integer): (i, i) (i, 0)

якщо задано (i, i), перевіряється довжина рядка, якщо (i, 0) - повертається довжина рядка

Перетворення типів

Всі предикатні перетворення діють в обидві сторони. Випадок (i, i) перевіряє істинність для всіх типів, крім real. Перетворення між типами string, symbol і real, integer пр-ся (?) Автоматично.

char_int (,)

(Сhar, integer): (i, 0) (0, i) (i, i)

str_char (,)

(String, сhar): (i, 0) (0, i) (i, i)

str_int (,)

(String, real): (i, 0) (0, i)

і т. д.

Робота з командами операційної системи

Необхідною умовою для роботи з предикатами цієї групи є наявність підкаталогу DOS, в якому б був записаний мінімум command.com

system ()

(String): (i) - передає команду OS

date (,,)

(Integer, integer, integer): (i, i, i) (0, 0, 0) - встановлює, якщо (i, i, i), або повертає, якщо (0, 0, 0) системну дату

time ... - Те ж

dir (,,)

(String, string, string): (i, i, 0) - видаються на екран специфіковані файли з каталогу по маршруту. Можливо вибрати з каталогу ім'я одного файлу за допомогою стрілок керування курсором, при натисканні ім'я цього файлу присвоюється третьому аргументу предиката

Спеціальні предикати мови Turbo Prolog bouncl () - "істина, якщо змінна є конкретизованої

free () - "істина, якщо змінна не є конкретизованої

fail - завжди помилкові. викликає повернення для перевірки бази в правилах

! - (Cat) - предикат відсікання, обмежує повернення

exit - зупиняє виконання користувацької програми і передає управління меню Turbo Prolog

trace - загальне включення режиму відладки. Вказується на початку вихідної програми

trace ()

(Symbol): (i) (0) - встановлює, якщо i, або повертає, якщо 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 * 4 січні терм = 6 * 4

2 терм = 1 * 2 травня терм = 24 * 5

Для позначення того факту, що n-й член послідовності дорівнює V, вводиться предикат наступного виду: posl (N, V)

Фрагмент програми:

domains

N, V = integer

divdicates

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 зв'язується з х і система переходить до доказу підцілі в тілі правила:

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

divdicat 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 *

divdicates

fms (k_fms, kd, ...)

Списки складаються із заголовка (початку списку) і захоплення (закінчення списку). До заголовку відноситься лише 1-й ел-т списку, решта - хвіст.

Список з нульовою кількістю ел-в визначається як порожній список, він не має ні заголовка ні хвоста.

Для роботи зі списками в мові є ряд вбудованих предикатів.

MEMO (,) - де м.б. заданий або ім'ям Sp, або безпосередньо константами, які входять у цей список.

Предикат визначає приналежність ел-та до списку.

I - розподіл списку на голову і хвіст [Head I Tail] або [HIT]

H - або змінної для позначення заголовка

T - - "- хвоста

ПРИКЛАД

domains

list = char *

divdicates

test (List)

clouses

test (['A', 'B', 'C', '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

divdicates

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

прототипи у цьому розділі описуються за тими ж правилами, що і в divdicates.

Розділ database записується перед розділом divdicates і предикати, кіт. в ньому описуються не можуть описуватися в розділі divdicates, а вико-ся в розділах 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): (i) - видалення з БД першого факту, кіт. зіставляється із зазначеним у retraсt фактом. Можливо видалення групи. При цьому у факті вказується загальна для видалення фактів значення, а на місці всіх інших змінних записуються ті змінні, кіт. немає в цьому предикаті.

SAVE (<ім'я файлу>) - скорочує всі факти дин. бази з ОЗУ на магн. диск під ім'ям

string: (i) заданим в предикаті save /

CONSULT (<ім'я файлу>) - додає в опер. дин. базу всі факти з файлу на диску сstring: (i) зазначеним ім'ям.

2. Прийоми роботи з динамічною базою фактів. 1.Перезапісь фактів з розділу clouses в базу на МД.

domains

Post, Kod = string

Kol, Cena = integer

database

tmc (Post, Kod, Kol, Cena)

divdicates

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) & & база створюється спочатку

divdicates

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)

divdicates

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)

divdicates

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): (i) (0) - встановлює, якщо (1) або повертає, якщо задана (0) дисковод або тих. каталог, підкаталог ...

CLOSEFILE (<сим. Ім'я файлу>)

(File): (i)

3. Стандартні предикати обробки файлів і техніка їх використання. Техніка роботи з файлами у програмах

1.Створення файлу

domains

file = ff

P2 = integer

Pole, Pole1 = string

divdicates

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

divdicates

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

divdicaes

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),

48

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 divdicates.

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, а також доповнення до процедурних мов: C + +, Delphi і т.д.

FRL

Реалізований на базі мови LISP.

Кожен кадр предст. собою станд. стр-ру з мах ступенем вкладеності
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Шпаргалка
158.1кб. | скачати


Схожі роботи:
Лекції з бухобліку
Лекції з фінансів
Лекції з Культурі
Лекції зі статистики
Лекції з гастроентерології
Лекції з нейрохірургії
Лекції з БЖД
Лекції з криміналістики 2
Лекції - онкологія нейроонкологія
© Усі права захищені
написати до нас