русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Паросочетания


Дата добавления: 2015-07-23; просмотров: 667; Нарушение авторских прав


Опр1: подмнож. М мн-ва Е наз. паросочетанием, если никакие 2 ребра из М не имеют общей вершины, т.е. никакие 2 вершины не явл. инцинд., если ребро в паросочетании, то наз. паросочетанным, само ребро паросочетающим. Опр2: паросочетание М на двудольном графе наз. max. если никакое другое паросочетание на не сод. больше ребер чем М. Опр3: Паросочетание М на двудольном , где , наз. полным, если . Опр4: Для подмнож. мн-ва , рассм. мн-во , - мн-во значений . Теорема Менгера: Наименьшее число вершин, разделяющих две несмежные вершины s и t, равно наибольшему числу непересекающихся простых (s − t) цепей. Теорема Холла: если в двудольном графе любые k элементов одной из долей связаны по крайней мере с k элементами другой, то граф разбивается на пары. Док-во: Пусть мощность первой доли — n. Сделаем из данного графа сеть. Для этого на каждом ребре введем пропускную способность по 1 в направлении от вершины первой доли к вершине второй. При этом создадим две дополнительные вершины — s и t, от первой проведем все стрелки в вершины первой доли, а из каждой вершины второй проведем стрелки во вторую добавленную вершину. Заметим, что получившаяся сеть — целочисленная, то есть в ней существует максимальный целочисленный поток, и что если мы сможем доказать, что пропускная способность минимального разреза равна , то по теореме Форда-Фалкерсона (величина максимального потока равна величине минимального разреза) величина максимального потока равна пропускной способности минимального разреза, то есть тоже равна . Очевидно, что если в бинарной транспортной сети величина максимального потока равна , то существует непересекающихся по вершинам путей из истока в сток. Это следует из алгоритма для нахождения максимального целочисленного потока в целочисленном графе, а из каждого такого пути можно выбрать смежную пару вершин из разных долей исходного графа.



То, что мощность минимального разреза не превышает , очевидно — достаточно рассмотреть разрез, в котором множество S содержит одну вершину .

Теперь рассмотрим произвольный разрез (S,T). Пусть в S попали ровно вершин из первой доли и из второй. Тогда если , то есть , то пропускная способность разреза, уже хотя бы , из-за ребер, ведущих из S в и ребер, ведущих из в T. Иначе, если , то из условия, что любые вершины первой доли связаны хотя бы с вершинами второй, следует, что эти также связаны с вершинами второй доли, а так как , то они связаны хотя бы с вершинами во второй доле, попавшими во множество T. Тогда пропускная способность разреза не меньше , то есть снова не меньше . Теорема доказана. Алгоритм поиска max паросочетания: Найдём строку, в которой нет поставим # и отметим эту 1 в последней строке , двигаемся вверх по отмеч. столбцу до , пишем в строке. На столбца сод. 1 без в строке отметим в столбцах . Теперь ищем строки сод. указываем столбцы. В строке ищем 1 без записываем . . Проходя по этим маршрутам заменим . Новые сочетания . Венгерский алгоритм: Задача: Имеется m заданий и столько же исполнителей. Каждый исполнитель способен выполнить каждое задание, но за каждое задание он возьмет с Вас определенную сумму денег. Вы торопитесь, поэтому хотите назначить каждому исполнителю по задаче (разные исполнители получают разные задачи), и заставить их всех работать одновременно. Ваша задача - сделать это так, чтобы минимизировать затраты.

Идея алгоритма: Начиная с этого момента будем предполагать, что значения всех элементов матрицы w[i][j] неотрицательны. Задача легко сводится к этому случаю, если ко всем элементам матрицы прибавить достаточно большое положительное число. Для матрицы w с неотрицательными элементами справедливо следующее очевидное утверждение:

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

Идея алгоритма состоит в том, чтобы при помощи некоторых операций модифицировать матрицу w так. чтобы в ней появился такой независимый набор из нулей. При этом операции, производимые над матрицей, будут сводить задачу к эквивалентной, то есть модификации матрицы будут сохранять свойство минимальности веса для каждого полного независимого набора. Эти операции состоят в следующем: 1)Модификация строки. Операция состоит в добавлении заданного числа a ко всем элементам одной строки матрицы w. 2)Модификация столбца (аналогично).

 



<== предыдущая лекция | следующая лекция ==>
Раскраска графов. | Экстремальные пути в нагруженных ориентировочных графах


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.989 сек.