Лабораторная работа №1 По предмету: «Искусственный интеллект.»




Скачать 65,83 Kb.
НазваниеЛабораторная работа №1 По предмету: «Искусственный интеллект.»
Дата публикации12.04.2013
Размер65,83 Kb.
ТипЛабораторная работа
pochit.ru > Информатика > Лабораторная работа
MINISTERUL EDUCAŢIEI ŞI TINERETULUI AL REPUBLICII MOLDOVA

Universitatea Liberă Internaţională din Moldova

Facultate Informatică si Inginerie

Лабораторная работа №1
По предмету:
« Искусственный интеллект. »


”Знакомство с Prolog”.
Выполнил студент группы: С-22. ……….


Проверил: Трифан С.

Кишинев 2010.

Цель работы: Написать программу на языке программирования Prolog.

Вывести около 16-ти значений в диалоговом окне.
Теория
Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

Основные области применения Пролога:

  • быстрая разработка прототипов прикладных программ;

  • автоматический перевод с одного языка на другой;

  • создание естественно-языковых интерфейсов для существующих систем;

  • символьные вычисления для решения уравнений, дифференцирования и интегрирования;

  • проектирование динамических реляционных баз данных;

  • экспертные системы и оболочки экспертных систем;

  • автоматизированное управление производственными процессами;

  • автоматическое доказательство теорем;

  • полуавтоматическое составление расписаний;

  • системы автоматизированного проектирования;

  • базирующееся на знаниях программное обеспечение;

  • организация сервера данных или, точнее, сервера знаний, к которому может обращаться клиентское приложение, написанное на каком-либо языке программирования.

В программах на Прологе есть три типа предложений (clauses): факт, правило вывода, цель.

Каждое предложение должно заканчиваться точкой.

Факты в языке Пролог описываются логическими предикатами с конкретными значениями.

Факт - утверждение, истинность которого безусловна. Например,

male(jorj) /* Jorj - мужчина */

Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Правило - утверждение, зависящее от условий.

Например,

child(anna,piter) :- parent(piter,anna). /* Анна - дитя питера,

если Питер - родитель анны */

Цель - вопрос пользователя к системе о том, какие утверждения являются

истинными.

father(X,anna) /* кто является отцом Анны ? */

будет выдан ответ piter

На все поставленные вопросы Пролог пытается ответить с помощью

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

вниз и слева направо. Сначала анализируется цель и ведется поиск такого факта

или правила вывода, с помощью которого она может быть достигнута. При

нахождении такого факта после соответствующей подстановки переменных

Пролог переходит к анализу следующей цели при условии, что предыдущая

достигнута (доказана). Если некоторая цель последняя, доказательство

заканчивается. При отсутствии нужных фактов, но наличии правила вывода,

которое могло быть применено, цель заменяется условием этого правила с

соответствующей подстановкой переменных. Теперь условием выполнения цели

становится доказательство условия (правой части) правила вывода.

Процесс нахождения соответствия между целью и фактом называется унификацией.

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

Механизм рекурсии часто объясняют на вычислениях чисел Фибоначчи, эти числа могут быть определены следующим соотношением:

fib(0) = 1

fib(1) = 1

fib(n) = fib(n-1) + fib(n-2)

На Прологе это соотношение будет выглядеть так:

predicates

fib(integer,integer)

clauses

fib(0,1). % граничное условие

fib(1,1). % граничное условие

fib(N,F) :- N>1,

N1=N-1,

fib(N1,F1),

N2=N-2,

fib(N2,F2),

F=F1+F2.

Теперь Goal: fib(10,X).

89

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

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

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

1) предок(предок, потомок):- родитель(предок, потомок).
2) предок(предок, потомок):- предок(предок, человек), предок(человек, потомок).
3) предок(предок, потомок):- предок(предок, человек1), предок(человек1, человек2), предок(человек2, потомок).

родитель("Саша", "Маша").
родитель("Коля", "Оля").
родитель("Таня", "Маша").

Рекурсивное описание правила содержит в своем теле ссылку на заголовок этого же правила. В связи с этим возможны следующие разновидности рекурсии.
1. Правая рекурсия:
правило1():-правило11(), правило12(), . . . , правило1().
2. Левая рекурсия:
правило1():-правило1(), правило21(), . . . , правило2n().
^ 3. Обобщенная рекурсия:
правило1():-правило11(), правило12(), . . . , правило1(), правило21(), правило22(). . .

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

Predicates
parent(symbol, symbol) /* Определяем типы для используемых фактов*/

female(symbol, symbol)

male(symbol, symbol)
Clauses

parent (kolia,liza). /* Задаём сами факты */

parent (stefan,sveta).

parent (stefan,piter).

parent (marya,sveta).

parent (piter,iulia).

female (jana,lena).

female (sveta,lucika).

male (senia,vova).

male (stefan,iura).

Goal

parent(kolia,Y), write(Y),nl, /* Задаём значения согласно которым хотим */

parent(X,sveta), write(X),nl, /* получить ответы*/

parent(D,iulia), write(D),nl,

parent (W, piter) , write (W),nl,

parent (A, liza) , write (A),nl,

female(C, lena) , write (C),nl,

female (P,lucika) , write (P ),nl,

female ( sveta, V) , write (V),nl,

female (jana,N) , write (N ),nl,

male (M,vova) , write (M ),nl,

male (L,iura) , write (L),nl,

male ( senia,T) , write (T),nl,

male (stefan, H) , write (H),nl,

male (J,G), write (J,",",G),nl,

female (F,B) , write (F,",",B),nl,

parent (Q,R) , write (Q,",",R),nl.
Скриншот выполненной программы :




Вывод:

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

Перед нами была поставлена задача вывести некую родственную связь.

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





Похожие:

Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconИсследование Интеллект
Интеллект. Комплексы интеллектуальной организации. Внешнее и внутреннее. Множества и коэффициенты. Процедура, операция, баланс. Искусственный...
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconТрофимов В. Н. Искусственный интеллект: добро и зло как запретный...
Искусственный интеллект: добро и зло как запретный плод / В. Н. Трофимов, Е. В. Трофимова. М.: Издательско-торговая корпорация «Дашков...
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconОбразовательные ресурсы Интернет. Ссылки на сайты по математике
Искусственный интеллект и математика, труды Станислава Лема и др. Небольшая электронная библиотека
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconЛабораторная работа
Лабораторная работа: Наблюдение сплошного и линейчатого спектров излучения Физика 11 класс моу сош с. Карасу
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconЛабораторная работа № Цель: Систематизировать знания по видам тканей
Тема. Волокнистые швейные материалы. Пряжа. Свойства ткани. Лабораторная работа №2
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconЭ. Юдковский Искусственный интеллект как позитивный и негативный фактор глобального риска
Выходит в 2007 году в сборнике Риски глобальной катастрофы под редакцией Ника Бострома и Милана Цирковича, Оксфорд
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconЛичность и искусственный интеллект: тенденции 21 века
Доклад, представленный на международном конгрессе: «Личность общество: перспективы 21 века» /Брага, Португалия,17-19 ноября 2005...
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconУчебно-методический комплекс по дисциплине «Экономика предприятия»
Й деканом факультета непрерывного и дистанционного обучения, регистрационный № УД 11 XX YY/Р и рабочего учебного плана специальностей...
Лабораторная работа №1 По предмету: «Искусственный интеллект.» icon«искусственный интеллект интернета (иии)»
Дескрипторы (гиперонимы и гипонимы) – это термины естественного языка, выражающего определенные понятия. Словарь дескрипторов с указанием...
Лабораторная работа №1 По предмету: «Искусственный интеллект.» iconУрок 15-16
Искусственный интеллект это одно из направлений информатики, целью которого является разработка аппаратно-программных средств, позволяющих...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2019
контакты
pochit.ru
Главная страница