logo
Вступ до спец

7.5. Prolog – нездійснена мрія еом V покоління

Мова Prolog (PROgramming for LOGic – програмування для логіки) була створена в Європі на початку 70-х років. Теорія була розроблена в Едінбурзі (Великобританія) Робертом Ковальським та Маартеном ван Емденом, перша реалізація здійснена Аленом Кольмарі (Colmerauer, Alain) з Марселя (Франція).

На відміну від усіх попередніх мов, включаючи Лісп, Пролог не є алгоритмічною мовою, тобто він не описує як треба отримати результат. Він є декларативною мовою, тобто показує що дано та що треба отримати.

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

Варто пригадати те, які надії декілька десятиліть тому покладалися на штучний інтелект, якими розумними уявлялися майбутні машини і те, яким провалом все зрештою скінчилося. Фон нейманівські машини (фактично – послідовні цифрові процесори) здатні сприймати єдиний вхідний потік одиниць і нулів та обробляти дані, що складаються з тих же одиниць і нулів. Тому, можливості таких компютеров з часом виявляться вичерпаними, і ні про яке реальне використання сучасних комп’ютерів для вирішення інтелектуальних завдань говорити не доводиться. Рано чи пізно, окрім вирішення рутинних завдань, сучасні комп’ютери повинні стати інтелектуальними асистентами людини так, як це їх собі уявляли Ванневар Буш та Даг Енгельбарт.

Тому саме на Пролог – могутню та красиву мову у 80-і роки були покладені дуже великі надії. Мова йде про вельми амбітний проект ЕОМ п’ятого покоління, який був заявлений Японією у 1981 році та розпропагандований у пресі під назвою «Японський виклик». Йшлося про комп’ютер з паралельними процесорами, що працює з даними, які зберігаються в обширній базі даних, а не у файловій системі. При цьому доступ до даних повинен був здійснюватися за допомогою мови логічного програмування.

Метою програми було створення «епохального комп'ютера» з продуктивністю суперкомп'ютера і потужними функціями штучного інтелекту. Початок розробок – 1982, кінець розробок – 1992, вартість розробок – 57 млрд ієн (близько 500 млн дол).

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

Передбачалося, що у 90-х роках будуть створені комп’ютери, які мають принципові відмінності від усіх попередніх:

Йшлася мова про комп'ютер з паралельними процесорами, що працюють з даними, які зберігаються в обширній базі даних, а не в файловій системі. При цьому доступ до даних повинен був здійснюватися за допомогою мови логічного програмування. Передбачалося, що прототип машини буде володіти продуктивністю між 100 млн і 1 млрд LIPS, де LIPS - це логічний висновок в секунду. До того часу типові робочі станції були здатні на продуктивність близько 100 тис. LIPS.

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

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

Очікувалося домогтися істотного прориву в області вирішення прикладних задач штучного інтелекту. Зокрема, повинні були бути вирішені наступні завдання:

В основу програмного забезпечення майбутніх ЕОМ передбачалося покласти мову Пролог, а всю архітектуру орієнтувати на реалізацію алгоритмів логічного висновку.

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

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

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

Був зроблений помилковий вибір мов типу Лісп і Пролог для створення бази знань та маніпулювання даними. У 1980-і рр. ці системи програмування користувалися популярністю для САПР та експертних систем, проте експлуатація показала, що додатки виявляються мало надійними і погано відлагоджувались в порівнянні з системами, які були розроблені звичайними технологіями, від чого від цих ідей довелося відмовитися. Корпораціями, що займалися розробкою програмного забезпечення, були запропоновані нові мови, але кожна з них володіла істотними недоліками, що не дозволяло у повній мірі використовувати паралельні обчислення.

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

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

Ідея саморозвитку системи, за якою система сама повинна змінювати свої внутрішні правила і параметри, виявилася непродуктивною – система, переходячи через певну точку, скочувалася в стан втрати надійності та втрати цілісності, різко «дурніла» і ставала неадекватною.

З будь-яких точок зору проект можна вважати абсолютним провалом. За десять років на розробки було витрачено понад 50 млрд ієн, і програма завершилася, не досягнувши мети. Робочі станції так і не вийшли на ринок, тому що однопроцесорні системи інших фірм перевершували їх за параметрами, програмні системи так і не запрацювали, поява Інтернету зробило всі ідеї проекту безнадійно застарілими. Проект був обмежений категоріями мислення 1970-х рр. і не зміг провести чіткого розмежування функцій програмної та апаратної частини комп'ютерів. Завдання створення нового, революційного покоління комп’ютерів явно відкладається на XXI століття.