Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы по СИИ

.doc
Скачиваний:
39
Добавлен:
02.05.2014
Размер:
165.38 Кб
Скачать

21. Игры. Минимаксные методы. Альфа-бета алгоритм.

Под игрой понимают поиск в условиях противодействия. 2 противника, ходы делаются поочередно в условиях полной определенности. Изучает теория игр. В отличие от простых задач поиска, решение находится очень трудно. Например, в шахматах дерево поиска ~10^154 узлов. Дерево игры – определяется возможными ходами противников. Т.к. ходы противников делаются поочередно, в дереве «слои» ходов разных противников перемежаются.

В игре есть:

1) функция определения преемника – возвращает список пар «допустимых ход, состояние»;

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

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

Альфа-бета отсечение позволяет не рассматривать те вершины, для которых заранее известно, что они не оптимальны. Значение 7 в ветви «7» больше, поэтому противник пойдет по ветви 5 (ему нужен минимум). Поэтому ветвь «7» можно исключить из рассмотрения. Аналогично, значение 3 меньше, чем 5, а нам нужен максимум. Поэтому ветвь «3» можно исключить.

22. Генетические алгоритмы. Основные принципы. Применение.

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

0) Определение начальной популяции. Популяция – набор способов решения задачи (особей).

1) Определение функции полезности для каждой особи.

2) Селекция.

3) Мутация и/или скрещивание (кроссовер).

4) Возврат к 1) или окончание по некоторому условию.

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

1) пропорциональный (отношение целое(ф.п./ф.п.средн) для особи – сколько раз участвует, если <1 то с такой вероятностью участвует);

2) турнирный (N раз проводится соревнование по несколько особей, выбираются победители);

3) усечения (N особей, у которых ф.п. лучшая);

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

Скрещивание – две особи делятся одинаково на две части. Затем пара одинаковых частей у особей обменивается.

Мутация – произвольное изменение особи.

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

К каким задачам не нужно применять эвристические алгоритмы:

1) Если варианты немногочисленны (использовать перебор)

2) Решение может быть достигнуто методом спуска

3) Известно конкретное эвристическое решение.

23. Нейронные сети. Основные компоненты.

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

Нейронная сеть состоит из нейронов и связей между ними (синаптических связей).

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

Соединительная связь между нейронами i и j характеризуется весовым коэффициентом (передачи) Wij. Состояние нейрона с индексом j определяется суммой по i: NETj = Σ Xi*Wij, где Xi – выходы предшествующих нейронов. Выход нейрона Xj определяется его функцией активации Gj(NETj) и передается далее. Весовые коэффициенты играют важнейшую роль при обучении сети.

Функция активации нейрона чаще бывают двух типов: скачкообразная (в некоторой точке скачком изменяется от -1 до 1) или сигмоидальная = 1/(1 + exp(NET)) – ((выглядит наподобие синуса от –π/2 до π/2)).

24. Обучение нейронной сети.

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

Процесс обучения проходит так:

0) весовые коэффициенты устанавливаются случайным образом

1) на вход НС подается обучающий образец, на выходе получается результат;

2) если результат нас удовлетворяет, процесс обучения окончен, иначе переход к шагу 3;

3) некоторые весовые коэффициенты слегка меняются (случайным образом или по специальной функции);

4) переход к шагу 1.

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

Обучение НС может вестись «с учителем» – обучение ведется по примерам или «без учителя» – сеть самообучается с помощью специальных функций.

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

25*. Решение задач классификации с помощью нейронных сетей.

Классификация – это отнесение образца к определенному классу. В отличие от кластеризации, рамки каждого класса четко или нечетко, но определены. Классификация образцов – одна из задач, решаемых нейронными сетями.

Например, если нужно классифицировать самолеты:

если Вес > 0.8 & Скорость < 0.55 то Бомбардировщик

если Вес < 0.9 & Скорость > 0.25 то Истребитель

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

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

26*. Решение задач кластеризации с помощью нейронных сетей.

27. Ассоциативные сети.

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

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

1. Входной образец задает начальное состояние элементов сети.

2. Случайным образом выбирается элемент для обновления.

3. Выбранный элемент получает сигналы от других.

4. Переход к 2, пока не будет достигнуто устойчивое состояние (т.е. сеть рекуррентна).

Функция активации – sgn, т.е значение на выходе каждого нейрона – знак его состояния sgn(NET). Матрица коэффициентов передачи связей вычисляется как трансп(X)*X, где X – вектор-образец, который нужно запомнить (правильный). На диагонали матрицы следует поставить нули, т.к. сам с собой элемент не связывается.

28. Логические программы. Основные конструкции.

Логическая программа решает задачи, в которых используются понятия математической логики. Используются декларативные (описательные) языки программирования, в программы можно добавлять новые предложения: факты, правила, вопросы. Основная конструкция – предикат – определяет свойство для одного или нескольких объектов:

родитель(петя, вася).

Это был факт – конкретный предикат над конкретными константами. Правило определяет новый предикат на основе существующих, используя переменные:

дедушка(X, Y) :- родитель(X, Z), родитель(Z, Y).

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

предок(X, Y) :- родитель(X, Y).

предок(X, Y) :- родитель(X, Z), предок(Z, Y)

Запятая понимается как конъюнкция «И», точка с запятой – дизъюнкция «ИЛИ». После задания вопроса (в ходе вычисления) переменные конкретизуются (c помощью операции сопоставления):

?- родитель(петя, X).

yes X =вася

29. Декларативный и процедурный смысл Пролог-программы.

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

Например, если записано:

P :- Q.

P :- S, T.

Декларативный смысл: P истинно, если истинно Q, или S и T.

Процедурный смысл: для вычисления P нужно вычислить Q, а если значение не определено, вычислить S, затем ещё T.

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

30. Списки. Основные операции над списками.

Список – это структура данных, которая либо пуста, либо состоит из головы (это первый элемент) и хвоста (оставшиеся). Список представляется перечислением элементов в квадратных скобках через запятую. Элемент списка тоже может быть списком. Операция [X|Y] в Прологе разделяет список на эти две части:

[a,b,c,d] => [X|Y] => X=a; Y=[b,c,d]

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

1. Принадлежность. Первый параметр – элемент, который нужно проверить, второй – список. Результат – yes/no.

принадлежит(X, [X|L]).

принадлежит(X, [Z|L]) :- принадлежит(X, L).

2. Конкатенация (сцепление). 1, 2 параметр – списки, 3 параметр – результат – их соединение.

конк([], L, L).

конк([X|L1], L2, [X|L3]) :- конк(L1, L2, L3).

3. Добавление. 1 параметр – элемент, 2 – список, 3 – результат – список с добавленным элементом (в начало списка).

добавить(X, L, [X|L]).

4. Удаление. 1 параметр – элемент, 2 – список, 3 – результат – список без элемента X.

удалить(X, [X|L], L).

удалить(X, [Y|L], [Y|L1]) :- удалить(X, L, L1).