Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розширений електронний конспект з курсу ІАД, 20...doc
Скачиваний:
53
Добавлен:
13.09.2019
Размер:
1.52 Mб
Скачать

2. Формалізація понять алгоритмічності та декларативності

Введемо наступні позначення:

  • первинні інструкції, записані без будь-яких змін у тому вигляді, в якому їх сформулював автор; аналогічно можна визначити первинний опис ситуації як результат її безпосереднього сприйняття;

  • множина чинників, які визначають поточний стан виконавців; розглянемо як об’єднання двох множин: . Тут множина контрольованих чинників, які відомі авторові і на які він може мати вплив; множина неконтрольованих чинників. Зауважимо, що назагал контрольованість і керованість – це не одне й те ж саме: фактор може бути контрольованим, але для нашої мети це не має суттєвого значення. Наприклад, контрольованими змінними може бути обсяг виробництва та реалізації продукції, обсяг виробничого споживання ресурсу, а неконтрольованими – ринкова ціна продукції;

  • знання, якими володіє виконавець;

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

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

Тоді можна записати такі співвідношення:

,

,

Де і деякі функції.

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

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

Таким чином, вважатимемо, що алгоритмом називається чітка недвозначна послідовність інструкцій, що зрозуміла виконавцеві і обов’язково приводить до гарантованого результату за скінченний час.

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

Можна виокремити принаймні два основні джерела квазіалгоримічності:

  • Нечіткість формулювань, що фігурують в описі процедури.

Як приклад розглянемо будь-який кулінарний рецепт. А саме «розтерти тісто, змішати з дрібно порізаними яблуками, додати солі і перцю за смаком і смажити до появи рум’яної скоринки». Це є типовим прикладом нечіткості формулювань, що призводить до невизначеності. До якої межі слід розтирати тісто? Що означає «дрібно порізані»? «за смаком»? Як формалізувати момент «появи рум’яної скоринки»?

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

Власне факт виконання завдання свідчитиме про те, що квазіалгоритмічний первинний опис процедури був зведений до деякого внутрішнього алгоритму, але ледве чи виконавець зможе чітко пояснити і розписати цей алгоритм. Крім того, такі внутрішні алгоритми для кожного виконавця будуть різними, що зумовить неоднакові результати – у даному разі різні смакові якості виробу.

  • «свобода волі», яку можуть мати високоорганізовані, по-справжньому інтелектуальні системи.

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