Исследование дидактических возможностей сетевых моделей при разработке программных приложений систем искусственного интеллекта
Обзор образовательных стандартов педагогического образования в области искусственного интеллекта. Построение модели предметной области в виде семантических сетей. Характеристика проблемного обучения. Основные средства языка программирования Пролог.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.10.2013 |
Размер файла | 387,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
По определению достижимости существует хотя бы один путь между заданными вершинами в исходном графе, значит это множество не пустое.
Можно показать, что существует хотя бы один путь с различными вершинами. Т.к. по определению достижимости: вершина u в орграфе G(V,E) достижима из вершины v, если существует путь из v в u, а путем называется ориентированная цепь. Очевидно, что если есть цепь, соединяющая вершины u и v, то есть и простая цепь, соединяющая эти вершины [15].
Предложение: Для сети S1(V,E1,W,D) вес дуги, составляющий множество, состоящее из множества пройденных вершин, которое мы строим, содержит хотя бы одно множество различных вершин и его мощность не превосходит мощности множества вершин сети |V|.
Опираясь на предложение, мы для каждого такого множества, составляющего вес дуги e в S1, можем указать ненулевой максимум мощностей составных множеств из различных вершин. Для этого возьмем подмножество CD: D((X,Y))<=|V|. Согласно предложению оно соответствует множеству всех простых цепей из вершины X в вершину Y. Для множества C каждой цепи ставится в соответствие количество вершин в данной цепи .
Построим сеть S2(V,E1,W,M) на основании G1, приписывая каждому дуге полученный ненулевой максимум. Обозначим этот максимум для данного ребра M(e).
Утверждение 1: Если дуга e сети S2, такая что M(e)=|V|, то между вершинами смежными с e существует гамильтонова цепь.
Доказательство: По построению данной дуге e мы приписываем ненулевой максимум мощностей множеств вершин в цепях (путях с различными промежуточными вершинами) из одной вершины, смежной дуге е, в другую. Если этот максимум равен мощности множества вершин, то существует хотя бы одна цепь из одной указанной вершины в другую, в которую входят все вершины. Так как все вершины различны, то данная цепь является гамильтоновой цепью. ^
Строим сеть S3(V,E2,W), где (vi, vj)E2 тогда и только тогда, когда (vi, vj)E1 и в сети S2 вес этой дуги равен |V|. Согласно утверждению 1 граф сети S3, будет отражать отношение существования гамильтоновой цепи в графе исходной сети S.
На языке математической логики отношение существования гамильтоновой цепи будет выглядеть следующим образом:
Утверждение 2: Если в графе G(V,E) между вершинами X и Y существует гамильтонова цепь, то она не содержит смежного ребра (X,Y).
Доказательство: По условию в графе G(V,E) существует гамильтонова цепь H={(X,V0),(V0,V1),…,(VN-1,VN),(VN,Y)}, |H|=|V|. Предположим, что в этом множестве присутствует смежная дуга (X,Y). Тогда имеется 3 возможности:
V0=Y получаем дугу;
VN=X получаем дугу;
если Vi и Vj смежные вершины и Vi=X, а Vj=Y, то видим, что вершины X и Y встречаются в цепи не по одному разу, что противоречит определению гамильтоновой цепи.
Данное противоречие доказывает истинность утверждения.^
Следствие: Если в графе G(V,E) между смежными вершинами существует гамильтонова цепь, то есть возможность в данном графе построить гамильтонов цикл. Для этого достаточно дополнить гамильтонову цепь смежной дугой.
Теперь для каждой вершины мы можем ввести свойство существования из нее хотя бы одного гамильтонова цикла. Припишем каждой вершине, имеющей свойство, вес - минимум сумм весов дуг, пройденных в каждом из гамильтоновых циклов, начинающихся в заданной вершине. Собственно это и требуется найти по условию задачи. Остальным вершинам приписываем: не определено.
На языке математической логики это свойство будет выглядеть следующим образом:
.
Если ввести следующие обозначения: C/E - цепь, состоящая из множества дуг; с - простая цепь из одной вершины в другую; m(e) - вес дуги e, то получим следующее утверждение:
Эйлеров цикл в однородных семантических сетях.
Перейдем к задаче на нахождение эйлерова цикла в заданном фрагменте сети.
Если граф имеет цикл (не обязательно простой), содержащий все ребра графа по одному разу, то такой цикл называется эйлеровым циклом, а граф называется эйлеровым графом [16].
Теорема: Конечный граф G является эйлеровым графом тогда и только тогда, когда
G связен.
Все его локальные степени четны [16].
Классической задачей в теории графов на нахождение эйлерова цикла является задача китайского почтальона. Она звучит следующим образом: во взвешенном графе найти цикл, проходящий через каждое ребро, по крайней мере, один раз и такой, что для него суммарная длина (длина каждого ребра учитывается столько раз, сколько это ребро встречается в цикле) минимальна. Если граф эйлеров, то любой эйлеров цикл дает оптимальное решение задачи [11].
Тогда задача будет состоять в том, чтобы проверить существования эйлерова цикла в графе (рис ).
1
Размещено на http://www.allbest.ru/
Для данной задачи не получается рассуждать аналогичным способом, т.к. каждое ребро необходимо проходить ровно по одному разу, и механическая замена на две дуги невозможна.
1
Размещено на http://www.allbest.ru/
Предлагаем следующий способ: искусственно вводится дополнительный вес Q для каждого ребра - это номер дороги. Далее заменяем каждое ребро на две дуги, каждой из которых присваиваем вес исходного ребра, т.е. его номер.
Вместо отношения достижимости (транзитивное замыкание) возьмем на взвешенном графе G(V,E) рефлексивно транзитивное замыкание E1 на V бинарного отношения E.
1
Размещено на http://www.allbest.ru/
Т.о. получаем, что наш новый граф может содержать петли, т.е. является псевдографом:
Для каждой вершины графа G1(V,E1) задаем множество, состоящее из множеств дуг с различными номерами, пройденных по пути в исходной сети от одной смежной ребру вершины до другой. DE12E - отношение множества дуг полученного графа во множество множеств дуг с различными номерами, пройденных по пути от одной вершины к другой. Таким образом, D определяет подмножество цепей, по которым можно пройти от одной вершины к другой. Определим отношение CE12Q, которое для каждого дуги e из E1 ставит в соответствие номера дуг для D(e). Для множества C каждой цепи ставится в соответствие количество номеров дуг в данной цепи . Для каждого ребра приписываем новый вес MEN - максимум мощностей множества номеров различных ребер, пройденных по пути в исходной сети - максимум длин соответствующих цепей. Этот максимум не превосходит половины мощности множества дуг исходной сети (мощности ребер |E|), а если совпадает с ним, то существует цепь, включающая дуги со всеми возможными номерами.
Построим сеть, где дуга eE2 тогда и только тогда, когда eE1 и в имеющейся сети вес этой дуги равен M(e)=|E|.
Заметим, что существование для вершины петли означает также существование цикла, включающего дуги со всеми различными номерами. Определим для вершин свойство существования такого цикла из данной вершины. Заметим, что в исходном, неориентированном графе построенному таким образом циклу соответствует эйлеров цикл.
Математическое соотношение будет выглядеть следующим образом:
Или, применяя формулу,
.
Таким образом, мы получили набор математических высказываний, необходимых для описания преобразования сетевых моделей в ходе решения поставленных задач.
Глава 2. Применение сетевых моделей при разработке учебных экспертных систем на основе логической модели представления знаний
§ 1. Представление семантических сетей с помощью логической модели представления знаний
Описание моделей предметных областей с помощью языка предикатов.
Рассмотрим основные понятия исчисления предикатов I порядка. В логике предикатов элементарным объектом, обладающим истинностным значением, является атомарная формула. Атомарная формула состоит из символического обозначения предиката и термов, выступающих в роли аргументов этого предиката. Для предиката должны быть заданы домены аргументов - множества, являющиеся областью их определения.
В общем случае обозначение предиката - это имя отношения, существующего между аргументами. Атомарная формула записывается как обозначение предиката, за которым в скобках располагаются несколько аргументов. Каждый аргумент - это терм. Общий вид атомарной формулы: P (t1, t2, …, tn). Здесь P обозначение предиката, а t1, t2, …, tn - термы. Терм - это либо константа, либо переменная, либо употребление функции [13].
Правильно построенная формула (ППФ) получается в результате комбинирования атомарных формул с логическими соединителями. ППФ определятся следующим образом:
атомарная формула - ППФ;
если А и В - ППФ, то ППФ будут и формулы:
~А, А^В, АvВ, АВ, АВ, x A, x A [13].
Построение теории некоторой области знаний с использованием логики предикатов начинается с анализа области знаний. Он выполняется следующим образом. Вначале выделяется множество значимых сущностей из этой области; данное множество называется областью интерпретации. На следующем этапе определяется, какие функции над элементами области интерпретации представляются важными, если только такие функции вообще существуют. Функция - это отображение n элементов из области интерпретации (n - количество аргументов функции) на один элемент этой области [13].
Затем идентифицируются значимые отношения, которые существуют между элементами области интерпретации. Отношение - это отображение n элементов из области интерпретации (n - количество аргументов отношения) на истинностное значение (т.е. на элемент из множества {истина, ложь}). В заключении значимые отношения оформляются синтаксически, т.е. при помощи аксиом.
Следующим шагом после установления области интерпретации описываемой области знаний будет выбор обозначений для представления элементов области интерпретации. Сначала подбираются обозначения для констант - a, b, c, и т.д. Значениями этих констант будут элементы из области интерпретации. Затем подбираются обозначения для каждой важной функции. Заметим, что функция сама по себе не может иметь значения. Значением может обладать только употребление функции. Функция, представленная некоторым обозначением, определяется семантически путем указания значений различных ее употреблений (т.е. указанием конкретных случаев отображения n элементов из области интерпретации на один элемент этой области). В заключение для каждого важного отношения из области интерпретации подбираются обозначения предикатов. Отношение, представленное обозначением предиката, определяется семантически путем указания истинностных значений различных конкретных случаев этого отношения (т.е. указанием того, как данное отношение отображает n элементов из области интерпретации на истинностное значение). Конкретный случай отношения представляется атомарной формулой, построенной на основе выбранных обозначений предикатов, функций и констант [13].
Интерпретация ППФ состоит из четырех типов присваивания:
Каждой константе, входящей в ППФ, приписывается некоторый элемент из области интерпретации.
Каждой переменной, входящей в ППФ, приписывается элемент из области интерпретации.
Каждому употреблению функции в ППФ приписывается элемент из области интерпретации. Множество таких присваиваний для некоторой конкретной функции определяет эту функцию семантически.
Каждой атомарной формуле, входящей в ППФ, приписывается истинностное значение. Множество таких присваиваний для некоторого конкретного отношения определяет это отношение семантически [13].
Фразовая форма логики предикатов - это способ записи формул, при котором употребляется только соединители &, v и ~. Литерал - это позитивная или негативная атомарная формула. Каждая фраза - это множество литералов, соединенных символом v. Негативные литералы размещаются в конце каждой фразы, а позитивные вначале. Фразу можно рассматривать как обобщение понятия импликация. Если А и В - атомарные формулы, то формула А>В может также быть записана как ~АvВ. Поскольку ~А - негативно, а В - позитивно, то фразовая форма будет иметь вид: Вv ~А.
Все позитивные атомарные формулы, входящие во фразу, являются альтернативными заключениями, а все негативные атомарные формулы - необходимыми условиями.
Фраза Хорна - это фраза, содержащая только один позитивный литерал. Например, фраза C ~E ~F ~G является фразой Хорна. Если воспользоваться обратной стрелкой, то эта фраза имеет вид CE,F,G [13].
Математические отношения, которые мы получили в 1 главе §3 пунктах 2 и 3, можно переписать с помощью фраз Хорна следующим образом.
Определим бинарное отношение смежности двух вершин А и В на множестве V в виде двуместного предиката дуга, где оба аргумента принадлежат домену V. Определенное нами отношение достижимости вершины А из вершины В в графе G(V,E), запишем предикатом путь с двумя аргументами, где оба аргумента принадлежат домену V.
(1).
Зададим двуместный предикат, определяющий существование гамильтоновой цепи в графе G (V,E) из вершины А в вершину В - цепь, оба аргумента которого принадлежат домену V - конечному множеству вершин.
(2)
Предикат количество, первый аргумент которого принадлежит домену 2VxV, а второй - домену N - множеству натуральных чисел, определяет количество вершин в пройденном простом пути. Предикат пр_цепь, где первые два аргумента принадлежат домену V, а третий принадлежит домену 2VxV, определяет простой путь между вершинами А и В, т.е. путь в котором каждая дуга встречается по одному разу.
Определим предикат ребро, оба аргумента которого принадлежат домену V, ставящий в соответствие каждой дуге ребро графа.
(3).
Опишем одноместный предикат цикл, первый аргумент которого принадлежит домену V, а второй - N, определяющий существование гамильтонова цикла из заданной вершины в исходном графе.
Предикат длина, определяет длину гамильтоновой цепи, первые два его аргумента принадлежат домену V, третий - домену N. Предикат вес, задает вес ребра, первые два его аргумента принадлежат домену V, третий - домену N.
Для задачи коммивояжера получаем следующее:
.
Двуместный предикат итог определяет гамильтонов цикл из заданной вершины минимального веса, первый аргумент которого принадлежит домену V, второй - домену N. Предикат минимум возвращает минимальное число из двух заданных, соответственно оба аргумента принадлежат домену N.
Для второй задачи определим бинарное отношение смежности двух вершин на множестве V в виде трехместного предиката дуга, первые два аргумента принадлежат домену V, а третий - домену N. Определенное нами отношение достижимости одной вершины из другой вершины в графе G(V,E), запишем двуместным предикатом путь, оба аргумента которого принадлежат домену V. Определение этого предиката в виде фразы Хорна будет аналогичным с фразой (1) (см. выше).
Определим одноместный предикат цикл, определяющий существование эйлерова цикла из заданной вершины, аргумент которого принадлежит домену V.
Предикат цепь определяет существование цепи из одной вершины в другую, где первые два аргумента принадлежат домену V, а третий принадлежит домену 2ExE. Предикат длина возвращает длину заданной цепи, первый аргумент, которого принадлежит домену 2ExE, а второй - домену N.
Основные средства языка логического программирования Пролог
Язык Пролог является представителем семейства языков логического программирования. При использовании данного языка основное внимание уделяется описанию объектов и связей между ними, а не разработке последовательности действий для достижения цели. Пролог-программа больше является описанием того, что нужно сделать, чем того, как это сделать.
Программирование на Прологе включает в себя следующие этапы [5]:
1) объявление фактов о объектах и отношениях между ними;
2) определение правил взаимосвязи объектов и отношений между ними;
3) формулировка вопроса об объектах и отношениях между ними.
Основными составляющими программы на Прологе являются ….
Факты - это предикат с аргументами-константами, обозначающие отношения между объектами или свойства объектов, именованные этими константами. Факты в программе считаются всегда и безусловно истинными и таким образом служат основой доказательства, происходящего при выполнении программы [14].
Правила - это хорновские фразы с одной или несколькими переменными и с заголовком. Правила имеют форму голова правила:-список подцелей, где знак ":-" читается «если», а список подцелей состоит из отдельных подцелей, разделенных запятой, читаемой как «и». Правила позволяют определить новые отношения между объектами на основе уже объявленных с помощью фактов. В качестве аргументов в предикатах правила могут использоваться константы и переменные. На переменные в правилах действуют кванторы общности, поэтому правила концентрированно и лаконично выражают конструкции логического вывода [14]. Правила в Прологе часто бывают рекурсивными, т.е. использующими себя в своем определении.
Вопрос - отправная точка логического вывода, происходящего при выполнении программы [14].
В каждой процедуре должен быть принят порядок правил, или порядок предложений. Кроме того, в теле каждого предложения должен быть определён порядок целей. Порядок правил определяет порядок поиска решений. Изменение порядка правил в процедуре приводит к перестановке ветвей в любом дереве поиска цели, использующей данную процедуру. Обход дерева поиска происходит в глубину. Поэтому перестановка ветвей дерева изменяет порядок обхода дерева и порядок нахождения решений [24].
Декларативный смысл программы определяет, является ли данная цель истинной (достижимой) и, если да, при каких значениях переменных она достигается. Для точного определения декларативного смысла нам потребуется понятие конкретизации предложения. Конкретизацией предложения С называется результат подстановки в него на место каждой переменной некоторого терма. Вариантом предложения С называется такая конкретизация С, при которой каждая переменная заменена на другую переменную.
Пусть дана некоторая программа и цель G, тогда, в соответствии с декларативной семантикой, можно утверждать, что:
цель G истинна (т.е. достижима или логически следует из программы) тогда и только тогда, когда
в программе существует предложение С, такое, что
существует такая его конкретизация I, что
(а) голова I совпадает с G и
(b) все цели в теле I истинны.
Эти определения можно распространить на вопросы следующим образом. В общем случае вопрос к Пролог-системе представляет собой список целей, разделенных запятыми. Список целей называется истинным (достижимым), если все цели в этом списке истинны (достижимы) при одинаковых конкретизациях переменных. Значения переменных получаются из наиболее общей конкретизации [3].
Процедурная семантика определяет, как пролог-система отвечает на вопросы. Ответить на вопрос - это значит удовлетворить список целей. Этого можно добиться, приписав встречающимся переменным значения таким образом, чтобы цели логически следовали из программы. Можно сказать, что процедурная семантика Пролога - это процедура вычисления списка целей с учетом заданной программы. «Вычислить цели» это значит попытаться достичь их.
Автор Братко И. [1] называет эту процедуру "Вычислить". Как показано на рисунке, входом и выходом этой процедуры являются:
входом - программа и список целей,
выходом - признак успех/неуспех и подстановка переменных.
1
Размещено на http://www.allbest.ru/
Смысл двух составляющих выхода такой:
Признак успех/неуспех принимает значение «да», если цели достижимы, и «нет» - в противном случае. Будем говорить, что «да» сигнализирует об успешном завершении и «нет» - о неуспехе.
Подстановка переменных порождается только в случае успешного завершения; в случае неуспешного подстановка отсутствует.
Чтобы вычислить список целевых утверждений
G1, G2, …, Gm
процедура вычислить делает следующее:
Если список целей пуст - завершает работу успешно.
Если список целей не пуст, продолжает работу, выполняя (описанную далее) операцию «ПРОСМОТР».
ПРОСМОТР: Просматривает предложения программы от начала к концу до обнаружения первого предложения С, такого, что голова С сопоставима с первой целью G1. Если такого предложения обнаружить не удается, то работа заканчивается неуспехом.
Если С найдено и имеет вид
H :- B1, …,Bn.
то переменные в С переименовываются, чтобы получить такой вариант С' предложения С, в котором нет общих переменных со списком G1, …, Gm. Пусть С' - это
H' :- B1', …, Bn'.
Сопоставляется G1 c H'; пусть S - результирующая конкретизация переменных. В списке целей G1, G2, …, Gm, цель G1 заменяется на список B1', …, Bn', что порождает новый список целей:
B1', …, Bn',G2, …, Gm.
(Заметим, что, если С факт, тогда n=0, и в этом случае новый список целей оказывается короче, нежели исходный; такое уменьшение списка целей может в определенных случаях превратить его в пустой список, а следовательно, - привести к успешному завершению.)
Переменные в новом списке целей заменяются новыми значениями, как это предписывает конкретизация S, что порождает еще один список целей
B1'', …, Bn'', G2', …, Gm'
Вычисляет (используя рекурсивно ту же самую процедуру) этот новый список целей. Если его вычисление завершается успешно, то и вычисление исходного списка целей тоже завершается успешно. Если же его вычисление порождает неуспех, тогда новый список целей отбрасывается и происходит возврат к просмотру программы.
Этот просмотр продолжается, начиная с предложения, непосредственно следующего за предложением С (С - предложение, использовавшееся последним) и делается попытка достичь успешного завершения с помощью другого предложения.
Всякий раз, как рекурсивный вызов процедуры вычислить приводит к неуспеху, процесс вычислений возвращается к ПРОСМОТРУ и продолжается с того предложения С, которое использовалось последним. Поскольку применение предложения С не привело к успешному завершению, пролог-система должна для продолжения вычислений попробовать альтернативное предложение. В действительности система аннулирует результаты части вычислений, приведших к неуспеху, и осуществляет возврат в ту точку (предложение С), в которой эта неуспешная ветвь начиналась. Когда процедура осуществляет возврат в некоторую точку, все конкретизации переменных, сделанные после этой точки аннулируются. Такой порядок обеспечивает систематическую проверку Пролог-системой всех возможных альтернативных путей вычисления до тех пор, пока не будет найден путь, ведущий к успеху, или же до тех пор, пока не окажется, что все пути приводят к неуспеху.
Рассмотрим, основные операторы Пролога, которые нам понадобятся для дальнейших рассуждений.
1) Для остановки механизма возвратного поиска используется предикат ! - gut ("отсечение" или "замораживание"). При этом сохраняются значения переменных, которые они получили к данному моменту [3]. Отсечение следует применять в тех случаях когда:
необходимо указать, что найдено нужное правило для целевого утверждения;
требуется немедленно прекратить доказательство согласованности конкретного целевого утверждения, не пытаясь найти для него решения (в этом случае используется конъюнкция отсечения с предикатом fail);
необходимо прекратить порождение альтернативныхрешений механизмом возврата.
Смысл механизма отсечения можно сформулировать так:
Пусть некоторая цель сопоставилась с головой предложения, содержащего отсечение. Когда в качестве цели встречается отсечение, такая цель сразу же считается успешной и при этом заставляет систему принять те альтернативы, которые были выбраны с момента активизации сопоставления до момента, когда встретилось отсечение. Все оставшиеся в этом промежутке альтернативы не рассматриваются.
2) Абстрактные типы данных (АТД) - типы данных, рассматриваемые независимо от способов их представления или реализации средствами языка программирования. АТД определяются множеством значений и совокупностью опреаций, которые могут выполняться над значениями данного типа [3]. Примерами АТД являются строки и массивы.
Список представляет собой упорядоченную последовательность данных. Его также можно представить в виде структуре, имеющей два компонента: заголовок (голова) и остаток (хвост). В частности, если список состоит из одного элемента, то ео хвост - пустой список. Таким образом, список имеет рекурсивную составную структуру данных. Рекурсивное определение выглядит так:
- пустой список является списком;
- объект, имеющий голову и хвост, является списком, если его хвост список.
Основные операции для работы сос списками - отделение головы от хвоста, конструирование нового списка из заданных головы и хвоста и проверка списка на пустоту.
3) Внутренние базы данных
Различают статистическую и динамическую внутренние базы данных. Первая представляется в программе в виде фактов (в разделе clauses). Вторая состоит из фактов, которые добавляются и удаляются в оперативной памяти во время выполнения программы (утверждения динамической базы данных формируются в виде предикатов в разделе database) [3].
В случае, если необходимо не просто получить последовательность решений какого-либо целевого утверждения, полученных из внутренней базы данных (статистической или динамической), а обработать сразу все решения как часть единой составной структуры данных, используется встроенный предикат findall. У предиката findall три аргумента: имя переменной-параметр, который нужно собрать в список; имя предиката, из которого надо собрать значения; и список значений, собранных с помощью метода поиска с возвратом.
Таким образом, процедурная семантика Пролога моделирует недетерминированный выбор редуцирующего правила с помощью последовательного поиска и механизма возврата [13]. Следовательно, Пролог для решения логических задач применяет только метод формального перебора списка подцелей.
Реализация сетевых моделей на Прологе.
В Прологе графы можно представлять различными способами. Один из них - каждое ребро записывать в виде отдельного предложения. Другой способ - весь граф представлять как один объект. В этом случае графу соответствует пара множеств - множество вершин и множество ребер. Каждое множество можно задавать при помощи списка, каждое ребро парой вершин [1]. Если каждая вершина графа соединена ребром еще, по крайней мере, с одной вершиной, то в представлении графа можно опустить множество вершин, поскольку неявным образом содержится в списке ребер. Еще один способ представления графа - связать с каждой вершиной список смежных вершин. В этом случае граф превращается в список пар, каждая из которых состоит из вершины плюс ее список смежности.
Какой из способов для представления графов более удобным, зависит от того, какие операции имеются в виду выполнять над графами. Вот типичные операции:
- найти путь между двумя заданными вершинами;
- найти подграф, обладающий некоторыми заданными свойствами.
Рассмотрим подробнее понятие списка в Прологе.
Список - это в самом общем смысле, структура, которая либо
пуста, либо
состоит из головы и хвоста, причем хвост должен быть сам списком.
Список рассматривается в Прологе как специальный частный случай двоичного дерева [1]. Для повышения наглядности программ на Прологе предусматриваются специальные средства для списковой нотации, позволяющие представлять списки в виде
[элемент1, элемент2, …]
или
[голова | хвост]
или
[элемент1, элемент2, …| остальные].
Списки можно применять для представления упорядоченных множеств, хотя и существует некоторое различие между этими понятиями: один и тот же объект может встретиться в списке несколько раз. Однако наиболее часто используемые операции над списками аналогичны операциям над множествами. Среди них
- проверка, является ли некоторый объект элементом списка, что соответствует проверке объекта на принадлежность множеству;
- конкатенация (сцепления) двух списков, что соответствует объединению множеств;
- добавление нового объекта в список или удаление некоторого объекта из него.
Реализация рассмотренных сетевых моделей на Прологе приведена ниже.
1) Программа на Прологе для задачи на нахождение гамильтонова цикла на заданном фрагменте сети:
Domains % Раздел определения типов данных
spisok=integer*
sp=symbol*
Predicates % Раздел описания заголовков предикатов
цепь (symbol, integer, sp, spisok, integer)
всп_цепь (symbol, integer, sp, sp, spisok, integer)
дуга (symbol, symbol, integer, integer)
ребро (symbol, symbol, integer, integer)
принадлежит (symbol, sp)
количество (spisok, integer, integer)
цикл (symbol, integer, sp, spisok)
итог (symbol, integer, sp, spisok)
минимум (spisok, integer)
последний (sp, symbol)
Goal % Раздел описания цели, в котором располагается целевое утверждение итог (a, I, L,Y).
Clauses % Раздел описания фактов и правил
дуга(x,v1,1,2). % факты предиката дуга()
дуга(v1,v2,2,1).
дуга(v2,v3,3,1).
дуга(v2,v3,4,3).
дуга(v3,v4,5,1).
дуга(v1,v4,6,1).
дуга(v3,v4,7,1).
дуга(v4,y,7,1).
дуга(x,y,7,1).
дуга(x,y,7,4).
итог(X,D,L,P):-findall(K, цикл(_,K,_,_),U), минимум(U,D), цикл(X,D,L,P).
цикл(X,D,L,P):-findall(K, цепь(K,_,_,_,_,_),M), количество (M,R,_), цепь(X,D,L,P,R).
цепь (X,D,L,P,R):- всп_цепь (X,D,L,[],P,R).
всп_цепь (X,D,[X,Y],K,[N],1):-ребро (X,Y,N,D), последний(K,Y).
всп_цепь(X,D,[X|L],K,[N|P],R):- ребро(X,Z,N,D1), not(принадлежит(Z,K)), R1=R-1, всп_цепь (Z,D2,L,[X|K],P,R1), D=D1+D2.
ребро(P,T,H,N):-дуга(P,T,H,N).
ребро(P,T,H,N):-дуга(T,P,H,N).
принадлежит (X,[X|_]):-!.
принадлежит (X,[_|L]):- принадлежит (X,L). % определяет принадлежность элемента списку
минимум ([X],X). % возвращает минимальный элемент списка
минимум ([X|T],M):- минимум (T,M),M<=X,!.
минимум ([X|_],X).
последний ([X],X). % возвращает последний элемент в списке
последний ([_|T],X):- последний (T,X).
количество ([ ],0,0). % определяет количество элементов в списке
количество ([X|C],D,S):- количество (C,D1,S1),D=D1+1,S=S1+X.
2) Программа на Прологе для задачи на нахождение эйлерова цикла в заданном фрагменте сети:
Domains % Раздел определения типов данных
spisok=integer*
Predicates % Раздел описания заголовков предикатов
путь (symbol, symbol, spisok)
всп_путь (symbol, symbol, spisok, spisok)
дуга (symbol, symbol, integer)
ребро (symbol, symbol, integer)
принадлежит (integer, spisok)
длина (spisok, integer)
цикл (symbol, symbol, spisok)
Goal % Раздел описания цели, в котором располагается целевое утверждение
цикл(a,a,P).
Clauses % Раздел описания фактов и правил
дуга (a,b,1). % факты предиката дуга()
дуга (b,c,2).
дуга (b,c,3).
дуга (d,e,4).
дуга (e,c,5).
дуга (e,b,6).
дуга (e,d,5).
дуга (a,e,6).
цикл(T,I,E):-findall(K,дуга(_,_,K),L),длина(L,R),путь(T,I,E),длина(E,R).
путь(X,Y,L):-всп_путь(X,Y,L,[]). % правила предиката путь()
всп_путь(X,Y,[N],P):-ребро(X,Y,N),not(принадлежит(N,P)).
всп_путь(X,Y,[N|R],P):-ребро(X,Z,N),not(принадлежит(N,P)),всп_путь(Z,Y,R,[N|P]).
ребро(P,T,H):-дуга(P,T,H). % правила предиката ребро()
ребро(P,T,H):-дуга(T,P,H).
принадлежит(X,[X|_]):-!. % определяет принадлежность элемента списку
принадлежит(X,[_|L]):-принадлежит(X,L).
длина([],0). % определяет количество элементов в списке
длина([_|B],K):-длина(B,K1),K=K1+1.
2 Разработка учебных экспертных систем с помощью логического программирования
Классификация задач по логическому программированию.
Одной из дидактических задач дисциплины "Основы ИИ", как нами было выделено выше, является знакомство с приемами логического программирования. В данном пункте проводится обзорный анализ учебно-методической литературы по логическому программированию ([1],[13],[5]).
Как отмечает автор [14], большинство задач, которые считаются логическими, сводятся к задаче нахождения пути в некотором графе - графе состояний задачи. Характерными особенностями этих задач является следующее:
1) наличие неких дискретных состояний, число которых конечно; чаще всего в этих задачах имеется начальное состояние, с которых начинается поиск;
2) определены правила перехода между состояниями;
3) для каждого состояния заданы определенные условия допустимости (оценки) этого состояния.
При анализе предметной области задачи эти состояния, правила перехода и условия допустимости должны быть выявлены, получены соответствующие обозначения и затем записаны с помощью фраз Хорна.
Таким образом, под учебной задачей логического программирования будем понимать задачу построения логической модели предметной области. При использовании языка программирования Пролог необходимо представить предметную область в виде базы данных Пролог-программы, используя соответствующие факты, правила и запрос.
Выделим ряд учебных задач, которые применяются при обучении логическому программированию: задачи на запросы к базе данных Пролог-программы; задачи на логические связи между объектами; задачи на описание базы знаний предметной области с выводом новых отношений; задачи на построение транзитивных замыканий существующих отношений; логические задачи на поиск решения; содержательные учебные задачи ИИ.
1. Задачи на запросы к базе данных Пролог-программы.
Пусть дана база знаний "Спортивные увлечения".
летний (бег).
летний (плавание).
зимний (лыжи).
зимний (коньки).
спорт (Иван, бег).
спорт (Семен, плавание).
спорт (Петр, Х):- спорт (Иван, Х), зимний(Х).
Не определяя новых правил, сформулируйте вопросы:
Какими видами спорта занимается Петр?
Существуют ли такие одинаковые виды спорта, которыми занимаются Иван и Петр?
Занимается ли Семен каким-нибудь летним видом спорта? [6]
Описать базу знаний "Отборочные соревнования", в которой даны результаты прохождения лыжниками дистанций длиной 5 км и 10 км (в минутах). Если лыжник прошел 5 км за время, не превышающее 17 минут, а 10 км - менее чем за 35 минут, то он допускается к участию в соревнованиях. Сформулируйте следующие вопросы:
Кто из лыжников пробежал дистанцию 5 км не более чем за 17 минут? Каково это время?
Кто из лыжников допущен к участию в соревнованиях?
Перечислить пары лыжников, из которых можно составить команду для участия в эстафетной гонке. В команду могут быть зачислены любые два лыжника, допущенные к участию в соревнованиях. (В ответе не должно появляться повторяющихся решений.) [6]
Описать базу знаний "Крупнейшие озера земного шара", используя информацию из таблицы?
Название |
Площадь |
Наибольшая глубина |
|
Каспийское море (Европа, Азия) |
394,3 |
980 |
|
Верхнее озеро (Сев. Америка) |
82,4 |
308 |
|
Виктория (Африка) |
68 |
80 |
|
Гурон (Сев. Америка) |
59,6 |
222 |
|
Мичиган (Сев. Америка) |
58 |
263 |
|
Танганьика (Африка) |
32,9 |
1453 |
|
Байкал (Азия) |
31,5 |
1742 |
|
Аральское море (Азия) |
66,5 |
68 |
Сформулируйте цели и ответьте на них:
Какие озера расположены в Африке и Азии?
Существует ли в Северной Америке озера, глубина которых меньше 300 метров (неглубокие), а также озера, глубина которых больше 800 метров (глубокие)?
Какие озера расположены в Европе и на каких материках глубина озер находится в пределах от 400 до 1500 метров? [6]
2. Задачи на логические связи между объектами.
Воронов, Павлов, Левицкий и Сахаров - 4 талантливых молодых человека. Один из них - танцор, другой - художник, третий - певец, а четвертый - писатель. О них известно следующее.
Воронов и Левицкий сидели в зале Консерватории в тот вечер, когда певец дебютировал в сольном концерте.
Павлов и писатель вместе позировали художнику.
Писатель написал биографическую повесть о Сахарове и собирается написать о Воронове.
Воронов никогда не слышал о Левицком.
Кто чем занимается?
Имеются два сосуда - на 3 и на 5 литров. Как отмерить с их помощью 4 литра воды? [6]
3. Задачи на описание базы знаний предметной области с выводом новых отношений.
Определить базу знаний "Транспорт" по данной схеме движения транспорта.
Определить:
1
Размещено на http://www.allbest.ru/
Можно ли доехать из города В в город Е?
В какие города можно доехать из города D?
Из каких городов можно доехать до города Е?
4) Можно ли доехать из города А в город D или в город F? [6]
Дана база знаний "Автобусы". На схеме показано, между какими населенными пунктами курсирует автобус.
1
Размещено на http://www.allbest.ru/
Если нет автобусного сообщения, то единственным транспортным средством является автомобиль. Описать отношения, позволяющие определить, каким видом транспорта можно доехать из одного населенного пункта в другой. Сформулировать вопросы и ответить на них:
На каком виде транспорта можно доехать из пункта В в пункт Г?
Можно ли доехать на автобусе из К в Л?
В какие населенные пункты придется ехать на автомобиле из пункта Б? [6]
4. Задачи на построение транзитивных замыканий существующих отношений.
Некоторая авиакомпания обеспечивает прямые рейсы между некоторыми городами, сведения о которых хранятся в программе в виде фактов (для упрощения задачи обратные рейсы исключены). Запрограммируйте рекурсивный предикат perelet, который определяет, можно ли попасть из одного города в другой (может быть, с пересадками) [3].
В районе расположено несколько сел. Есть данные о наличии дорог между ними (в одну сторону) и их длине, которые хранятся в виде фактов предиката doroga.
Напишите предикат put, определяющий, можно ли попасть из одного села в другое, и какова суммарная протяженность дороги между ними [3].
5. Логические задачи на поиск решения.
Напишите программу, которая решает следующую задачу: нарисовать конверт, не отрывая карандаша от бумаги и не проводя два раза по одной и той же линии. Результатом выполнения программы будет список пройденных вершин [14].
Задача состоит в том, чтобы такую расстановку восьми ферзей на пустой шахматной доске, в которой ни один из ферзей не находится под боем другого [1].
6. Содержательные учебные задачи ИИ
К данному разделу мы отнесли задачи, где моделируется система с различными состояниями, переход между которыми осуществляется по законам человеческой логики.
К классическим задачам такого типа относится задача "Обезьяна и банан":
Возле двери комнаты стоит обезьяна. В середине этой комнаты к потолку подвешен банан. Обезьяна голодна и хочет съесть банан, однако она не может дотянуться до него, находясь на полу. Около окна этой же комнаты на полу лежит ящик, которым обезьяна может воспользоваться. Обезьяна может предпринимать следующие действия: ходить по полу, залезать на ящик, двигать ящик (если она уже возле него) и схватить банан, если она стоит на ящике прямо под бананом. Может ли обезьяна добраться до банана?
Как системы искусственного интеллекта рассматриваются игры со стратегиями. К учебной задаче можно отнести, например, игру в "пятнашки", "крестики-нолики", шахматные задачи.
Помимо перечисленных задач, в современной учебно-методической литературе при изучении систем ИИ внимание акцентируется на экспертных системах и на принципах их построения. На наш взгляд, для студентов педагогических вузов специальности "информатика" можно совместить обучение логическому программированию и принципам построения систем ИИ на примере построения прототипа учебной экспертной системы с моделью предметной области, представленной в виде семантической сети.
Применение логического программирования для реализации экспертных систем.
Экспертные системы (ЭС) - это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей. [1]
Обобщенная структура экспертной системы представлена на рисунке 6.
1
Размещено на http://www.allbest.ru/
База знаний содержит знания, относящиеся к конкретной прикладной области, в том числе отдельные факты, правила, описывающие отношения или явления, а также возможно методы, эвристики и различные идеи, относящиеся к решению этих задач в этой прикладной области. Машина логического вывода умеет активно использовать информацию, содержащуюся в базе знаний. Интерфейс с пользователем отвечает за бесперебойный обмен информацией между пользователем и системой; он также дает пользователю возможность наблюдать за процессом решения задач, протекающим в машине логического вывода. Принято рассматривать машину вывода и интерфейс как один крупный модуль, обычно называемый оболочкой экспертной системы, или для краткости, просто оболочкой [1].
На самом деле реальные экспертные системы могут иметь более сложную структуру, однако блоки, изображенные на рисунке, непременно присутствуют в любой экспертной системе.
Рассмотрим этапы разработки прототипа учебной экспертной системы. Объем прототипа - несколько десятков правил. При разработке прототипа учебной ЭС особое значение имеют следующие этапы: структурирование или концептуализация знаний, формализация, реализация, тестирование.
При структурировании знаний выявляется структура полученных знаний о предметной области, т.е. определяются [8]:
терминология;
список основных понятий и атрибутов;
отношения между понятиями;
структура входной и выходной информации;
стратегия принятия решений и т.д.
Концептуализация знаний - разработка неформального описания знаний о предметной области в виде графа, таблицы, диаграммы или текста, который отражает основные концепции и взаимосвязи между понятиями предметной области.
На этапе формализации строится формализованное представление концепций предметной области на основе выбранного языка представления знаний. Формализация знаний - разработка базы знаний на языке, который, с одной стороны, соответствует структуре модели предметной области, а с другой - позволяет реализовать прототип системы на следующей стадии программной реализации.
Реализация - разработка программной системы, построение прототипа, включающего базу знаний, при помощи одного из способов:
программирование на традиционных языках типа Паскаль, Си и др.;
программирование на специализированных языках, применяемых в задачах ИИ: Лисп, Пролог и т.д.;
использование инструментальных средств разработки ЭС типа СПИЭС, ПИЭС:
использование "пустых" ЭС или "оболочек" типа ЭКСПЕРТ, ФИАКР и др. [8]
Тестирование - выявление ошибок в подходе и реализации прототипа. Прототип проверяется на:
удобство и адекватность интерфейсов ввода-вывода;
эффективность стратегии управления;
качество проверочных примеров;
корректность базы знаний.
При разработке ЭС на Прологе схему экспертной системы можно уточнить:
1
Размещено на http://www.allbest.ru/
Примеры построения экспертных систем на Прологе приведены в учебнике И. Братко разобран пример учебной ЭС «Животные», предназначенной для идентификации животных. В базе знаний этой системы имеются правила, определяющие принадлежность животного к какому-либо классу, виду и т.д. Разработана оболочка, интерпретирующая «если-то» - правила, которая обеспечивает выдачу объяснений типа «как» и «почему» и которая запрашивает у пользователя нужную ему информацию. На вопрос «Почему» («Почему вас интересует текущая цель?») дается объяснение в виде цепочки правил и целей, соединяющих текущую цель с исходным вопросом пользователя, находящимся в верхушке дерева вопросов. Одним из подходящих способов ответить на вопрос "как" - это представить доказательство, т.е. те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство имеет вид решающего дерева, составленного из имен правил и подцелей. В качестве объяснения типа "как" на выходе системы будет отобраться это дерево. Эта система состоит из следующих программ на Прологе:
для процедуры «рассмотреть», являющаяся основной процедурой оболочки ЭС, которая находит ответ на заданный вопрос;
для процедуры "ответ_польз", которая реализует вопросы к пользователю и ответы на вопросы "почему";
для процедуры "выдать", которая отображает окончательный результат и объяснение типа "как".
Прототип учебной экспертной системы
В качестве предметной области для учебной ЭС возьмем такую область, модель которой представляется в виде однородной семантической сети. Включим в функциональные возможности данной ЭС запросы пользователя, сводимые к поиску в графе сети гамильтонова и эйлерова циклов: определить возможность из заданной вершины (состояния, место положения и т.д.) обойти по одному разу все другие вершины или все ребра и вернуться в исходную вершину.
С точки зрения методики преподавания необходимо выбрать предметную область достаточно хорошо знакомую студентам. В качестве прототипа ЭС мы предлагаем реализовать прототип учебной ЭС «Справочная система туристической фирмы». База знаний для этой системы будет состоять из базы данных различных маршрутов между набором населенных пунктов, правил перемещения между ними и запросов: существует ли возможность путешествия по всем населенным пунктам с минимальным расстоянием и возможность проезда по всем маршрутам с возвратом в начальный пункт. Обоснование правильности вывода ЭС для пользователя состоит в выводе списка населенных пунктов в порядке посещения или списка маршрутов в порядке их прохождения.
Для разработки студентами прототипа данной ЭС предлагаем использовать:
1) модель преставления знаний предметной области в виде семантической сети;
2) логическую модель предметной области на языке предикатов 1-го порядка.
При проектировании прототипа учебной ЭС на этапе структурирования знаний представляем модель предметной области в виде семантической сети.
На этапе формализации предлагается рассмотреть алгоритмы нахождения гамильтонова и эйлерова циклов, проиллюстрировать их на сетевых моделях и записать соответствующие утверждения на языке предикатов первого порядка.
Для реализации нашей системы используем логическое программирование, в частности, язык Пролог. Так как была указана возможность совместного изучения, как технологических средств, так и принципов разработки программных систем, то в нашем случае необходимо решить методическую задачу параллельного изложения средств языка программирования Пролог и способов реализации систем логического программирования на основе сетевых моделей. В частности, возникает проблема иллюстрации решения учебных задач дисциплины «Основы ИИ» на языке программирования Пролог с помощью семантических сетей. Для решения поставленной методической задачи будем применять элементы проблемного подхода, который является одним из развивающих подходов в современном обучении.
Для тестирования системы можно воспользоваться теоремами о существовании эйлерова и гамильтонова циклов (См. П.2, П.3. §3 глава1).
§3. Организация обучения студентов решению задач теории графов на Прологе
Характеристика проблемного обучения.
Рассмотрим основные понятия и особенности, относящиеся к теории проблемного обучения.
Проблемное обучение представляет собой систему приемов, обеспечивающих целенаправленные действия педагога по организации включения механизмов мышления и поведения студентов путем создания проблемных ситуаций. В процессе проблемного обучения преподаватель не сообщает готовые знания (информацию), а ставит перед студентами проблему и путем пробуждения интереса к ней вызывает у них желание найти средство для ее разрешения. В данном случае речь идет не о решении проблем, стоящих перед наукой, а о характере передачи (изложения) известной учебной информации, хотя не исключается постановка и обсуждение вопросов, не разработанных наукой и не решенных на практике.
Важнейшей чертой содержательного аспекта проблемного обучения является отражение объективных противоречий, закономерно возникающих в процессе научного познания, учебной или другой деятельности, которые и есть источник движения и развития [7].
Психологический механизм происходящих процессов при проблемном обучении следующий: сталкиваясь с противоречивой, новой, непонятной проблемой («проблема - сложный теоретический или практический вопрос, содержащий в себе скрытое противоречие, вызывающий разные, порой противоположные позиции при его решении»), у человека возникает состояние недоумения, удивления, возникает вопрос: в чем суть? Далее мыслительный процесс происходит по схеме: выдвижение гипотез, их обоснование и проверка. И человек либо самостоятельно осуществляет мыслительный поиск, открытие неизвестного, либо с помощью преподавателя [20].
Проблемное обучение осуществляется в трех основных формах: а) проблемного изложения материала преподавателем в лекциях (так называемые проблемные лекции); б) частично-поисковой деятельности студентов при участии преподавателя во время проведения семинарских и лабораторных занятий; в) самостоятельного исследования и решения проблемной ситуации, осуществляемого студентами под руководством преподавателя при написании рефератов, курсовых работ, дипломных проектов, а также при выполнении студентами исследовательской работы в научных кружках, в отраслевых лабораториях [22].
Ключевым понятием проблемного обучения является "проблемная ситуация", которая создается преподавателем с учебной целью. Проблемная ситуация - это психологическое состояние затруднения, невозможность объяснить факт или решить задачу с опорой на имеющиеся знания [18]. Она включает сложный теоретический или практический вопрос, требующий изучения, расширения, исследования в сочетании с определенными условиями и обстоятельствами, создающими ту или иную обстановку (ситуацию). Уровни проблемного обучения зависят от содержания учебного материала (наличие возможности создать проблемные ситуации различной степени трудности) и типа самостоятельных действий студента. По этим признакам специалисты правомерно выделяют четыре проблемности: 1) уровень, обусловливающий репродуктивную деятельность; 2) уровень, обеспечивающий применение прежних знаний в новой ситуации; 3) репродуктивно-поисковый уровень; 4) творческий уровень [22].
Примерами проблемных ситуаций, в основу которых положены противоречия, характерные для познавательного процесса, могут служить:
проблемная ситуация как следствие противоречий между имеющимися знаниями и новыми для учащихся фактами;
понимание научной важности проблемы и отсутствие теоретической базы для ее решения;
практически доступный результат и отсутствие теоретического обоснования;
противоречие между теоретически возможным способом решения и его практической нецелесообразностью;
противоречие между большим количеством фактических данных и отсутствием метода их обработки и анализа и т.д.
Все указанные противоречия возникают из-за дисбаланса между теоретической и практической информацией, избытком одной и недостатком другой, или наоборот.
Проблемная ситуация на основе анализа преобразуется в проблемную задачу. Проблемная задача ставит вопрос или вопросы: «Как разрешить это противоречие? Чем это объяснить?» Серия проблемных вопросов трансформирует проблемную задачу в модель поисков решений, где рассматриваются различные пути, средства и методы решения. В классификации проблемных задач выделяют задачи с неопределенностью условий, с избыточными, противоречивыми, частично неверными данными.
Методические указания по обучению решению задач теории графов.
Одним из методов обучения решению сложных задач является ее разбиение на более простые подзадачи; важным моментом является определение способа разбиения задач по сложности. Заметим, что в разработке реальных программных систем применяются структурные методы «сверху-вниз» и «снизу-вверх» [14]; последний из них означает постепенное укрупнение разрабатываемой системы. Таким образом, при обучении программированию естественно разбить построение исходной системы на ряд этапов, на каждом из которых решается более сложная относительно программирования задача. Конечный этап - построение всей системы.
Подобные документы
Понятие искусственного интеллекта как свойства автоматических систем брать на себя отдельные функции интеллекта человека. Экспертные системы в области медицины. Различные подходы к построению систем искусственного интеллекта. Создание нейронных сетей.
презентация [3,0 M], добавлен 28.05.2015История создания и основные направления в моделировании искусственного интеллекта. Проблемы обучения зрительному восприятию и распознаванию. Разработка элементов интеллекта роботов. Исследования в области нейронных сетей. Принцип обратной связи Винера.
реферат [45,1 K], добавлен 20.11.2009Сущность и проблемы определения искусственного интеллекта, его основных задач и функций. Философские проблемы создания искусственного интеллекта и обеспечения безопасности человека при работе с роботом. Выбор пути создания искусственного интеллекта.
контрольная работа [27,9 K], добавлен 07.12.2009Эволюция систем искусственного интеллекта. Направления развития систем искусственного интеллекта. Представление знаний - основная проблема систем искусственного интеллекта. Что такое функция принадлежности и где она используется?
реферат [49,0 K], добавлен 19.05.2006Области человеческой деятельности, в которых может применяться искусственный интеллект. Решение проблем искусственного интеллекта в компьютерных науках с применением проектирования баз знаний и экспертных систем. Автоматическое доказательство теорем.
курсовая работа [41,3 K], добавлен 29.08.2013Понятие искусственного интеллекта и интеллектуальной системы. Этапы развития интеллектуальных систем. Модели представления знаний, процедурный (алгоритмический) и декларативный способы их формализации. Построение концептуальной модели предметной области.
презентация [80,5 K], добавлен 29.10.2013Понятие искусственного интеллекта в робототехнике и мехатронике. Структура и функции интеллектуальной системы управления. Классификация и типы знаний, представление их с помощью логики предикатов. Суть семантических сетей, фреймовое представление знаний.
курс лекций [1,1 M], добавлен 14.01.2011Искусственный интеллект – научное направление, связанное с машинным моделированием человеческих интеллектуальных функций. Черты искусственного интеллекта Развитие искусственного интеллекта, перспективные направления в его исследовании и моделировании.
реферат [70,7 K], добавлен 18.11.2010Исторический обзор развития работ в области искусственного интеллекта. Создание алгоритмического и программного обеспечения вычислительных машин, позволяющего решать интеллектуальные задачи не хуже человека. От логических игр до медицинской диагностики.
реферат [29,1 K], добавлен 26.10.2009Современные разработки в области искусственного интеллекта: составление расписаний, принципы автономного планирования и управления, диагностика, понимание естественного языка, ведение игр, автономное управление, робототехника. Направления исследований.
реферат [24,0 K], добавлен 11.03.2014