Студопедия — Языки искусственного интеллекта.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Языки искусственного интеллекта.






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

Классификация языков программирования по способу программирования представлена на рис.

 
 

 

 


В начале развития ИИ (в конце 50-х - начале 60-х годов) не существовало языков и систем, ориентированных специально на области знаний. Исследования показали, что производительность труда программиста остается постоянной независимо от уровня инструментального языка, на котором он работает. LISP.В начале 60-х годов в Стэнфорде под руководством Дж. Маккарти был разработан язык функционального программирования, предназначенный для систем искусственного интеллекта, LISP (List Information Symbol Processing). По первоначальным замыслам он должен был включать наряду со всеми возможностями Фортрана средства работы с матрицами, указателями и структурами из указателей и т.п.

Окончательно сформированные принципы, положенные в основу языка LISP, это: использование единого спискового представления для программ и данных; применение выражений для определения функций; скобочный синтаксис языка.

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

 

 

Пример фрагмента базы знаний подбора претендентов на вакансии в языке логического программирования ПРОЛОГ представлен ниже:

 

vibor(Fio,Dolgnost):- pretendent(Fio, Obrazov, Stag),

vacancy(Dolgnost, Obrazov, Opyt),

Stag>=Opyt.

 

pretendent(Иванов, среднее, 10).

pretendent(Петров, высшее, 12).

vacancy(менеджер, высшее, 10).

vacancy(директор, высшее, 15).

Механизм вывода осуществляет дедуктивный перебор фактов, относящихся к правилу по принципу "сверху – вниз", "слева – направо" или обратный вывод методом поиска в глубину. На запрос:

?vibor(X,Y).

получим ответ:

X=Петров, Y=менеджер.

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

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

Главный недостаток – это «закрытость» ФС, их негибкость. Модификация и расширение здесь всегда связаны с перестройкой всей ФС, что в практике разработки систем сложно и трудоемко. В них очень сложно учитывать происходящие изменения. Поэтому ФС как модели представления знаний используются в тех предметных областях, которые хорошо локализуются и мало зависят от внешних факторов.

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

В промышленных экспертных системах исчисление предикатов 1-го порядка практически не используется, но применяются различные ее модификации и расширения.

 

В начале 70-х годов были созданы мощные Лисп-системы: Маклисп, Интерлисп. Дальнейшее развитие языка идет, с одной стороны, по пути его стандартизации (Стандарт-Лисп, Франц-Лисп, Коммон Лисп [Common LISP]), а с другой – в направлении создания концептуально новых языков для представления и манипулирования знаниями в Лисп среде. В настоящее время Лисп реализован на всех классах ЭВМ, начиная с ПЭВМ и кончая высоко производительными вычислительными системами.

В середине 60-х годов разрабатывались языки искусственного интеллекта, предлагающие другие концептуальные основы. Наиболее заметные из них в области обработки символьной информации – СНОБОЛ и Рефал.

СНОБОЛ

Это язык обработки строк, в рамках которого впервые появилась и была реализована в достаточно полной мере концепция поиска по образцу. Язык СНОБОЛ был одной из первых практических реализаций развитой продукционной системы. Наиболее известная и интересная версия этого языка – Снобол-4. Здесь техника задания образцов и работа с ними существенно опередили потребности практики. По существу, он так и остался «фирменным» языком программирования, хотя концепции СНОБОЛа, безусловно, оказали влияние и на Лисп, и на другие языки программирования задач ИИ.

Рефал

Язык Рефал – алгоритмический язык рекурсивных функций. Язык Рефал является одним из языков, разработанных в России (СССР), в 1966 г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами.

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

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

PROLOG

В начале 70-х годов появился новый язык составивший конкуренцию Лиспу при реализации систем, ориентированных на знания – Prolog (Programming in logic). Этот язык не дает новых сверхмощных средств программирования по сравнению с Лиспом, но поддерживает другую модель организации вычислений.

Язык логического программирования PROLOG представляет собой одну из моделей сентенциального программирования.

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

Язык PROLOG был создан на основе метода резолюций в 1973 г. французом Альбером Кольмероэ. Техника реализации языка Prolog была предложена Дэвидом Уорреном и его коллегами из Эдинбургского университета, которая получила название абстрактной машины Уоррена.

Язык Prolog отличается от языков Бейсик, Фортран, Паскаль, Си и обладает следующими особенностями:

• программа на Prolog не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики (т.е. это дескриптивный, описательный язык программирования);

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

• Prolog требует особого стиля мышления программиста, что затрудняет изучение его теми, кто уже привык к процедурному программированию, что мешает росту популярности языка Prolog; однако во многих странах (Японии, Англии, Франции, Германии, Израиле и т.д.) расширяется практика применения Пролога в образовании как первого изучаемого языка программирования; переход к процедурным языкам типа Паскаля в этом случае трудностей не вызывает.

Язык Пролог базируется на предикатах первого порядка. Предикат – это логическая функция, принимающая значения «истина» или «ложь» в зависимости от значений своих аргументов. Количество аргументов у предиката называют его арностью.

В настоящее время известны такие версии языка Prolog как Turbo Prolog, Visual Prolog, последний нашел широкое применение при разработке приложений.

 







Дата добавления: 2015-10-02; просмотров: 1438. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

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

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

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия