Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KP ATP-131 / Курсовая работа. Аверьянов П.А..doc
Скачиваний:
29
Добавлен:
31.05.2015
Размер:
268.8 Кб
Скачать

Днф, сднф, кнф, скнф

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

Например,     является простой конъюнкцией,

Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция простых конъюнкций.

Например, выражение         является ДНФ.

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

Например, выражение       является ДНФ, но не СДНФ. Выражение        является СДНФ.

Аналогичные определения (с заменой конъюнкции на дизъюнкцию и наоборот) верны для КНФ и СКНФ. Приведем точные формулировки.

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

Конъюнктивной нормальной формой (КНФ) называется конъюнкция простых дизъюнкций ( например выражение             – КНФ).

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

Например, выражение               является СКНФ.

Решение

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

Приоритеты поворота:

  1. ЛСтрелка влево 2ево

  2. ПСтрелка вверх 3рямо

  3. ПСтрелка вправо 4раво

  4. НСтрелка вниз 5азад

Зададим лабиринт и положение робота.

Возьмем произвольный лабиринт и поместим туда мышь.

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

Алгоритм движения.

Пункт характеризует:

  • Свободный ход по порядку приоритетности.

  • Поворот мыши, если необходим.

  • Движение.

Алгоритм:

Робот находится в начальной точке пути

Шаг 1:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 2:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 3:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 4:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 5:

  • Налево – тупик

  • Прямо – тупик

  • Направо – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 6:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 7:

  • Налево – тупик

  • Прямо – тупик

  • Направо – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 8:

  • Налево – тупик

  • Прямо – тупик

  • Направо – тупик

  • Назад – свободно

  • Поворот 180˚

  • Движение вперед

Шаг 9:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 10:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 11:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 12:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 13:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 14:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Шаг 15:

  • Налево – тупик

  • Прямо – свободно

  • Движение вперед

Шаг 16:

  • Налево – тупик

  • Прямо – тупик

  • Направо – свободно

  • Поворот на 90˚

  • Движение вперед

Шаг 17:

  • Налево – свободно

  • Поворот 90˚

  • Движение вперед

Выход! Робот выехал за пределы лабиринта.

Изобразим движение мыши в лабиринте:

Стрелка вверх 7Стрелка вверх 8Стрелка вверх 10Стрелка вверх 12Стрелка вправо 13Стрелка вправо 14Стрелка вниз 15Стрелка влево 20Стрелка вниз 21Стрелка вниз 22Стрелка вправо 23Стрелка вправо 24Стрелка вверх 25Стрелка вверх 26Стрелка вправо 27Стрелка вверх 28Стрелка вверх 29

Зададим переменные соответствующие сигналу принимаемому датчиком:

  • Лево – свободно = X1

  • Прямо – свободно = X2

  • Право – свободно = X3

  • Назад – свободно = X4

Теперь зададим переменные соответствующие направлению движения:

  • Лево = A

  • Прямо = B

  • Право = C

  • Назад = D

Составим таблицы истинности.

Приоритетность сигнала датчика: Движение в зависимости от сигнала:

X1

X2

X3

X4

-

-

-

-

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

A

B

C

D

-

-

-

-

0

0

0

1

0

0

1

0

0

0

1

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

Стрелка вправо 16

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

A = X1˅(X2˄X̅2)˅(X3˄X̅3)˅(X4˄X̅4) = X1

B = X2˅(X3˄X̅3)˅(X4˄X̅4) = X2

C = X3˅(X4˄X̅4) = X3

D = X4

Заключение

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

Список литературы

«Дискретная математика» Ф.А. Новиков

«Дискретная математика и комбинаторика» Джеймс А. Андерсон

«Дискретная математика в примерах и задачах» В.В. Тишин

18