Главная » Все файлы » Просмотр файлов из архивов » Документы » Лабораторная работа 4 ОТКДС

Лабораторная работа 4 ОТКДС (Методичка для 4 лабы по ОТКДС)

2015-11-20СтудИзба

Описание файла

Файл "Лабораторная работа 4 ОТКДС" внутри архива находится в папке "Методичка для 4 лабы по ОТКДС". Документ из архива "Методичка для 4 лабы по ОТКДС", который расположен в категории "". Всё это находится в предмете "основы теории конечных дискретных систем (откдс)" из 4 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "откдс" в общих файлах.

Онлайн просмотр документа "Лабораторная работа 4 ОТКДС"

Текст из документа "Лабораторная работа 4 ОТКДС"

10


Работа № 4. АЛГОРИТМЫ СОГЛАСОВАНИЯ И УПОРЯДОЧЕНИЯ НА ГРАФАХ И ИХ РЕАЛИЗАЦИЯ НА ЭВМ

Цель работы: изучение алгоритмов согласования и упорядочения на графах; овладение навыками реализации их на ЭВМ.

Задание

I. Поиск Гамильтоного пути (ГП) в графе.

1.1. Для заданного графически, ориентированного графа составить матрицу смежности R с единицами на главной диагонали (матрица достижимости за один шаг).

1.2. Найти ГП в графе, используя алгоритм Фаулкса.

1.3. Найти ГП в графе, используя алгоритм Робертса и Флореса (см. лекции) для начальной вершины, выбранной в п. 1.2.

1.4. Найти ГП в графе для начальной вершины, выбранной в п. 1.2, используя стандартную программу на ЭВМ, сравнить результаты.

1.5. Предложить словесное содержание задачи, отвечающей задан-ному графу.

2. Определение связности графа.

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

2.2. Представить заданный граф графически и предложить словесное содержание задачи, отвечающей указанному графу.

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

3. Поиск Эйлеровой линии (ЭЛ) в графе.

3.1. Для заданного графически, неориентированного графа составить матрицу смежности с единицами на главной диагонали (матрица достижимости за один шаг).

3.2. Найти ЭЛ в графе, используя алгоритм, приведенный в описании лабораторной работы.

3.3. Найти ЭЛ в графе для начальной вершины, выбранной в п. 3.2, используя стандартную программу на ЭВМ, сравнить результаты.

3.4. Предложить словесное содержание задачи, отвечающей заданному графу.

Методические указания

Определение Гамильтонова пути в графе

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

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

В качестве примера рассмотрим задачу определения очередности решения на ЭВМ вычислительной программы (алгоритма) А, состоящей из п подпрограмм Ai ; i=1,2,…,n , причем на порядок выполнения подпрограмм накладываются ограничения в виде

AiAj (4.1)

(т.е. выполнение подпрограммы Ai предшествует выполнению подпрограммы Aj , i, j = 1,2,…,n) или

Ai Aj (4.2)

(т.е. порядок выполнения программ Ai и Aj безразличен). Эту задачу удобно геометрически отобразить в виде графа, где каждой i вершине соответствует Ai - подпрограмма, а связи между подпрограммами соответствуют дугам или ребрам. Причем дуга соответствует связи AiAj , а ребро - связи Ai Aj .

Если предполагается, что программа A будет выполнена, когда выполнены все подпрограммы Ai , i=1,2,…,n (без повторений), то определение очередности выполнения подпрограмм Ai сводится к определению на графе Гамильтонова пути. Очевидно, что эту задачу можно решить перебором всех возможных вариантов с одновременной проверкой всех условий (4.1), (4.2). При n = 2 возможно всего два варианта, при n = 3 - шесть, при n=10 существует более трех с половиной миллионов возможных вариантов, из которых надо выбрать допустимые, удовлетворяющие условиям (4.1), (4.2).

Решение поставленной задачи может быть облегчено, если мы воспользуемся алгоритмом Фаулкса, позволяющим во многих случаях значительно уменьшить рассматриваемое количество возможных вариантов [4].

Алгоритм Фаулкса. Рассматривается n операций (вершины графа) A1, A2,…, An , между которыми существуют соотношения:

AiAj , AiAj , (i, j = 1,2,…,n) (4.3)

Задача состоит в том, что среди n! возможных путей найти путь (если это возможно) или несколько путей, проходящих один и только один раз через каждую из этих вершин и удовлетворяющих написанным выше соотношениям - это так называемые Гамильтоновы пути, так как соотношения (4.3) определяют связи между вершинами графа, а путь в графе, проходящий только один раз через все вершины графа, есть гамильтонов путь.

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



Э
лементы rNij матрицы RN, определяются как

Вычисления следует прекратить, если RN = RN-1 (т.е. все элементы rNij = rN-1ij , i, j = 1,…,n).

Так как все вычисления производятся последовательно, и на каждом цикле вычисления возможны некоторые упрощения матрицы RN и исходной матрицы R, то в алгоритме вычисления необходимо задать номер цикла вычисления N и условие перехода к новому циклу вычисления в случае, если RN RN-1 и номер нового цикла N=N+1.

Порядок решения задачи:

1. Задаем номер цикла вычислений N=0.

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

3. Составляем матрицу смежности R графа, элементы rij которой могут принимать значения 0 либо 1. Если rij = 1, то это указывает на то, что за операцией (вершиной) Ai должна следовать операция (вершина) Aj .

Полученная таким образом матрица R является булевой матрицей, поскольку каждый элемент может принимать значения 0 или 1. Эта матрица является исходной для всех дальнейших вычислений.

4. Увеличиваем на единицу номер цикла, т.е. N=N+1 (на первом цикле вычислений N=0+1=1 и матрица RN = R есть исходная матрица смежности R , которая, кроме того, равна R0 ).

5. Используя полученную матрицу RN-1 , для каждой операции (вершины графа) проверяем принадлежность ее к начальной или конечной вершине Гамильтонова пути.

Если операция является начальной вершиной Гамильтонова пути, то во всей строке матрицы стоят единицы, а во всем столбце (за исключением их пересечения) - нули. Если эта операция является конечной вершиной Гамильтонова пути, то во всей строке матрицы стоят нули (за исключением их пересечения), а во всем столбце - единицы.

6. Упрощаем матрицу графа RN-1 , т.е. получаем матрицу (RN-1)' , за счет вычеркивания строк и столбцов, которым соответствует либо начало, либо конец Гамильтонова пути.

7. Получаем матрицу RN , выполнив булевое умножение матрицы (RN-1)' на матрицу (R)' , которая получается из исходной матрицы смежности графа R вычеркиванием строк и столбцов, соответствующих началу и концу Гамильтонова пути во всех циклах вычислений.

8. Проверяем условие выполнения равенства матриц RN и (RN-1)', то есть равенство каждого элемента rNij = (rN-1ij)' . Если это условие выполняется, то переходим к п. 10, если нет - к п. 9.

9. Проверяем условие равенства всех элементов матрицы RN единице.

Если все элементы матрицы rij = 1, то нет необходимости в дальнейших вычислениях матрицы RN+1 , так как очевидно RN = RN+1 , т.е. rNij = 1, для  (i, j) = 1, 2,…, n

Если равенство выполняется, переходим к п. 10, если нет - к п. 4.

10. Составляем матрицу Rb , возвращая в матрицу RN , строки и столбцы, вычеркнутые в п. 6 (во всех циклах вычислений).

11. Составляем матрицу Rc , перегруппировывая строки и столбцы матрицы Rb таким образом, чтобы все нули были расположены под главной диагональю, а единицы - над ней.

Квадратные матрицы, состоящие из единиц, опирающихся на главную диагональ, образуют классы эквивалентности вершин. Если для данного графа мы получили m классов эквивалентности (mn), то есть B1,…,Bm , и в каждый класс эквивалентности Bd , d = 1,2,…,m входят Sd вершин графа, то можно сказать, что вершины, входящие в класс эквивалентности Bd, расположенные выше и левее класса эквивалентности Bl в матрице Rc будут предшествовать в Гамильтоновом пути вершинам из класса эквивалентности Bl .

Нахождение Гамильтоновых путей в этом случае значительно упрощается.

Рассмотрим пример. Считаем, что программа A состоит из 6 операций (подпрограмм) A1, A2,…, A6 , между которыми существуют следующие соотношения:

A1A2 , A2A3 , A3A4 , A5A4 , A6A4 ,

A1A4 , A2A4 , A6A5 ,

A1A6 , A2A5 ,

A2 A6 . (4.4)

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

Для решения задачи воспользуемся приведенным алгоритмом.

1. Номер цикла N = 0.

2. Составим граф (рис. 4.1), соответствующий соотношениям (4.4).



Рис. 4.1

3. Составим матрицу смежности R графа.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее