Язык программирования для искусственного интеллекта

Язык программирования для искусственного интеллекта

На этой неделе вы могли прочитать крайне мотивирующей кейс от ученика GeekBrains Валерия Турова, который изучил профессию «Программист Java», где он рассказал об одной из своих целей, которая привела в профессию — желанию познать принцип работы и научиться создавать самому игровых ботов.

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

Стадия 1. Разочарование

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

Математика — этот тот научный плацдарм, на котором будет строиться ваше дальнейшее программирование. Без знания и понимания этой теории все задумки быстро разобьются о взаимодействие с человеком, ведь искусственный разум на самом деле не больше, чем набор формул.

Стадия 2. Принятие

Когда спесь немного сбита студенческой литературой, можно приступать к практике. Бросаться на LISP или другие функциональные языки пока не стоит — сначала стоит освоиться с принципами проектирования ИИ. Как для быстрого изучения, так и дальнейшего развития прекрасно подойдёт Python — это язык, чаще всего используемый в научных целях, для него вы найдете множество библиотек, которые облегчат ваш труд.

Стадия 3. Развитие

Теперь переходим непосредственно к теории ИИ. Их условно можно разделить на 3 категории:

  • Слабый ИИ – боты, которых мы видим в компьютерных играх, или простые подручные помощники, вроде Siri. Они или выполняют узкоспециализированные задачи или являются незначительным комплексом таковых, а любая непредсказуемость взаимодействия ставит их в тупик.
  • Сильный ИИ – это машины, интеллект которых сопоставим с человеческим мозгом. На сегодняшний день нет реальных представителей этого класса, но компьютеры, вроде Watson очень близки к достижению этой цели.
  • Совершенные ИИ – будущее, машинный мозг, который превзойдёт наши возможности. Именно об опасности таких разработок предупреждают Стивен Хоккинг, Элон Маск и кинофраншиза «Терминатор».

Естественно, начинать следует с самых простых ботов. Для этого вспомните старую-добрую игру «Крестики-нолики» при использовании поля 3х3 и постарайтесь выяснить для себя основные алгоритмы действий: вероятность победы при безошибочных действиях, наиболее удачные места на поле для расположения фигуры, необходимость сводить игру к ничьей и так далее.

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

К слову, если вы всё-таки взялись за язык Python, то создать довольно простого бота можно, обратившись к этому подробному мануалу. Для других языков, таких как C++ или Java, вам также не составит труда найти пошаговые материалы. Почувствовав, что за созданием ИИ нет ничего сверхъестественного, вы сможете смело закрыть браузер и приступить к личным экспериментам.

Стадия 4. Азарт

Теперь, когда дело сдвинулось с мёртвой точки, вам наверняка хочется создать что-то более серьёзное. В этом вам поможет ряд следующих ресурсов:

Как вы поняли даже из названий, это API, которые позволят без лишних затрат времени создать некоторое подобие серьёзного ИИ.

Стадия 5. Работа

Теперь же, когда вы уже вполне ясно представляете, как ИИ создавать и чем при этом пользоваться, пора выводить свои знания на новый уровень. Во-первых, для этого потребуется изучение дисциплины, которое носит название «Машинное обучение». Во-вторых, необходимо научиться работать с соответствующими библиотеками выбранного языка программирования. Для рассматриваемого нами Python это Scikit-learn, NLTK, SciPy, PyBrain и Numpy. В-третьих, в развитии никуда не обойтись от функционального программирования. Ну и самое главное, вы теперь сможете читать литературу о ИИ с полным пониманием дела:

И да, вся или почти вся литература по данной тематике представлена на иностранном языке, поэтому если хотите заниматься созданием ИИ профессионально — необходимо подтянуть свой английский до технического уровня. Впрочем, это актуально для любой сферы программирования, не правда ли?

В остальном же ваше дальнейшее развитие будет зависеть лишь от практики и желания усложнять алгоритмы. Но будьте осторожны: возможно, совершенный искусственный разум опасен для человечества?

Спасибо GeekBrains за представленный материал.

Существует великое множество языков программирования, однако не все они подходят для машинного обучения (МО). Портал Techopedia рассказывает о наиболее подходящих языках, их преимуществах и недостатках.

Специалист по вычислительной техники Стэнфордского университета Эндрю Нгом дал МО следующее определение: «наука, которая работает над тем, как научить компьютеры функционировать без явного программирования». Предпосылки к рождению науки появились в однако вплоть до начало они носили лишь теоретический характер. Настоящий прорыв произошел десятилетие назад, когда МО стало катализатором развития нескольких прорывных технологий, особенно это касается искусственного интеллекта. МО можно разбить на несколько категорий, включая контролируемое (supervised), неконтролируемое (unsupervised), полууправляемое (semi-supervised ) и обучение с подкреплением (reinforcement learning).

В то время, как контролируемое обучение для выведения взаимосвязи с выходными результатами опирается на маркированные (помеченные) входные данные, неконтролируемое МО предназначено для обнаружения закономерностей среди немаркированных входных данных. В полууправляемом (или МО с частичным привлечением учителя) применяется комбинация контролируемого и неконтролируемого обучения, тогда как обучение с подкреплением направлено на то, чтобы программы могли повторять заданную последовательность циклов или разрабатывать процессы с желаемыми результатами, избегая при этом ошибок.

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

Читайте также:  Аккумулятор ехиде как зарядить

Python. Это высокоуровневый язык программирования, который имеет множество различных способов применений, включая науку о данных и внутреннюю веб-разработку. Он был создан Python Foundation в начале и является мощным инструментом для анализа данных, широко используется в технологии больших данных. Особый статус ему придает многочисленное сообщество разработчиков МО, которое в основном сосредоточено на быстрорастущем ИИ-направлении.

Благодаря активному сообществу для Python появилось множество готовых библиотек МО. Этот язык — платформенно независимый, поэтому его можно адаптировать практически к любой операционной системе. Еще одно преимущество Python связано с его открытостью — он построен на базе технологий Open Source, поэтому разработчики могут получить доступ к любому стеку языка.

Что касается минусов Python, то поскольку это динамически типизированный язык, работа с ним в среде МО может вызывать проблемы. Одной из них является сложность отслеживания ошибок в коде, что связано с разрастанием кодовой базы программы и, соответственно, с ее сложностью. В некоторых случаях (сложные проекты для крупных организаций) аудит кода может выливаться в значительные финансовые затраты, отнимать много времени и сказываться на продуктивности проекта.

R. Этот язык программирования появился в начале и является частью проекта GNU. Он широко применяется в анализе данных и, как правило, является целевым для решения общих задач МО, таких как регрессия, классификация и формирование дерева решений. R помимо прочего пользуется популярностью среди статистиков. Как и Python, R обладает открытым исходным кодом и широко известен как язык, пакеты для работы с которым относительно легко установить, настроить и применять.

R — платформенно независимый, он хорошо интегрируется с другими языками программирования. Наряду с анализом данных, R приспособлен для визуализации данных.

Несмотря на относительную простоту интеграции с другими инструментами, R обладает рядом особенностей, которые усложняют его изучение. К ним, например, можно отнести нетрадиционные структуры данных и индексирование (которое начинается с 1 вместо 0).

R менее популярен, чем Python, поэтому массив документации, требуемый разработчикам для создания приложений в области МО, у него меньше.

JavaScript. Этот язык появился в середине как инструмент для улучшения практики веб-разработки и является одним из наиболее востребованных в этой области. JavaScript — высокоуровневый и динамически типизированный язык, гибкий и мультипарадигмальный. Применение языка в МО получило ограниченное применение, но, тем не менее, такие известные проекты, как Google Tensorflow.js, основаны на JavaScript.

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

C++. Это самый старый среди наиболее распространенных на сегодняшний день языков программирования. Он был создан в недрах Bell Labs в начале как научно-исследовательский проект, направленный на расширение возможностей языка Си. Обладая возможностями одновременно как низкоуровневого, так и высокоуровневого языка программирования, в контексте МО C++ обеспечивает более высокий уровень контроля и эффективности, чем другие языки программирования.

Гибкость языка хорошо подходит для ресурсоемких приложений, и подмножество программ МО здесь — не исключение. Учитывая, что C++ — статически типизированный язык, он может выполнять задачи с относительно высокой скоростью.

Что касается его минусов, то основным из них является то, что для создания новых приложений на базе C++ требуется написание большого объема сложного кода, что занимает много времени и может вызвать большие трудности в обслуживании. Язык C++ определенно сложен в овладении и, создавая на нем новые проекты, начинающие программисты очень часто допускают невынужденные ошибки.

Java. За созданием Java стоит Sun Microsystems. Появившийся в середине он изначально замышлялся как высокоуровневый и объектно-ориентированный язык программирования, который во многом напоминает по структуре C++. Обладая огромной популярностью, Java может похвастаться широким спектром алгоритмов, которые очень полезны для сообщества разработчиков софта МО. Во многом Java считается одним из самых безопасных языков программирования благодаря использованию байт-кода и песочниц.

Его можно обозначить как удачную инкарнацию C++ (Java обладает большинством функционала, заложенным в C++), которая лишена недостатков последнего — проблем с безопасностью кодовой базы и сложностью компиляции.

Несмотря на все свои преимущества, Java имеет репутацию более медленного языка, чем многие другие языки программирования и в том числе C++. Кроме того, начиная с 2019 г. для написания определенных бизнес-приложений на Java требуется коммерческое лицензирование, что выльется в дополнительные расходы для предприятий.

Выводы

Python — самый популярный из всех языков программирования, применяемых в МО. Тем не менее, сбрасывать со счетов JavaScript и ряд некоторых других языков, может быть непредусмотрительно. Это связано с тем, что со временем их популярность будет расти, отражая изменения бизнес-ландшафта. Что касается тенденций программирования, то можно с уверенностью сказать, что в ближайшие несколько лет написание кода останется востребованной функцией, однако оно станет менее ориентированным на код и больше на функционал, поскольку машины сами научатся писать код.

Если кибернетику скрестить с математикой — получится кибенематика ("Математики тоже шутят").

А если кибернетику скрестить с философией — получится кабернетикэ (Шурику пошутили).

Пока с трудом провожу границы между математикой, информационными технологиями, кибернетикой и менеджментом (а ведь с информацией и управлением еще связана лингвистика, семиотика и психология). Что в чем. Может быть — так:

То есть, информатика обслуживает математику технически, а математика информатику — теоретически. Обе обслуживают кибернетику, которая, фактически, включает часть разделов математики, и часть — информатики. Также, эти "царицы наук и техники" обслуживают лингвистику, и, в то же время, часть лингвистики содержится в информатике, а математика сама является, по существу, "языком". Таким образом, лингвистика, информатика и математика являются взаимно спаянным обслуживающим триумвиратом — "тремя слугами" Киплинга: WHAT, WHY, HOW (что, почему и как?).

Разделы страницы о кибернетике и системах управления:

  • Разделы кибернетики
  • Общие ресурсы по кибернетике
  • Робототехника и роботостроение
  • Искусственный интеллект и нейропрограммирование
  • Литература по нейроинформатике и нейрокомпьютерной технике

Разделы кибернетики

Приведём 2 внутренние классификации кибернетики и ее направлений:

  1. Кибернетика — Классификация по ГРНТИ (раздел 28).
  2. Кибернетика — Классификация по УДК в разделе 51 (Математика).

Основные разделы кибернетики по ГРНТИ

Раздел кибернетики

Состав раздела 28 "Кибернетика" согласно ГРНТИ (щёлкайте на ветках для их раскрытия или схлопывания):

  • 28.01 Общие вопросы кибернетики
  • 28.01.01 Руководящие материалы [справочники и стандарты]
  • 28.01.05 Материалы общего характера
  • 28.01.09 История кибернетики. Персоналия
  • 28.01.13 Научные и технические общества, съезды, конгрессы, конференции, симпозиумы, семинары, выставки
  • 28.01.17 Международное сотрудничество
  • 28.01.21 Организация научно-исследовательских работ
  • 28.01.29 Информационная деятельность
  • 28.01.33 Терминология. Справочная литература. Учебная литература
  • 28.01.45 Преподавание
  • 28.01.75 Экономика, организация, управление, планирование и прогнозирование
  • 28.01.79 Кадры
  • 28.01.80 Правовые вопросы
  • 28.15 Теория систем автоматического управления [28.15-28.19, 28.27-28.29 — системология]
    • 28.15.15 Линейные детерминированные системы
    • 28.15.19 Нелинейные детерминированные системы
    • 28.15.23 Стохастические системы автоматического управления, следящие системы
    • 28.17 Теория моделирования
      • 28.17.15 Физическое моделирование
      • 28.17.19 Математическое моделирование
      • 28.17.23 Моделирование физических процессов
      • 28.17.27 Моделирование логических структур
      • 28.17.31 Моделирование процессов управления [в т.ч. бизнес-анализ?]
      • 28.17.33 Компьютерное моделирование реальности. Виртуальная реальность
      • 28.19 Теория кибернетических систем управления
        • 28.19.15 Оптимальные системы
        • 28.19.19 Экстремальные системы
        • 28.19.23 Адаптивные и обучающие системы
        • 28.19.27 Самоорганизующиеся системы
        • 28.19.31 Идентификация систем
        • 28.21 Теория информации [28.21-28.25 — обработка и передача информации (информатика)]
          • 28.21.15 Теория сигналов
          • 28.21.19 Теория кодирования
          • 28.21.27 Структуры систем передачи данных
          • 28.23 Искусственный интеллектпсихолингвистика]
            • 28.23.01 Общие вопросы искусственного интеллекта
            • 28.23.02 Общие проблемы искусственного интеллекта
            • 28.23.11 Языки для представления знаний
            • 28.23.13 Инженерия знаний. Представление знаний
            • 28.23.15 Распознавание образов. Обработка изображений
            • 28.23.17 Логика в искусственном интеллекте
            • 28.23.19 Эвристические методы
            • 28.23.20 Формирование решений в интеллектуальной среде. Модели рассуждений
            • 28.23.21 Модели дискурса
            • 28.23.23 Модели когнитивной психологии
            • 28.23.24 Модели восприятия информации в интеллектуальных системах
            • 28.23.25 Модели и системы обучения
            • 28.23.27 Интеллектуальные робототехнические системы
            • 28.23.29 Программная реализация интеллектуальных систем
            • 28.23.33 Аппаратная реализация интеллектуальных систем
            • 28.23.35 Экспертные системы
            • 28.23.37 Нейронные сети
            • 28.23.39 Интеллектуальные базы знаний
            • 28.25 Теория конечных автоматов и формальных языков
              • 28.25.15 Анализ и синтез конечных автоматов
              • 28.25.19 Абстрактные машины
              • 28.25.23 Кибернетические аспекты структурно-логической теории алгоритмов и программирования
              • 28.27 Теория надежности
                • 28.27.15 Оптимизация надежности
                • 28.27.19 Количественные характеристики
                • 28.27.23 Надежность эргатических систем
                • 28.27.27 Методы оценки надежности
                • 28.27.31 Структурно-функциональная избыточность
                • 28.29 Системный анализ
                  • 28.29.01 Общие вопросы
                  • 28.29.03 Теория полезности и принятия решений
                  • 28.29.05 Теория игр и ее применение в кибернетических системах
                  • 28.29.07 Теория массового обслуживания и ее приложения
                  • 28.29.15 Методы исследования операций
                  • 28.29.51 Технические приложения вероятностно-статистических методов
                  • 28.29.53 Программно-целевое планирование
                  • 28.29.55 Теория планирования эксперимента
                  • 28.29.57 Эргатические системы
                  • 28.29.59 Программированное обучение
                  • Раздел математической кибернетики

                    Состав раздела 27.47 "Математическая кибернетика" (внутри раздела 27 "Математика") согласно ГРНТИ:

                    • 27.47.15 Математическая теория управляющих систем
                    • 27.47.17 Математическая теория информации
                    • 27.47.19 Исследование операций
                    • 27.47.23 Математические проблемы искусственного интеллекта
                    • 27.47.25 Математические вопросы семиотики

                    Примечания (термины и определения)

                    1. Эргатическая система — система управления, одним из элементов которой является человек или группа людей. Основными особенностями таких систем являются социально-психологические аспекты («человеческий фактор»). Наряду с недостатками, эргатические системы обладают рядом преимуществ, таких как нечеткая логика, эволюционирование, принятие решений в нестандартных ситуациях.

                    Состав кибернетических дисциплин по УДК

                    В разделе 51 «Математика» имеется подраздел 519.7 “Математическая кибернетика, включая теорию управляющих систем [кибернетических и автоматических?], теорию информации и математические вопросы семиотики.” [!] Также имеется подраздел 51-7 “Применение математических методов исследования в других областях знания” — “Приложения теоретико-вероятностных методов, математическая экономика [эконометрика?], кибернетика.”

                    А в разделе 68 «Техника» имеется подраздел 681.5 “Автоматика. Теория, методы расчета и аппаратура систем автоматического управления и регулирования. Техническая кибернетика. Техника автоматизации.”.

                    Общие ресурсы по кибернетике

                    История вычислительной техники (обзоры и находки)

                    Порталы о технической кибернетике и компьютерном управлении

                    • Кибернетизация.ру Тематический портал о кибернетике и компьютерах.

                    Кибернетика и системология (статьи)

                    • Как выделить главное: принципы конфайнмент(R)-моделированияю
                    • Формула P=?NP.

                    Робототехника и роботостроение

                    Великий фантаст Айзек Азимов в 1942 году сформулировал три закона робототехники. Первый из них гласит: «Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред».

                    Центры робототехники и технической кибернетики

                    Новости по роботостроению и киборгостроению

                    • В лондонский аквариум запустили рыб-роботов.
                    • Девушка-робот.
                    • Роботы от Microsoft.
                    • Япония отправит на Луну человекоподобных роботов.
                    • Ученые создали жуков-киборгов.
                    • Статьи о жуках-киборгах и их изобретателе — Мишеле Махарбизе.

                    Искусственный интеллект и нейропрограммирование

                    Центры исследований и разработок в сфере искусственного интеллекта

                    Порталы и сборники статей по искусственному интеллекту

                    • Портал искусственного интеллекта, роботы с искусственным интеллектом.
                    • 5GL — Системы искусственного интеллекта и нейронные сети.

                    Языки программирования искусственного интеллекта и нейросетей (5GL)

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

                    Нейроязыки Prolog, Lisp, Smalltalk — языки грамматического разбора и обработки текста.

                    О нейропрограммировании и искусственном интеллекте

                    • Lisp & Prolog — Язык Искусственного Интеллекта. Нейроинформатика 2002
                    • Язык искусственного интеллекта. Как это было.
                    • Языки искусственного интеллекта.
                    • Сайт по автоматному программированию и мотивации к творчеству. Санкт-Петербургский Государственный Университет Информационных Технологий, Механики и Оптики. Кафедра «Технологии программирования».
                    • SoftCraft — Технологии информационного поиска. Сайт преподавателя информатики и заведующего кафедрой НейроЭВМ Красноярского государственного технического университета Легалова Александра Ивановича о теории и технологиях транслирования, кодирования, параллельных вычислений, нейроинформатики и др.

                    Язык Lisp (Лисп) — 1960 г.

                    Язык Lisp (Лисп) предложен в конце 1958 г. [письменно — в 1960 г.] математиком Джоном Маккарти (John McCarthy) из МТИ (ему же принадлежит идея создания систем с разделением времени). Название идет от List Processing language (язык обработки списков), но из-за изобилия скобок в шутку расшифровывается также как Lots of Idiotic Silly Parentheses (масса идиотских скобок). Язык ориентирован на разработку программ для решения задач не численного характера — в первую очередь для обработки символьной информации.

                    Официальное название хорошо подчеркивает основную область его применения. Понятие “список” оказалось очень емким. Программа на этом языке и большая часть структур данных представляют собой связанные списки. В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и многие другие сложные объекты. Списки являются наиболее гибкой формой представления информации в памяти компьютеров. Базовыми операциями языка являются операции над списками. Неудивительно, что этот удобный язык, специально предназначенный для обработки списков, быстро завоевал популярность.

                    Это язык функционального программирования, базирующийся на лямбда-исчислении и используемый для задач искусственного интеллекта (ИИ). Это был также первый ЯВУ, в котором при работе с динамически распределяемой памятью производится автоматическая "сборка мусора" (garbage collection).

                    Большим достоинством Лиспа является его функциональная направленность, т. е. программирование ведется с помощью функций. Причем функция понимается как правило, сопоставляющее элементам некоторого класса соответствующие элементы другого класса. Сам процесс сопоставления не оказывает никакого влияния на работу программы, важен только его результат – значение функции. Это позволяет относительно легко писать и отлаживать большие программные комплексы. Ясность программ, четкое разграничение их функций, отсутствие каверзных побочных эффектов при их выполнении является обязательными требованиями к программированию таких логически сложных задач, каковыми являются задачи искусственного интеллекта. Дисциплина в программировании становится особенно важной, когда над программой работает не один человек, а целая группа программистов.

                    На протяжении почти 40-летней истории его существования появился ряд диалектов этого языка: Common LISP, Mac LISP (MacLisp), Inter LISP (INTERLISP), Standard LISP, MuLISP фирмы Soft Warehouse для РС и другие: Honolulu, Havaii. Различия между ними не носят принципиального характера и в основном сводятся к несколько отличающемуся набору встроенных функций и некоторой разнице в форме записи программ. Поэтому программист, научившийся работать на одном из них без труда сможет освоить и любой другой.

                    Существуют и другие диалекты ЛИСПа. Arc — предельно упрощённая версия Lisp с мощной поддержкой макросов, позволяющей любые «грязные хаки» в стиле лиспа. Clojure — современный диалект Лиспа, язык программирования общего назначения с поддержкой разработки в интерактивном режиме, поощряющий функциональное программирование и упрощающий поддержку многопоточности. Clojure работает на платформах JVM и CLR.

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

                    Язык Prolog (Пролог)

                    Язык Prolog (Programmation en Logique — "программирование на основе логики" — Пролог) — декларативный язык программирования для задач искусственного интеллекта, обработки естественных языков и др. Его разработали в 1971-1972 годах Алэн Колмероэ (Alain Colmerauer) и Филипп Рассель (Philippe Roussel) в университете в Лумини (г. Марсель). В дальнейшем Пролог развивали различные коллективы, среди которых следует выделить группу Эдинбургского университета.

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

                    Первая реализация — Prolog 10 (Дэвид Уоррен и др.) на PDP-10. Отсюда термин — эдинбургский синтаксис, или синтаксис DEC10. В настоящее время имеется обширное семейство языков логического программирования, построенных на базе языка Пролог, например, Prolog-2, Prolog++, Prolog-Linda, Prolog-III, Turbo Prolog, PDS Prolog и др.
                    (Англо-русский компьютерный словарь)

                    Язык Smalltalk

                    Язык SmallTalk (Смолток, Смолтолк — досл. "короткий разговор") — его разработали в 1972 г. Алан Кей (Alan Kay) и сотрудники исследовательской группы Software Concept Group фирмы Xerox PARK (США). Первый объектно-ориентированный язык сверхвысокого уровня.

                    Характеризуется интерактивным графическим взаимодействием с пользователем. В нём использованы концепции классов и сообщений из языка Simula-67.

                    Язык прошел следующие версии: Smalltalk-72, Smalltalk-74, Smalltalk-76, Smalltalk-78, Smalltalk-80, GNU Smalltalk, Smalltalk/V.

                    Диалектом языка Smalltalk является язык программирования Squeak, имеющий кросс-платформенную реализацию. Первоначально Squeak был разработан группой программистов Apple Computer, в которую входили некоторые разработчики Smalltalk-80.

                    Литература по нейроинформатике и нейрокомпьютерной технике

                    • Горбань А. Н., Россиев Д. А.Нейронные сети на персональном компьютере. Новосибирск: Наука, 1996.
                    • Ежов А. А., Шумский С. А.Нейрокомпьютеринг и его приложения в экономике и бизнесе. М.: Изд-во МИФИ, 1998.
                    • Искусственный интеллект. Справочник. В 3-х т./ Под ред. Д. А. Поспелова. Т. 2. Модели и методы. М.: Радио и связь, 1990.
                    • Нейроинформатика / А. Н. Горбань, В. А. Дунин-Барковский, А. Н. Кирдин и др. Новосибирск: Наука., 1998.
                    • Нейронные сети и их применение в системах управления и связи. Комашинский В.И.. Изд-во , 2003. 94 с.
                      Изложены основы теории искусственных нейронных сетей. Показано место нейронных сетей в эволюции интеллектуальных систем управления. Рассмотрены общие вопросы применения искусственных нейронных сетей в системах управления и связи. Отмечены преимущества, которые дает применение нейроинформационных технологий при решении многих как нетрадиционных, так и традиционных задач управления и связи.
                      Заказать на Библионе,
                    • Плотников В. М., Суханов В. А.Системы, основанные на знаниях. М. 1995.
                    • Толковый словарь по искусственному интеллекту. М.: Радио и связь, 1992.
                    • Уоссерман Ф.Нейрокомпьютерная техника: Теория и практика. М.: Мир, 1992.
                    Ссылка на основную публикацию
                    Adblock detector