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

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

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

Доказательство: Действительно, во-первых, из-за существования «nо-ор» -действий, факт f однажды появившись на некотором ярусе фактов, будет иметь место во всех последующих ярусах фактов. Во-вторых, множество фактов, которые могут быть созданы STRIPS-правилами конечно. Следовательно, должен существовать такой ярус фактов Q, содержащий факты, которые будут иметь место во всех последующих ярусах… Читать ещё >

Разработка медицинского автоматизированного манипулятора (реферат, курсовая, диплом, контрольная)

1. Исследовательский раздел

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

1.2 Анализ методов интеллектуального планирования

1.2.1 Хронология подходов интеллектуального планирования при классических допущениях

1.2.2 Планирование как доказательство теорем

1.2.3 Поиск в пространстве состояний

12.4 Поиск в пространстве планов

1.2.5 Планирование как задача удовлетворения ограничений

1.3 Постановка задачи

2. Специальный раздел

2.1 Архитектура комплекса инструментальных средств управления роботизированным комплексом

2.1.1 Архитектура инструментальных программных средств

2.1.2 Средства представления знаний

2.1.3 Средства моделирования целенаправленного поведения

2.2. Разработка алгоритмов планирования

2.2.1 Описание задачи планирования

2.2.2 Взаимовлияния действий: конфликты и согласия

2.2.3 Минимальные планы бесполезные действия

2.2.4 Планирование на основе преобразования взаимовлияний

2.2.5 Планирование на основе полного разрешения конфликтов

2.2.6 Планирование за конечное время

2.2.7 Эффективность алгоритма TCRPA

2.3 Требования к интерфейсу

2.3.1 Интерфейс системы

2.3.2 Входные и выходные данные

3. Технологический раздел

3.1 Информационное обеспечение

3.1.1 Представление данных

3.1.2 Требования к информационному обеспечению

3.2 Программное обеспечение

3.2.1 Требования к программному обеспечению

3.2.2 Выбор языка программирования

3.3. Техническое обеспечение

4. Безопасность жизнедеятельности

4.1 Анализ вредных факторов при работе на клавиатуре ПЭВМ

4.2 Разработка мероприятий обеспечивающих снижение вредных факторов воздействующих на запястные каналы рук

4.2.1 Эргономика клавиатуры

4.2.2 Рациональная работа на клавиатуре

4.2.3 Рациональный режим труда и отдыха

4.2.4 Комплекс упражнений

4.3 Экологическая оценка материалов используемых в компьютерной технике (германий, платина, палладий, гадолиний, галий)

4.3.1 Экологическая оценка германия

4.3.2 Экологическая оценка галия и гадолиния

4.3.3 Экологическая оценка платины и палладия

5. Организационно экономический раздел

5.1 Планирование разработки программного продукта с построением графика

5.1.1 Определение трудоемкости и продолжительности работ по созданию ПП

5.1.2 Построение ленточного графика проведения исследования

5.2 Расчет сметы затрат на разработку программного продукта

5.3 Расчет технико-экономических показателей и эффективности использования программного продукта

5.3.1 Определение трудоемкости обработки информации по базовому и проектному вариантам

5.3.2 Расчет капитальных вложений

5.3.3 Расчет годовых текущих затрат

5.3.4 Расчет показателей экономической эффективности Заключение Список использованных источников

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

В исследовательском разделе проводится анализ методов интеллектуального планирования. Эти методы рассматривают различные подходы к системам планирования целью которых является выполнение определённой задачи.

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

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

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

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

1. Исследовательский раздел

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

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

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

В задаче планирования можно выделить две фундаментальные составляющие — среда и агент:

1) Среда. Для построения плана и управления его выполнением необходимо построить формальное описание (модель) среды. Основные

способы, используемые для описания среды, базируются на таких методах

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

семантические сети, фреймовые структуры.

2) Агент — аппаратная или программная система, обладающая следующими свойствами:

автономность — способность работать без внешнего управляющего воздействия;

реактивность — возможность воспринимать среду, реагировать на ее изменения;

активность — способность ставить цели и инициативно действовать для достижения поставленной цели;

коммуникативность — способность взаимодействовать с другими агентами (или людьми).

Примером интеллектуального агента является софтбот (программный

робот) — система, взаимодействующая с компьютерной средой

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

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

Изменяется ли среда только в результате действий агента или вне зависимости от них;

Является ли состояние среды полностью или частично известным;

Достаточно ли датчиков агента для того, чтобы получить состояние среды;

Оказывают ли действия агента детерминированное или же

стохастическое воздействие на состояние среды.

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

Трудность разработки эффективного алгоритма планирования объясняется вычислительной сложностью задачи планирования, которая относится к классу PSPACE-полных задач. Более подробно об этом сказано в разделе 1.2.4.

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

1.2 Анализ методов интеллектуального планирования.

1.2.1 Хронология подходов интеллектуального планирования при классических допущениях

На рисунке 1. представлена хронология подходов к решению задачи интеллектуального планирования при классических допущениях.

Рисунок 1 — Хронология подходов классического планирования Начало исследованиям в области планирования положено работами [26,41,40, 25], в которых планирование рассматривалось как доказательство теорем.

Системам на основе доказательства теорем был присущ ряд недостатков. Наиболее существенными из них являлись: 1) крайне низкая производительность, 2) проблема фрейма.

Эти недостатки привели к созданию подходов, основанных на поиске в пространстве состояний [24, 49, 38,16].

Алгоритмы на основе поиска в пространстве состояний в некоторых случаях оказались негибкими, и в новом поколении методов задача планирования была сформулирована как поиск в пространстве частично-упорядоченных планов [20, 22, 34, 42].

Одновременно с развитием идеи частичных планов развивалась идея иерархического планирования [47, 46, 55], которое подразумевает создание планировщиком иерархии абстракций (подцелей). Это упрощает процедуру планирования — вначале создается план в общих чертах, затем выполняется детализация — спуск по иерархии. Это позволяет сосредочить вычислительные мощности на решении первостепенных задач. Иерархическое планирование также интересно тем, что лишь на основе этого подхода создано большинство реально работающих систем [51, 54].

Иерархическое планирование возможно как при поиске плана в пространстве состояний [46], так и при поиске планов в пространстве планов.

В начале 90-х годов, в связи с появлением высокопроизводительных алгоритмов решения задачи удовлетворения ограничений (CSP-задача), задачи проверки истинности в пропозициональной логике (SAT-задача), стала популярной постановка задачи планирования как CSP-задачи и как SAT-задачи. Это позволило значительно повысить скорость синтеза планов. Одновременно с этим появились работы, в которых задача планирования рассматривалась как задача целочисленного линейного программирования (ILP-задача) или как задача построения бинарных диаграмм решений (BDD-задача) [48, 21].

Начиная с 1998 года, стали появляться первые планировщики, использующие эвристики для поиска плана [18, 27, 30, 44]. Конечно же, использование эвристик для решения задач не является свежей идеей. Но лишь недавно появились механизмы автоматизированного извлечения эвристик из описания домена планирования. В значительной степени, этому способствовало выделение некоторых свойств структур, используемых алгоритмами Graphplan и Satplan.

В разделах 1.2.3−1.2.6 будут подробнее рассмотрены некоторые подходы к решению задачи планирования при классических допущениях на примерах работы конкретных алгоритмов.

1.2.2 Планирование как доказательство теорем

Одним из примеров системы доказательства теорем, использовавшейся для решения задачи планирования, является система QA3.

В системе QA3 одно множество утверждений использовалось для описания начального состояния, а другое — для описания эффектов действий. Чтобы следить за тем, какие факты являются истинными и в каком состоянии, в каждый предикат включаются переменные, отвечающие состоянию. Целевое условие описывалось формулой с переменной, связанной квантором существования.

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

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

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

1.2.3 Поиск в пространстве состояний

Первым планировщиком, осуществляющим планирование в пространстве состояний, является STRIPS (STanforci Research Institute Problem Solver).

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

Идея алгоритма STRIPS заимствована из системы GPS (General Problem Solver), разработанной для доказательства теорем. Метод, использованный в GPS, назывался «анализ средств и целей» (Cneans-ends analysis). Он подразумевает рассмотрение тех действий в текущем состоянии, которые имеют отношение к цели. Однако при таком подходе возникает следующая проблема: применять ли действия связанные с целью сразу же, как только они найдены или же приостановить применение действия пока не будут найдены все действия имеющие отношение к цели. STRIPS применяет действия сразу, достигая каждой цели по отдельности.

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

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

Рассмотрим постановку задачи планирования при классических допущениях в терминах STRIPS.

Пусть L — язык исчисления предикатов 1-го порядка (ИППП). Факт f некоторая правильно построенная замкнутая формула L. Состояние s — некоторое множество фактов.

По сути, состояние s — это эрбрановская интерпретация множества фактов. Таким образом, каждый факт из s выполним или невыполним в s, в соответствии с обычным определением понятия выполнимости в ИППП.

Неформально, состояние представляет модель среды, в которой действует агент.

Приведём пример описания среды в терминах STRIPS:

s = {ATR (a), AT (B, b), АТ (С, с), uxy ((AT (u, x) (x у))? AT (u, y)) }

Здесь, ATR (a) означает, что «робот находится в комнате а», АТ (В, Ь) -" ящик В находится в комнате b", АТ (С, с) — «ящик С находится в комнате с», последняя сложная формула — «один объект не может находиться в разных местах», х, у, и — переменные в области значений, охватывающей доступное множество объектов. Имена конкретных объектов из этого множества: 'а', b', 'с' - соответственно 'комната а', 'комната b', 'комната с'; 'А', 'В', 'Ссоответственно 'ящик А',' ящик В', 'ящик С.

Действия агента описываются с помощью правил.

Правило R-это, где С — предусловие правила, Асписок добавлений, D — список удалений.

Предусловие С описывает множество фактов, которые должны быть выполнимы в состоянии s перед применением правила R. Список удалений D описывает множество фактов удаляемых из s при применении правила R. Список добавлений, А описывает множество фактов, добавляемых в s при применении правила R.

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

Во-первых, при описании правила R затруднительно или невозможно явно выразить все удаляемые факты в различных случаях применения R. Поэтому в STRIPS принято такое ограничение, что в списке удалений выражаются лишь атомарные факты. При этом после применения правила контролируется выполнимость сложных фактов из s, которые содержат в своём описании удалённые атомарные формулы. Однако, как показано в это не уберегло STRIPS от некорректностей. Оказывается, для списка добавлений, А также необходимо было ввести подобное ограничение. Вместе с тем, в предусловии сложные факты могут фигурировать.

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

Для обхода подобных трудностей, при описании STRIPS-задачи планирования общепринято использовать лишь элементарные термы без функциональных символов.

Пример правила.

Имя правила: Push (х, у, z);

Предусловие: C® = {ATR (у), АТ (х, у)};

Список добавлений: A® = {ATR (у), АТ (х, у)};

Список удалений: D® = {ATR (z), АТ (х, z)};

В приведённом примере, STRIPS-правило Push (х, у, z) описывает действие робота по перемещению ящика х из комнаты у в комнату z. Здесь, х, у, z — переменные.

Выполнение агентом действия сводится к применению правила. Применение правила модифицирует состояние s. Дадим формальное определение применения правила STRIPS.

Правило Rприменимо в состоянии s, если С выполнимо в s, где С — предусловие правила R, — подстановка на место каждой переменной в правиле R некоторых констант.

Применение правила R преобразует состояние s в s следующим образом: s' = (s-(D®))(A®)).

Это преобразование обозначается так: S S. можно видеть использование STRIPS-допущения для решения проблемы фрейма.

STRIPS-допущение при применении некоторого правила R к состоянию s выполнимость факта fs изменяется, только если факт f описан либо в списке удалений D®, либо в списке добавлений A®.

Технически, при проверке применимости некоторого правила R, STRIPS выполняет полную подстановку на место всех переменных некоторых констант. Возможны различные варианты подстановок. Некоторые варианты подстановки могут давать примеры правил, применимые (или же неприменимые) в состоянии s. Однако, как подметили авторы STRIPS [24], в алгоритм STRIPS можно внести незначительные модификации для применения не полностью означенных правил. В этом случае, в состоянии S появились бы факты с переменными в описании. Как будет видно далее, неполная подстановка активно используется планировщиками в пространстве планов. Соответствующее свойство этих планировщиков получило название малого связывания (least commitment).

Дадим постановку задачи STRIPS-планирования.

Будем называть доменом планирования Р = <, R>, где , — начальное состояние, R — конечное множество правил.

Будем называть задачей планирования Т = <�Р, G>, где Gописание целевого факта агента, или просто цель.

Решение задачи планирования Т заключается в нахождении плана, который достигает цели G.

План Planэто последовательность состояний, …, sn, последовательность правил

…,, и последовательность подстановок ,…,, такая что, G выполнима в sn. Длина плана Plan равна n.

Plan:

Опишем сам алгоритм STRIPS (Рисунок 2).

Изначально на вход алгоритма STRIPS подаётся множество правил R, начальное состояние So, цель G.

Будем полагать, что в множестве R. все правила полностью конкретизированы.

Рисунок 2 — Алгоритм STRIPS

Вначале в стек целей помещается главная цель G.

Если цель не является простой, т. е. содержит конъюнкцию литералов, то система STRIPS добавляет в стек в некотором порядке каждый из литералов составной цели (п. 1.1). Когда верхняя цель стока является однолитераьной, система ищет действие (п. 1.2), которое содержит в списке добавлений литерал, сопоставимый с этой целью. Если такое действие не применимо к текущему состоянию, тогда его предусловие помещается в стек целей, иначе действие применяется к текущему состоянию (п. 1.5.) и помещается в план (plan). Если верхняя цель в стеке соответствует текущему состоянию, то она удаляется из стека. Алгоритм STRIPS завершается, когда стек пусть.

Существуют задачи, для которых STRIPS либо не может построить план, либо находит не минимальный план.

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

Впервые некорректность STRIPS 'a была вскрыта в 1973 году Аленом Брауном в Массачусетском технологическом институте. Браун попытался решить задачу, рассматриваемую в этом разделе на планировщике HACKER. HACKER был создан Джеральдом Суссманом на основе планировщика STRIPS, поэтому задача получила название аномалия Суссмана (Sussman Anomaly).

Рассмотрим аномалию Суссмана.

Дано:

Объекты:

3 кубика — А, В, С.

Состояние описывается предикатами:

ontable (х) — кубик х на столе,

clear (х) — над кубиком х пусто,

handempty — рука агента пуста,

holding (х) — рука агента держит кубик х,

on (х, у) — кубик х находится на кубике у.

х, упеременные.

Правила:

Rl: pickup (x) — поднять кубик со стола С (Rl): ontable (х) & clear (х) handempty

A (Rl): holding (х)

D (Rl): ontable (х), clear (х), handempty R2: putdown (x) — опустить кубик на стол С (R2): holding (х)

A (R2): ontable (х), clear (х), handempty

D (R2): holding (х)

R3: stack (х, у) — положить кубик на другой кубик

C (R3): holding (х) & clear (у)

A (R3): handempty, on (x, y), clear (x)

D (R3): holding (x), clear (y)

R4: unstack (x, y) — снять кубик с другою кубика

C (R4): handempty & on (x, y) & clear (x)

A (R4): holding (x), clear (y)

D (R4): handempty, on (x, y), clear (x)

Начальное состояние s0 и цель G изображены на рис. 3.

Таким образом, цель G= {On (А, В) & On (В, С)}.

Поскольку цель G является составной, то STRIPS расщепляет её на отдельные компоненты — On (А, В) и On (В, С), которые помещаются в стек и удовлетворяются по очереди.

Рисунок 3 — Аномалия Суссмана Положим, что On (А, В) наверху стека, тогда планировщик находит следующую последовательность правил для удовлетворения On (А, В):

UNSTACK (C, A), PUTDOWN©, PICKUP (A), STACK (A, B).

Применяет найденную последовательность к состоянию So. Получается ситуация, изображённая на рис. 4, в которой On (А, В) выполнима. Цель On (А, В) удаляется из стека целей. On (А.В) удовлетворено.

Далее, из ситуации на рисунке 4, удовлетворяется следующая цель в стеке — On (В, С). В результате имеем: UNSTACK (C, A), PUTDOWN©, PICKUP (A), STACK (A, B), UNSTACK (A.B). PUTDOWN (A) PICKUP (B), STACK (B.C).

Рисунок 4 — Удовлетворение первой цели Применяем последовательность подчёркнутых правил. И, получаем ситуацию на рисунке 5. Цель On (В, С) удовлетворена и удаляется из стека. Однако цель Оn (А, В), удовлетворённая на предыдущем этапе, перестает быть выполнимой.

И, поэтому, теперь планировщик пытается из ситуации на рисунке 5 удовлетворить On (А, В). Это приводит к добавлению ещё двух правил к имеющейся последовательности.

Рисунок 5 — Удовлетворение второй цели В результате получаем план:

UNSTACK (C, A), PUTDOWN©,

PICKUP (A), STACK (A, B), UNSTACK (A, B), PUTDOWN (A), PICKUP (B), STACK (B, C), PICKUP (A), STACK (А.В) Подчёркнутые правила применяются. Цель On (А, В) & On (В, С) достигается. План построен.

Однако существует другой план, содержащий меньше действий:

UNSTACK (C, A), PUTDOWN©, PICKUP (B), STACK (B, C), PICKUP (A), STACK (A, B)

Рассмотрим вычислительную сложность задачи STRIPS-планирования.

Описание задачи классического планирования в терминах STRIPS допускается любым планировщиком. Поэтому рассмотрим вычислительную сложность задачи STRIPS-планирования [23,17, 22].

Далее будем рассматривать случай разрешимой задачи планирования, вычислительная сложность которой (таблица 1), варьируется от постоянного времени до EXPSPACE-полноты в зависимости от ограничений, накладываемых на язык домена, планирования Р.

Таблица 1 — Вычислительная сложность задачи планирования

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

не априорно

есть

есть/нет

ExpSpase-полна

NExpTime-полна

нет

есть

NExpTime-полна

NExpTime-полна

нет

ExpSpase-полна

NExpTime-полна

нет

Pspace-полна

PSpace-полна

априорно

есть

есть/нет

Pspace

PSpace

нет

есть

NP

NP

нет

P

NP

нет

NLogSpace

NP

Все предикаты 0-местные

не априорно

есть

есть/нет

PSpace-полна

PSpace-полна

нет

есть

NP-полна

NP-полна

нет

P

NP-полна

нет

NLogSpace-полна

NP-полна

априорно

есть/нет

есть/нет

постоянное время

постоянное время

Примечания:

1)Действия имеют не более чем одно предусловие.

2) Для некоторых множеств .

Пояснения к таблице 1:

в графе «ограничения языка» описаны ограничения, накладываемые на язык L домена планирования Р;

в графе «как заданы действия» — «априорно» означает, что множество R в задаче планирования Т фиксировано, а параметрами являются s0 и G;

в графе «существование плана» представлена вычислительная сложность следующей задачи: «Существует ли для задачи планирования Т= 0, R, G> план, который достигает цели G?» ;

в графе «существование плана длиной k» представлена вычислительная сложность следующей задачи: «Существует ли для задачи планирования Т= < s0, R, G> и заданного целого числа к, план длиной меньшей либо равной к, который достигает цели G?»

Заметим, что задача «существование минимального по длине плана», как минимум, равна по сложности «задаче существовании плана длиной k» .

Рассмотрим, каким образом входные параметры задачи планирования влияют на её сложность.

Если нет никаких ограничений на описание домена планирования Р, тогда любое конкретизированное действие может появиться несколько раз в плане. Количество конкретизированных действий экспоненциально. Размер каждого состояния в худшем случае является экспоненциальным. Таким образом, пространство состояний в котором необходимо осуществить поиск также экспоненциально. Это приводит к тому что, задача «существование плана» EXPSPASE-полна (строка 1).

(2) Если все действия имеют пустой список удалений (строка 2), тогда каждый факт, добавленный в состояние, остаётся истинным при последующих преобразованиях. Следовательно, нет необходимости использовать одно и то же действие дважды в одном плане. А поскольку, число полностью конкретизированных действий экспоненциальной длины. Таким образом, сложность планирования снижается до NEXPTIME-полноты.

Если дополнительно к ограничениям в пункте (2) добавить ограничения на предусловия, так чтобы они не содержали негативных атомов (строка 3), тогда порядок действий в плане не имеет значения. Это снижает сложность задачи «существование плана» до EXPTIME-полноты. Однако, для задачи «существование плана k» сложность не снижается и остается NEXPTIME-полной (строка 1), так как из-за константы k приходится перебирать всё множество последовательностей длины к.

Если предусловие действия содержит не более одного литерала (строки 4, 8, 12), тогда использование техники обратного поиска позволяет снизить сложность планирования, так как количество подцелей в этом случае не увеличивается. В этом случае сложность варьируется от NLOGSPACE до PSPACE-полноты.

Все соображения, изложенные в пунктах 1−4 также справедливы для случая ограничения языка домена планирования Р нульместными предикатами (строки 9−13). Кроме того, заметим, что для этого случая, мощность |R|, а также размер любого состояния s, снижается с экспоненциального до полиномиального. Естественно, что планирование в этом случае существенно легче, чем в случае допущения k-местных предикатов. В общем случае, снижение сложности планирования можно добиться за счёт ограничения местности предиката некоторой постоянной j. При этом нульместное ограничение соответствует случаю, когда j=0.

(6) Когда множество действий R задано априорно, то местность

предикатов и количество переменных в каждом действии постоянно. В этом

случае сложность планирования снижается и варьируется в пределах от const до

PSPACE-полноты (строки 5,6.7,8,13).

Необходимость описания и решения задач в более сложных доменах привело к появлению языка описания действий ADL (Action Description Language), являющегося расширением STRIPS-языка. ADL позволяет выражать условные эффекты действий (эффекты, которые применяются только тогда, когда дополнительные условия истинны в момент применения действия), квантифицированные эффекты (эффекты применяются к группе объектов вместо одного), в предусловиях стало возможным выражать дизъюнкции, квантифицированные формулы, и прочие логические связки.

Одним из первых планировщиков, который поддерживал расширенный синтаксис языка ADL, являлся UCPOP.

1.2.4 Поиск в пространстве планов

Первым подобным планировщиком являлся NOAH (Nets Of Action Hierarchies). NOAH строил оптимальный план для аномалии Суссмана.

В 1991 году МакАлистер и Розенблитт доказали полноту SNLPалгоритма частично-упорядоченного планирования, что во многом предопределило направление дальнейших исследований.

Начнём с примера, демонстрирующего особенности частично-упорядоченных планов.

Пусть, агенту необходимо выполнить несколько задач в комнате А, и несколько задач в комнате В (рисунок 6.)

Рисунок 6 — Иллюстрация к частично упорядоченным планам Агент способен выполнять:

действия Aj, …, An,, …, Bm, которые доставляют, соответственно, факты (і l… n) и (j l. m). Предусловие C () = IN (A), предусловие C () = IN (B).

действие GO (А), которое не имеет предусловий, но имеет в списке добавлений IN (A), а в списке удалений IN (В);

действие GO (B), которое не имеет предусловий, но имеет в списке добавлений IN (B), а в списке удалений IN (А).

Необходимо достичь цели G = {Рb …, Pn, ,…, Qm}. Очевидно, что цель G может быть достигнута после исполнения плана

Plan = {GO (A);; …; An; GO (B);; …; Bm}.

Заметим, что порядок выполнения действий, и порядок выполнения действий не имеет значения, поскольку они выполняются в разных комнатах. Следовательно, план {GO (A), Аn;…; А1, GO (B), Bm,…; } будет эквивалентен вышеприведённому плану.

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

Введём несколько базовых определений для описания алгоритма SNLP.

Шаг плана — это пара <�№, R>, где № - уникальный номер шага, R — некоторое правило.

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

В SNLP нелинейный план изначально всегда содержит два шага: 1) стартовый — START, соответствующий правилу, которое имеет список добавлений, задающих множество начальных фактов (начальное состояние среды), но не имеет предусловий и списка добавлений, и 2) конечный — FINISH, соответствующий действию, которое в качестве предусловий имеет целевые формулы, но не имеет списка добавлений и списка удалений.

Причинная связь — это тройка , где f — некоторый факт, W — шаг, имеющий в предусловии атом f, S — шаг, имеющий факт f в списке добавлений.

Угроза V для причинной связи -это шаг, который либо добавляет, либо удаляет факт f, и при этом не является ни шагом S, ни шагом W.

Защитное ограничение — это отношение порядка «<», заданное на шагах плана, при этом SW означает, что шаг S должен быть выполнен после шага W.

Нелинейный план Plan =, где ST-множество шагов, CL — множество причинных связей, SC — множество защитных ограничений.

Топологическая сортировка нелинейного плана Plan — это линейная последовательность всех шагов, которая удовлетворяет следующим условиям:

первый шаг в последовательности — START;

последний шаг в последовательности — FINISH;

для каждой причинной связи шаг S в последовательности предшествует шагу W;

для каждого защитного ограничения U

Топологическая сортировка нелинейного плана является решением, если применение последовательности действий шагов между шагами START и FINISH из начального состояния, которое задаётся списком добавлений шага START, приводит в состояние, в котором содержатся все предусловия шага FINISH.

8) Нелинейный план является противоречивым, если на нём невозможно осуществить топологическую сортировку.

Из этого следует, что противоречивый нелинейный план не является решением задачи планирования.

Алгоритм SNLP является систематичным в том смысле, что в процессе поиска, осуществляемого в пространстве частично-упорядоченных планов, один и тот же план или эквивалентные планы никогда не рассматриваются дважды.

Опишем алгоритм SNLP (рисунок 7.)

На вход процедуры подаётся множество правил УR, а также, нелинейный план Plan, не обладающий полнотой, который содержит шаги START и FINISH. Далее Plan уточняется путём добавления причинных связей и защитных ограничений, до тех пор, пока не обнаружится такое уточнение, что план либо противоречив, либо обладает полнотой.

Для случая абстрактного планирования, приведённая процедура может быть расширена следующим образом. Необходимо создать иерархию утверждений, которая будет отражать трудность достижения тех или иных условий. Для этого каждому утверждению сопоставляется некоторое число, характеризующее его иерархический уровень. Малые числа могут указывать на низкий уровень иерархичности, большие числа — на высокий уровень иерархичности. Для того чтобы процедура удовлетворяла предусловия, спускаясь с вершины иерархии утверждений, в процедуре SNLP на шаге 3 и 4 можно осуществлять выполнение пунктов а) и b), не произвольным образом, а с учётом более иерархичного предусловия f вовлечённого в причинную связь.

Рисунок 7 — Алгоритм SNLP

Очень часто нелинейные планировщики называют планировщиками, обладающими малой связностью (least commitment).

Неформальный принцип малой связности утверждает, что планировщику следует всегда осуществлять сначала выбор таких действий, которые его меньше связывают. Частичная подстановка — один из примеров малого связывания. Так, при поиске плана можно начать с анализа последствий более конкретного действия, например, MOVE (A, В), а можно выбрать менее связывающее действие, например, MOVE (А, х), где х — некоторая переменная, вместо которой можно подставить любой объект. Нелинейность ещё один пример малого связывания, например, можно выбрать действие Put (А, х) в качестве первого шага плана, с другой стороны, мы можем предположить что Put (А, х) появляется где-то в середине плана без точного указания места.

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

1.2.5 Планирование как задача удовлетворения ограничений

Многие задачи в ИИ, а также в других областях информатики, могут быть рассмотрены как задачи удовлетворения ограничений [34, 39], для которых существует множество высокопроизводительных алгоритмов. В связи с этим стала популярной формулировка задачи планирования, как задачи удовлетворения ограничений [28, 32, 17].

CSP-задача предъявляет требования к переменным в форме ограничений. Множество возможных значений переменных конечно, и называется доменом. Ограничения указывают, какие кортежи значений допустимы для определённого множества переменных. Ограничение может быть задано явно, путём перечисления допустимых кортежей или неявно, в форме алгебраического выражения. Решением CSP-задачи является такое означивание переменных, при котором учтены все ограничения.

Задача удовлетворения ограничений — это тройка, где:

V = {,…, vn} -множество переменных.

D = {D1…, Dn} — множество доменов. Каждый домен D; — конечное множество, содержащее возможные значения, соответствующей переменной.

С = {,…, } - множество ограничений. Ограничение С — отношение, определённое на подмножестве всех переменных, то есть x… xDn .

Заданное (частичное или полное) означивание переменных удовлетворяет ограничению Q, если каждая переменная получила такое значение, что соответствующий кортеж значений принадлежит. Множество всевозможных означиваний всех переменных является пространством, содержащим решение CSP-задачи.

Решением CSP-задачи является такое означивание всех переменных, при котором все ограничения удовлетворены. Если для некоторой задачи имеется, по крайней мере, одно решение, то задача является разрешимой, иначе неразрешимой, или же противоречивой, или же переограниченной.

В некоторых случаях необходимо получить все решения. Иногда, может быть сформулирована задача ограниченной оптимизации, а именно: найти такое решение, в котором значения переменных оптимизировали бы некоторый заданный функционал. Иногда необходимо просто выяснить, разрешима ли задача. В любом случае вычислительная сложность CSP-задачи NP-полная .

Далее рассмотрим алгоритм планирования — Graphplan [17], который использует технику прямого распространения ограничений.

На момент своего создания (1994) Graphplan показал впечатляющие результаты для ряда тестовых задач классического планирования. По производительности он превзошёл планировщики Prodigy [53], UCPOP [42], SNLP'[37], TOCL, POCL, ТОРІ.

Создатели Graphplan’a Блюм и Фёст объясняют этот успех способностью Graphplan’a анализировать множество планов одновременно. Однако, как показал Камбхампати производительность Graphplan’a объясняется тем, что он обрабатывает компоненты множества планов без разделения, используя уточнения дизъюнктивных планов.

Graphplan оказал сильное влияние на последующие работы в области планирования. Его алгоритм был модернизирован многими независимыми исследователями. На сегодня популярными постреализациями являются: 1) IPP (Interference Progression Planner) — включена поддержка языка ADL, 2) STAN (STate ANalysis planner) — повышена производительность в сравнении с GraphPlan’oM, 3) TGP (Temporal GraphPlan) — добавлена возможность обработки темпоральных зависимостей, 4) SGP (Sensory) Graphplan принимает на вход стандартное STRIPS-описание задачи планирования и переводит это описание в компактную структуру, которая называется граф планирования (Planning Graf), из которой впоследствии извлекает частично-упорядоченный план. Важно отметить, что граф планирования это не граф состояний, который получается при работе планировщика в пространстве состояний.

Graphplan сочетает в себе свойства как планировщика в пространстве состояний, так и планировщика в пространстве планов. Т. е. он не обладает свойством малого связывания и при этом строит частично-упорядоченные планы.

При изложении Graphplan’a будем пользоваться терминологией из оригинальной работы.

Факты F — множество элементарных ППФ без переменных из домена планирования Р.

Перед основной стадией работы Graphplan создаёт множество действий, осуществляя для каждого правила RSR всевозможные варианты подстановки индивидов на места всех переменных. Имеется также специальный вид действия 'no-op' - «ничего не делать» .

Действия Acts — множество полностью конкретизированных правил из SR, а также действие 'no-op'. Действие 'no-op' имеет предусловие C ('no-op')=f, список добавлений А ('по-op')=f, и пустой список удалений D ('no-op')=0, где fпроизвольный факт из F.

Граф планирования PG — ориентированный ярусный граф с двумя типами узлов и с тремя типами рёбер.

Два типа узлов в PG таковы: 1) FN — множество узлов, ассоциированных с фактами F, и 2) AN — множество узлов, ассоциированных с действиями Acts. Ассоциацию некоторого факта fF с узлом fnPG, будем обозначать как fnf.

Ассоциацию некоторого действия act Acts с узлом anAN PG, будем обозначать как anact.

Множество узлов PG разбито на непересекающиеся подмножества 1, AL1, … ALn.1 FLn>, где FL — ярус, содержащий узлы-факты, AL — ярус, содержащий узлы-действия, FL0 содержит узлы-факты, соответствующие фактам So;

Любой ярус ALiPG содержит узлы-действия anact, такие что Nodes (C (actan)) FLi и не существует fiii, fn2 eNodes (C (act<-an)) и 2>eMXF, где Nodes (C (act<-an)) — узлы на ярусе FLi, ассоциированные, с фактами из предусловия C (act).

Любой ярус фактов FLiPG (i>0) содержит узлы-факты fnf, такие что, для любого an ALiPG справедливо (fD (actan) ИЛИ fA (actan)). Рёбра устанавливаются между узлами, расположенными на ярусах. Три типа рёбер PG таковы:

ребро-предусловие — устанавливается между узлом-фактом fhf на некотором ярусе FLi и узлом-действием anact на ярусе ALi , если факт fC (act);

ребро-добавление — устанавливается между узлом-действием an->act на некотором ярусе ALi и узлом-фактом fhf на ярусе FLi+1, если f A (act);

ребро-удаление — устанавливается между узлом-действием anact на некотором ярусе ALi и узлом-фактом fnf на ярусе FLi+1, если f D (act).

Из определения видно, что ярусы PG чередуются так: ярус фактов | ярус действий и т. д. Первый ярус графа содержит факты, характеризующие начальное состояние. Ярусы в PG от самого первого до последнего содержат:

По сути, граф планирования PG позволяет представлять пространство состояний без разделения. Точнее, множество состояний хранящиеся совместно, например, на ярусе FLi+1, получаются в результате всевозможных альтернативных вариантов применения действий, расположенных в ярусах ALi по ALj (ii. Однако, ясно, что альтернативная перестановка к действий может привести к тому, что одно из действий может удалять эффект, либо предусловие другого действия. Для обработки подобных ситуаций используются, так называемые мьютексы между действиями и мьютексы между фактами. Это позволяет при необходимости, например, на этапе извлечения плана, выделить из графа PG альтернативные компоненты пространства состояний.

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

Дадим формальное определение понятию мьютекс.

Мьютекс — это отношение взаимоисключения между двумя узлами на одном ярусе. Существуют мьютексы между действиями и между фактами.

Мьютексы MXF — отношения взаимоисключения между узлами-фактами < fn1, fn2>, где fn1 fn2 — узлы-факты, находящиеся на одном ярусе, такие, что: либо, 1) все действия на предыдущем ярусе, добавляющие факт fn1|, удаляют факт fn2; либо, 2) все действия на предыдущем ярусе добавляющие факт fn2, удаляют факт fn1.

Мьютексы МХА — отношения взаимоисключения между узлами-действиями <�аn1 аn2>, где аn1 аn2 — узлы-действия, находящиеся на одном ярусе, такие, что: либо, 1) действие аn1 удаляет предусловие или же эффект действия аn2 либо, 2) предусловие действия аn1 и предусловие действия аn2 состоят в мьютексе mxf MXF.

Заметим, что мьютекс между парой узлов n1 и n2, может иметь место на некотором ярусе L, и не иметь место на некотором последующем ярусе L, С другой стороны, если между парой узлов n1 и n2 на некотором ярусе L не существует мьютекса, то и на последующих ярусах после L, пара узлов n1 и n2 не будут состоять в мьютексе.

Мьютексы превращают граф планирования в граф ограничений в смысле CSP-задачи. Метод, который используется для построения графа планирования, называется прямым распространением ограничений.

Пара ярусов фактов FLi и FLj — идентичны, если FLi и FLj содержат: 1) одинаковые факты, И 2) одинаковые мьютексы.

Граф Планирования PG является стабилизированным, если существуют пара смежных ярусов фактов FLi и FLi+1 и FLj идентичен FLi+1.

Пусть граф PG стабилизирован, и имеется пара идентичных ярусов-фактов FLi, FLi+1 PG. Тогда ярус фактов FLk PG идентичен ярусу фактов FLi PG, где k>iN.

Доказательство: Действительно, во-первых, из-за существования «nо-ор» -действий, факт f однажды появившись на некотором ярусе фактов, будет иметь место во всех последующих ярусах фактов. Во-вторых, множество фактов, которые могут быть созданы STRIPS-правилами конечно. Следовательно, должен существовать такой ярус фактов Q, содержащий факты, которые будут иметь место во всех последующих ярусах фактов. В-третьих, если два факта р и q, появившиеся на одном ярусе, не состоят в мьютексе, то и в последующих ярусах они также не будут состоять в мьютексе. Таким образом, должен существовать такой ярус фактов Р после Q, что все последующие ярусы фактов имеют множества мьютексов идентичные тем, что в Р. Утверждение доказано.

Цель G является разрешимой (достижимой) в 2-х случаях: 1) если она удовлетворяется тривиальным образом, т. е. компоненты цели G имеют место в начальном ярусе фактов, 2) если в графе PG существует подграф Plan, который состоит из множества путей, идущих от начального яруса фактов к ярусу фактов, содержащему G, и в этом множестве путей нет ни одной пары узлов, состоящих в мьютексе.

Пусть задача планирования Т имеет план длиной n . План длиной n можно извлечь из графа планирования PG, содержащего n ярусов-действий. Алгоритм GraphPlan возвращает «план не существует», только если цель G не достижима. Алгоритм GraphPlan обладает полнотой.

Опишем алгоритм GraphPlan (рисунок 8.1., рисунок 8.2.).

В начале Graphplan формирует первичный ярус фактов FL0. Graphplan работает по стадиям (переменная t в алгоритме). В каждой стадии выполняется:

— расширение графа планирования PG,

— поиск плана в графе PG.

На этапе расширения графа PG на основе текущего яруса фактов создаётся новый ярус действий, а затем, на основе нового яруса действий, формируется новый ярус фактов. Во вновь сформированных ярусах выявляются мьютексы MXF и МХА (процедура Расширение Графа Планирования).

Graphplan строит частично-упорядоченный план. Извлечение плана осуществляется с помощью техники обратного хода от текущего яруса к начальному ярусу. Как утверждает автор Graphplan’a, эта техника позволяет более эффективно использовать информацию о мьютексах между действиями и фактами в графе PG.

Опишем эту технику.

Перед поиском плана Graphplan проверяет следующее условие: " справедливо ли, что GNcFLTCK и для каждой пары узлов gn1 , gn2 GN и gn1, gn2mxf, где GN—множество целевых фактов, ассоциированных с узлами на ярусе FLTCK «'.

Если это так, тогда возможно план существует, и Graphplan приступает к поиску.

Суть поиска плана сводится к тому, чтобы от целевых фактов в текущем ярусе GNFLTCK, выделить путь, ведущий к ярусу FL0. В пути не должны содержаться мьютексные действия. На основе выделенного пути формируется план.

Более точно происходит следующее.

Изначально формируется множество GS — хранилище (под)целевых наборов GS i t. GS i t — множество целей, выбираемые из яруса фактов с номером і, при поиске плана на стадии t. Начиная с текущего яруса FLi (вначале i=t) в GS i t заносятся целевые факты GNFLi. Далее на ярусе действий с номером і-l выделяются всевозможные комбинации действий (Аcomb), доставляющие GS i t (множество Comb). Устанавливается подцель GS i-1 t, в которую помещаются предусловия выделенных действий, расположенные на ярусе фактов FLm. Для каждой из комбинаций действий АcombComb процесс продолжается рекурсивно, до тех пор, пока GS i-1 t окажется тривиально разрешимой, либо не найдётся комбинации действий, доставляющей GS i-1 t, т. е. Comb = .

Если подцель GS i-1 t оказывается разрешимой, то при возврате из рекурсии в план Plan помещаются тройки < GS i-1 t, Acomb, GS i t, в которой для каждого действия из Acomb, известно какие (под)цели из GSit достигает действие, и какие цели из GS i-1 t необходимо достичь, прежде чем выполнить действие. Для получения линейного плана необходимо выполнить топологическую сортировку нелинейного плана Plan, с учётом целевых ограничений GSit.

Рисунок 8.1 — Алгоритм GraphPlan

Рисунок 8.2 — Алгоритм GraphPlan

Опишем ещё одну незначительную, но интересную особенность Graphplan’a.

В практической реализации алгоритма для повышения эффективности обратной техники извлечения плана, используется хеширование. В хеш-таблице на каждой стадии t запоминаются целевые наборы GSit, которые оказались НЕ разрешимыми в ярусе фактов і. На каждой стадии при поиске плана проверяется наличие в хэш-таблице разрешаемой подцели GS i-1 t. Если подцель GS i-1 t в хеш-таблице, то поиск плана немедленно прекращается, и исходная цель GSit, также помещается в хеш, как неразрешимая.

1.3 Постановка задачи

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

Анализ работ в области интеллектуального планирования при классических допущениях позволяет выделить следующие подходы:

1)планирование как доказательство теорем;

2)планирование как поиск в пространстве состояний;

3)планирование как поиск в пространстве планов;

4)иерархическое планирование;

5)планирование как CSP-задача, SAT-задача, ILP-задача, BDD-задача;

В качестве ключевых работ в области классического планирования следует отметить: STRIPS — решение проблемы фрейма, SNLP — доказательство полноты алгоритма частично-упорядоченного планирования, GRAPHPLAN — значительное повышение производительности за счёт использования техники удовлетворения ограничений, SATPLAN — использование эффективных методов решения задачи выполнимости пропозициональных формул, HSP — для повышения скорости поиска планов использована эвристика, извлекаемая из описания задачи планирования.

Показать весь текст
Заполнить форму текущей работой