"Пролог" - язык программирования или основа искусственного интеллекта

Появление "Пролога" было обусловлено развитием логики, математики и программирования. Последнее сыграло самую существенную роль. Специалисты по логике и математике предприняли попытку поставить программирование на «правильный путь», но развитие информационных технологий показало совершенно другой результат.

Прагматичное императивное программирование оказалось перспективнее. "Пролог" как язык программирования состоялся, но основой для искусственного интеллекта не стал.

Классическое программирование против логики

Человек принимает сложные решения логично и обоснованно. Практически не задумываясь, человек поступает разумно. Если не брать в расчет решения, требующие сбора информации, ее анализа и сложных расчетов, то любой результат - это быстро, точно и обоснованно.

Этот факт всегда давал призрачное основание считать создание инструмента для принятия решений простым делом. С появлением "Пролога" казалось: вопрос искусственного интеллекта - дело техники, и человек разумный придумал три закона робототехники. Однако искусственный интеллект так и остался призраком, а три закона робототехники оказались из сказки - «сделай то, не знаю что».

Программирование в классическом значении этого слова (часто используют термины "процедурное", "императивное" или "функциональное") развивалось и успешно преодолело «смутные времена» 80-90-х годов, когда языков программирования было несчетное количество.

Показательная борьба между "Паскалем" и "Си" длилась долго, была жестокой, но закончилась нейтрально и тихо. Осталась идея хорошего языка программирования и несколько удачных ее реализаций.

Нельзя сказать, что "Пролог" как язык программирования не развивался. Но он не достиг обозначенных целей. Сегодня можно не только сказать, но и обосновать: "Пролог" - это академический язык для:

  • целей обучения;
  • логики предикатов;
  • математики;
  • узкого применения.

Сомнительно, что это утверждение можно опровергнуть. Искусственный интеллект - это не только широкое применение, но и слишком серьезное событие, кардинально меняющее общественное устройство и картину мира.

Программирование на языке "Пролог" для искусственного интеллекта не состоялось: за более чем сорокалетнюю историю языка не было ни одного кардинально нового, актуального для общественного сознания события, свидетельствующего об обратном.

Объективная реальность такова: выживает не столько сильнейшее, сколько востребованное и актуальное.

"Пролог" - язык декларативного программирования

Иметь инструмент описания фактов и правил - хорошо, но какой смысл? Факты и правила прекрасно ложатся в обычную базу данных. Квалифицированный классический программист предоставляет интерактивный диалог для пользователя, и последний решает свои задачи.

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

Декларативное изложение фактов и правил на любой реализации языка программирования "Пролог" - это условность, попытка формализовать реальность в ее интеллектуальном состоянии. Обычное программирование не трогает интеллект. Классическое программирование устраивает позиция: описание и обработка данных. Здесь есть масса проблем, но есть множество блестящих и работающих решений.

"Пролог" как язык программирования - это факты:

  • мама (Мария, Наташа); - Мария - мама Наташи;
  • папа (Евгений, Марина); - Евгений - папа Марины.

Здесь сразу за бортом оказывается факт: «Мария» и «Марина» - разные имена. Ничего не мешает дописать факт:

  • папа (Евгений, Мария); - Евгений - папа Марии.

Эти описания дают жизнь правилам:

  • родитель (x, y) <- папа (x, y);
  • родитель (x, y) <- мама (x, y);

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

Фактически "Пролог" как язык программирования - пример декларации фактов и правил, но не логика, к которой привыкло сознание классического программиста. "Пролог" позиционирует себя как язык логики предикатов, но учиться программированию на нем можно только по примерам и образцам описаний от разработчиков конкретной реализации языка.

Семейство "Прологов"

Франция считается родиной "Пролога", а 1973 год - годом рождения. Интерес к языку периодически возобновлялся, но с завидной стабильностью затихал. Девиз языка: «Логика предикатов - это элементарно! Это способ объяснить, как работает мышление» - так и остался девизом.

Любая реализация языка программирования "Пролог" строго следовала логике предикатов, но всегда включала в себя классические идеи процедурного программирования. Правильнее сказать "императивного", поскольку этот термин употребляется с большей формальностью, чем процедурное, функциональное, объектно-ориентированное или иное.

Любое программирование - это данные и их обработка. Конструкции языка должны максимально точно описывать решаемую задачу, именно поэтому все известные реализации "Пролога": Turbo Prolog, Win Prolog, SWI Prolog, GNU Prolog, Visual Prolog и другие - содержат, помимо декларативных конструкций, обычные императивные выражения.

Считается, что семейство "Прологов" развивается в академических и научно-исследовательских организациях и поэтому как об общем языке можно говорить только в концептуальном смысле. Тем не менее сам факт, что концепция "Пролога" жива и развивается, можно считать: у этого языка есть область применения, и она востребована в определенном спектре задач.

Основа искусственного интеллекта

Интерес к искусственному интеллекту никогда не ослабевал, просто о нем начинают говорить, когда появляется очередной повод, но никогда "Пролог" не ассоциировался с искусственным интеллектом больше, чем обычный классический язык программирования.

В конце 80-х годов был реальный, актуальный и востребованный интеллектуальный проект «Изобретающая машина». Была реальная попытка применить "Пролог" для формализации огромной практичной базы знаний (данных) по изобретениям, физическим, химическим и иным закономерностям.

Результат не был достигнут, слишком много фактов и правил нужно было написать на "Прологе" как языке программирования, которые носят банальный императивный характер. Между тем параллельно была реализована масса успешных программных продуктов на обычных языках.

В начале 90-х годов был успешно реализован проект реальной интеллектуальной системы, моделирующей поведение ребенка в возрасте до 3-лет на языке ассемблер ЕС ЭВМ! Вариант использования "Пролога" даже не рассматривался.

Данная интеллектуальная система не только «соображала», что такое мама, папа, и чем отличается Мария от Марины, но и без особого напряжения самостоятельно перескочила с приобретенных знаний по этим вопросам к мячикам и их отличиям от кубиков, к цветам предметов и ... (!) к элементарной математике: простые арифметические операции оказались ей по силам на основании знаний, приобретенных при решении совсем других задач.

Можно не утверждать, что классическое программирование опережает "Пролог" в части освоения территории искусственного интеллекта, но оно дает реальные результаты.

Что касается интеллекта как задачи - видимо, вопрос здесь лежит не в языке, а в идее реализации. Если ассемблер 1991 года смог «стать основой» для интеллектуальной системы ситуативного интеллекта, то вопрос явно лежит не в языке реализации, а в идее.

Комментарии
Читая эту статью как-то не верится ,что я в начале моей карьеры делая отчеты ,я пользовался арифмометром.Прогресс идет очень быстро,и это хорошо но не следует забывать,что в этой области науки нужно быть предельно осторожными.Ошибка в изучении искуственного интелекта может иметь весьма печальные последствия для человечества
Безусловно. Искусственный интеллект - страшнее атомной бомбы, но для его создания еще есть время, а к моменту его создания все условия обязательно будут соответствовать нужному положению вещей. Я в начале карьеры был безумно счастлив писать программы для калькулятора МК-54!!! Супер))
Наука двигается вперед семимильными шагами,раньше были ЭВМ,а теперь уже практически почти готов робот с искуственным интелектом,подобие человека,который может общаться,отвечать на любые вопросы.
Мне кажется,человечеству еще далеко до искусственного интеллекта.Да и,честно говоря,страшновато...
Если ИИ заработает как человеческий,то решится много задач которые человек не может решить физически
И прежде всего самая полезная задача: сбор и распознавание информации! В огромных объемах, которые человек не в силах осилить.
Искусственный интеллект - наше будущее, и язык Пролога может быть в значительной степени использован в искусственном интеллекте, особенно в областях принятия решений и логики
Исскуственный интелект это наше будущее, ведь уже начинается эра новых технологий где воплощают ИИ.
Интересная статья, если подумать то все люди которые боятся искусственного интеллекта кажутся проплаченными анти-рекламщиками. После прочтения этой статьи понимаешь что создание развитого искусственного интеллекта не такая легкая задача
искусственный интеллект -это наша реальная жизнь!Будущее за ним!Кто бы мог подумать ,что это возможно еще 20 лет назад. 😮
Классная статья , советую почитать . Скайнет не за горами.
Мда...Многие еще в начале 80х думали что так со временем и покорят искусственный интеллект,но как по мне,сколько бы не создавали роботов,слишком сложно покорить металл,так как его все равно создали люди на основе своего интеллекта,а здесь и парадокс.
И программы и роботов создают люди.Роботы управляются загруженными в них программами и создать что то сами по себе они не могут.
Действительно, программы и роботы - результат рук человека.
Но человек может создать такой результат, который будет развиваться "сам"! Именно об этом я хотел написать, приводя примеры. А Пролог мне не понравился с самого начала, когда я работал в Лаборатории Изобретающих машин. Ничего эта лаборатория не сделала ... Это было в 1988-1989 гг. прошлого века.
вообще совершенно удивительно насколько искусственный интеллект становится частью настоящего. уже сейчас сама вынуждена основы DAX учить, по необходимости. При том, что я работаю экономистом на малом предприятии)))
Я вот считаю что искусственный интеллект приближается к нам все ближе и ближе с каждым годом . Классная статья , советую почитать . Скайнет не за горами )))
И все таки, искусственный интеллект не каждому дается в осознании, что рядом может находится с более высоки уровнем.