Page 15 - 6109
P. 15
програма, що відповідає алгоритму r д повинна бути згенерована, йдеться про
задачу синтезу програм.
Тоді можна записати такі співвідношення:
r a=f(q, S’)
r д=h(q, S’, S’’, Z)
де f і h — певні функції.
Принциповим є наступне питання. Можна вважати, що алгоритм r a
формується на основі первинних інструкцій q однозначно. При цьому також
можуть відбуватися зміна і поповнення первинних інструкцій, але цей процес
має повністю контрольований і детермінований характер. Як приклад можна
навести компіляцію програм, написаних мовами високого рівня. Тому автор
процедури може бути впевнений у гарантованому результаті (якщо, звичайно,
були дотримані певні формальні вимоги до первинних інструкцій і забезпечено
належний стан виконавця).
На противагу цьому, за декларативного підходу такої впевненості немає.
Інтелектуальний виконавець певним чином поповнює первинні інструкції, але
їх авторові не завжди відомо, яким чином це поповнення відбувається. Тому не
можна бути впевненим у результаті виконання інструкцій, і ця втрата
гарантованості є неминучою платою за відмову від алгоритмічності. Отже, слід
розглянути узагальнене поняття алгоритму, яке дістало назву "квазіалгоритм ".
2.4. Квазіалгоритми та джерела квазіалгоритмічіності
Ми пересвідчилися, що чисто алгоритмічний підхід виявив свою
неспроможність у разі створення інтелектуальних систем, призначених для
вирішення досить складних неформалізованих задач. Тому для теорії і практики
штучного інтелекту важливе значення має узагальнене поняття
"квазіалгоритм", або "квазіалгоритмічна процедура".
Нагадаємо, що алгоритмом називається чітка недвозначна послідовність
інструкцій, що зрозуміла виконавцеві і обов'язково приводить до гарантованого
результату за скінченний час. На відміну від цього, інструкції квазіалгоритму
можуть бути не зовсім чіткими, тож результат виконання квазіалгоритмічної
процедури не обов'язково є гарантованим.
Можна окремити як мінімум чотири основні джерела
квазіалгоритмічності. Вони можуть доповнювати один одного, а у деяких
випадках – описані схожими математичними моделями. Проте ці джерела
мають принципово різну природу, а саме:
1. Дія випадкових чинників, що не залежать від виконавця. Формально, з
огляду на цей фактор, квазіалгоритмом слід вважати будь-який алгоритм, що
розрахований на роботу за певних умов. Якщо ці умови зміняться, алгоритм
може не привести до потрібного результату. Так, навіть програма на Паскалі,
яка дає змогу обчислювати суму двох чисел, не буде завершена, якщо під час її
виконання в комп'ютері випадково зникне напруга. Якщо ж не вдається чітко
окреслити межі застосування алгоритму або забезпечити додержання
необхідних умов для його роботи, ми маємо справу зі справжнім
квазіалгоритмом.
15