Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lopatin_article3_discr.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
131.58 Кб
Скачать

Алгоритм

Алгоритм

1

while (NBT0)

2

qc – текущая конфигурация МР. В качестве qT выбираем первую точку из BT .

3

if (объект_захвачен:=Алгоритм1(qc, qT) =ДА)

сообщить о том, что Obj захвачен в конфигурации qT ;

go to 6;

endif

4

endwhile

5

Сообщить о том, что Obj не может быть захвачен

6

Конец Алгоритма

Алгоритм1 получает значения в формате: Алгоритм1(qn, qT) и посвящён выяснению вопроса о том, является ли точка qT достижимой из qn в неизвестной среде.

Алгоритм1(qn, qT)

1

МР находится в qn (назовём её «точка смены пути»).

2

NBT:=Процедура2();

3

if (NBT = 0)

объект_захвачен:=НЕТ;

return(объект_захвачен);

endif

4

/*если в Z(qn) есть конфигурации, в которых может быть захвачен Obj*/

if (ZBT:=Z(qn)∩BT0)

перейти в первую такую конфигурацию из BT;

объект захвачен:=ДА;

return (объект_захвачен);

else

go to 5;

endif

5

/* Здесь осуществляется попытка планирования L(qn, qT) внутри Х*/

if (number_config:=ПИ (qn,qT, ,X)=0)

/*Если попытка не успешна*/

/*L(qn, qT) сгенерирован быть не может, то есть qT является недостижимой*/

NBT:=Процедура1(BT , N BT , qT);

объект_захвачен:=НЕТ;

return(объект_захвачен);

endif

/*Если попытка успешна, происходит переход на 6*/

6

МР начинает исполнение пути L(qn, qT). Исходов движения может быть два: 1) МР попадает в некоторую разрешённую точку qiT BT. В этом случае происходит присвоение qT:=qiT и объект_захвачен:=ДА и выполняется возврат в Алгоритм; 2) МР придёт в некоторую точку q*, следующая за которой является запрещённой. В этом случае

n:=n+1;

qn:=q* ;

go to 1;

7

Конец Алгоритма1

Теорема. Исполняя Алгоритм, МР решит Задачу за конечное число шагов.

Доказательство. Алгоритм выясняет достижимость конечного числа точек из BT. Выяснение достижимости в отношении каждой из точек qTBT осуществляется путём исполнения Алгоритма1. Отсюда видно, что исполнение Алгоритма сводится к конечному числу вызовов Алгоритма1. Поэтому, чтобы доказать, что Алгоритм будет исполнен за конечное число шагов, требуется показать, что исполнение Алгоритма1 для произвольных qn и qT будет осуществлено за конечное число шагов.

Алгоритм1 посвящён выяснению вопроса о том, является ли точка qT достижимой в неизвестной среде из точки смены маршрута qn или нет. В Алгоритме1, когда МР находится в точке qn, n=0,1,2,…, происходит запуск СС и запуск процедуры ПИ(). Если в результате исполнения этих действий точка qT будет определена как запрещённая (в силу налегания на препятствие, либо в силу недостижимости), произойдёт возврат в Алгоритм и для исследования достижимости будет назначена другая точка qTBT. Если в результате исполнения этих действий точка qT не будет определена как запрещённая, происходит генерация пути L(qn, qT) и МР начнёт исполнять этот путь. Исполнение этого пути может иметь два исхода: либо МР, не встретив на своём пути запрещённых точек, достигнет qT, она окажется разрешенной и тогда произойдёт успешное окончание работы Алгоритма, либо МР придёт в точку qn, n=1,2,…, следующая за которой будет запрещённой. Покажем, что все точки смены пути qn, n=0,1,2,… будут различными и их число будет конечным.

Покажем, что все точки смены пути различны. Предположим, что МР сменил путь, находясь в точке qs, а потом, находясь в точке qp, вновь сменил путь, то есть s<p. Покажем, что qsqp. Предположим сначала, что qs=qp и тогда Q(qs)=Q(qp). Поскольку МР сменил путь, находясь в точке qs, то он сгенерировал путь, не налегающий в том числе и на Q(qs). Но поскольку МР сменил путь в точке qp, то это означает, что его путь налёг на Q(qp)=Q(qs) (при этом qs=qp является центром r-окрестности точки qs=qp и следующая за ней точка является запрещенной), то есть Q(qp)=Q(qs) не было известным. Получили противоречие. Отсюда видно, что все точки смены пути различны.

Сделав отступление, заметим здесь, почему про каждую точку из Y(qn), n=0,1,2,… СС должна доставлять точную и достоверную информацию, где qn - точка смены пути. Предположим, что МР исполнял путь L(qn-1, qT) и прибыл в точку qn, которая оказалась точкой смены пути, поскольку следующая точка пути qA оказалась запрещенной (см. рис.2).

В точке qn сработала СС, но предположим, что она доставила информацию не обо всех точках из Y(qn), например, о точке qB не была доставлена информация. В точке qn МР сменил путь и продолжал двигаться. Пусть теперь МР исполняет путь L(qm, qT), mn. По прибытии в qn МР обнаружит, что qB является запрещенной и тогда qn вновь станет точкой смены пути. Поэтому мы и потребовали, чтобы в каждой точке смены пути qn, n=0,1,2,… СС доставляла точную и достоверную информацию о каждой точке из Y(qn).

Число точек смены пути конечно, поскольку конечно число точек в Х в силу введённой дискретизации.

Итак, число точек смены пути qn, n=0,1,2,… конечно и они все различны. В каждой точке qn осуществляется запуск СС и вызов процедуры ПИ, генерирующей L(qn, qT). В результате выполнения этих действий либо получаем информацию о том, что qT является запрещённой, либо нет. Если получаем, выяснение вопроса о достижимости qT заканчивается выводом о недостижимости qT. Если нет, происходит попытка исполнения пути L(qn, qT). Если и в последней точке смены пути qn точка qT не была квалифицирована как запрещённая, то будет сгенерирован L(qn, qT), этот путь будет исполнен и qT будет достигнута.

Таким образом, показано, что МР, исполняя Алгоритм1, за конечное число шагов либо достигнет точки qT, либо сделает вывод о том, что qT недостижима. Алгоритм сводится к исполнению Алгоритма1 конечное число раз. Отсюда видно, что, исполняя Алгоритм, МР решит Задачу за конечное число шагов. Теорема доказана.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]