Теоретико-множественные и структурно-математические основы описания дискретных систем
Понятие о графе, способы его задания. Достижимость и обратная достижимость вершин графа. Графовые модели для оптимизации транспортных сетей и потоков, решения задач календарного планирования, задач о назначениях и других задач дискретной оптимизации.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.12.2011 |
Размер файла | 217,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Этап 1. Над найденным невыделенным нулем ставится штрих('), соответствующая строка отмечается справа знаком(+), а знак выделения столбца, содержащего нуль со звездочкой, снимается .
Этап 2. Производится построение цепочки элементов. Цепочка начинается от нуля со штрихом и по столбцу проходит к нулю со звездочкой, затем к нулю со штрихом в той же строке и т.д. Начало и конец цепочки - нули со штрихом. После этого звездочки над нулями, входящие в цепочку, зачеркиваются, а над нулями со штрихом ставятся звездочки. Зачеркиваются также все знаки выделения в матрице (кроме звездочек). На этом заканчивается построение цепочки. Так как концы цепочки - нули со штрихами, то в результате итерации число нулей со звездочкой увеличивается на 1.
Этап 3. Среди элементов, находящихся в невыделенных линиях, выбирается минимальный, который прибавляется к элементам выделенных столбцов и вычитается из элементов не выделенных строк. В результате этих операций появляются невыделенные нули.
2.7.3 Решение задачи о назначениях на основе линейного программирования
Пусть xij=1, если i-й работник выполняет j-ю работу и равно 0-в противном случае. Тогда задача сводится к задаче целочисленного программирования:
минимизировать Z=
при ограничениях
=1,
=1 , где - целые числа .
2.7.4 Модификации задачи о назначениях
1. В ряде случаев представляется целесообразным решать задачу о назначениях не на максимум суммы n независимых элементов, а на ее минимум. В этом случае алгоритм венгерского метода отличается только подготовительным этапом. Для решения задачи на минимум достаточно в квадратной матрице производительностей A = {dij} заменить у элементов dij знаки на обратные, т.е. матрица будет иметь вид A = {-dij}. В остальном алгоритм остается без изменения. Поэтому от задачи максимизации всегда можно перейти к задаче минимизации.
2. Иногда в задаче о назначении матрица эффективностей не является квадратной: число исполнителей m не равно числу работ n. Допустим, mn. Построим тогда квадратную матрицу эффективностей введением (m-n) фиктивных работ, которые выполняются всеми лицами с одинаковой эффективностью, равной нулю. Решение видоизмененной задачи дает некоторое решение исходной задачи. Лицо, назначенное на фиктивную работу, остается без назначения.
В случае mn достраиваем матрицу эффективностей до квадратной введением (n-m) фиктивных исполнителей, имеющих нулевую эффективность на всех работах. Матрица эффективностей становится квадратной.
3. В ряде случаев допускается, чтобы i-исполнитель (например, узел связи ci) мог выполнять две работы (например, обслуживать два населенных пункта из множества населенных пунктов Bi, i = 1,n). Для решения этой задачи условно представим i-исполнитель в виде двух самостоятельных исполнителей Аi' и Ai”. Исходные данные для исполнителей Аi' и Ai” должны быть одинаковы с данными для исполнителей Ai. В этом случае формально происходит увеличение числа исполнителей и может потребоваться увеличение числа фиктивных работ. Изложенный подход позволяет существенно расширять возможности практического использования задачи о назначениях.
Кроме того, следует отметить, что задача о назначениях часто используется как промежуточный шаг при решении других задач, например, задачи о коммивояжере, которая довольно часто встречается на практике и будет далее рассмотрена подробнее.
2.8 Задача о наименьшем покрытии
2.8.1 Постановка задачи
В матричной форме задача о покрытии формулируется следующим образом. Дана матрица A(N,M) с элементами из множества {0,1}. При этом считают, что номера строк образуют покрываемое множество, а номера столбцов - покрывающее. Требуется найти подматрицу матрицы A, которая содержит N строк (среди которых нет нулевых) и состоит из минимально возможного числа столбцов. К подобной формулировке могут быть сведены многие оптимизационные задачи управления.
2.8.2 Алгоритм решения задачи
Задача о покрытии является достаточно сложной комбинаторной задачей, и на ЭВМ она чаще всего решается в два этапа. На предварительном этапе выясняется, имеет ли вообще исходная задача решение, и если оно существует, то определяется приближенное решение. Здесь же могут быть найдены элементы покрывающего множества (столбцы), включаемые в оптимальное решение, что позволяет упростить исходную задачу. На общем этапе на основе приближенного определяется оптимальное решение.
Нахождение приближенного решения
Задача о покрытии имеет решение, если в исходной матрице нет нулевых строк. Приближенным решением задачи о покрытии является подматрица матрицы A без нулевых строк с числом столбцов, близким к минимально возможному. Для нахождения приближенного решения, как правило, используется градиентный метод, который состоит в пошаговом выделении столбцов (включении в приближенное решение) результирующей матрицы:
- на первом шаге выделяется столбец, содержащий наибольшее число единиц (если таких несколько, то берется любой из них), и в матрице вычеркиваются (считаются покрытыми) все строки, содержащие единицу в выделенном столбце;
- на k-м шаге выполняются те же действия над матрицей, полученной (в результате вычеркивания строк) на предыдущем шаге.
Этот процесс заканчивается, если на очередном шаге все строки рассматриваемой матрицы оказались вычеркнутыми. Подматрица, составленная из тех столбцов исходной матрицы A, которые выделялись в процессе выполнения алгоритма, и является искомой подматрицей.
После получения приближенного решения выясняется, можно ли некоторые из столбцов включить в оптимальное решение. Это осуществляется по следующему правилу: если в какой-либо строке имеется всего один единичный элемент, то содержащий его столбец должен быть включен в оптимальное решение. При этом из подматрицы, передаваемой на оптимизацию, вычеркиваются эти столбцы и покрываемые ими элементы.
Oпределение оптимального решения
Полученное на предыдущем этапе приближенное решение передается алгоритму минимизации. Целью этого этапа является дальнейшее уменьшение (если это возможно) числа столбцов подматрицы.
Для определения оптимального решения, как правило, используется метод ветвей и границ.
Метод ветвей и границ при решении задачи о наименьшем покрытии
Исходными данными для применения алгоритма является матрица, представляющая собой приближенное решение задачи о наименьшем покрытии с вычеркнутыми столбцами, включенными в оптимальное решение, и строками, которые они покрывают.
Нахождение оптимального решения задачи о наименьшем покрытии в табличной форме состоит из двух основных повторяющихся этапов.
На первом этапе находят одно из допустимых решений, а на втором оно проверяется на оптимальность. Если текущее решение не оптимально, то возвращаются на первый этап, где формируют новое допустимое решение, иначе алгоритм заканчивает работу (рис. 3.5).
Рис. 3.5
В ходе выполнения первого этапа над столбцами, включенными в решение, ставят индексы, а снизу эти столбцы помечают знаком *.
Строки, содержащие единицу в столбцах, имеющих индекс и метку, считаются покрытыми.
В процессе проверки текущего решения на оптимальность индексы и метки со столбцов снимаются, после чего соответствующие строки считаются непокрытыми. Текущее решение является оптимальным, если число столбцов, входящих в него, меньше числа столбцов, включенных в предыдущее решение.
Алгоритм ветвей и границ для решения задачи о наименьшем покрытии в табличной форме состоит из следующих шагов.
1. Среди столбцов, не имеющих индекса, находится столбец, обладающий максимальной мощностью (мощностью столбца называют число единиц в нем, расположенных в непокрытых строках). Над ним указывается индекс, значение которого равно, например, числу обращений к п.1, а снизу он помечается знаком *. Покрываемые им строки отмечаются справа знаком +.
2. Находится оценка нижней границы количества столбцов L1 текущего решения как сумма числа столбцов, имеющих метку *, и числа столбцов, необходимых для покрытия непокрытых строк. Последнее определяется как минимальное число столбцов, не имеющих индекса, суммарная мощность которых больше или равна числу непокрытых строк (если мощность оказывается меньшей, то оценка нижней границы считается равной общему числу столбцов матрицы покрытий).
3. Проверяется, если число столбцов L1 текущего решения больше или равно числу столбцов L0 предыдущего решения, то переходят к п. 4, иначе, если не все строки покрыты, возвращаются к п.1. (Первоначально L0 приравнивают к числу столбцов в матрице покрытий.) Если же L1<L0 и все строки покрыты, то формирование очередного допустимого решения закончено. В этом случае запоминают номера и число помеченных столбцов и переходят к проверке решения на оптимальность.
4. Проверяется, помечен ли столбец, включенный в решение последним. Если помечен, то метка с него снимается (соответствующие строки считаются непокрытыми), и переходят к п. 2. Если же столбец, включенный в решение последним, не помечен, то с него снимается индекс.
5. Проверяется наличие столбцов с индексами. Если таких нет, то исследуемое решение оптимально, иначе возвращаются на п.4.
2.8.3 Решение задачи о наименьшем покрытии на основе линейного программирования
Пусть xj=1, если Sj - покрывающее множество войдет в покрытие и равно 0 - в противном случае. Тогда задача сводится к задаче целочисленного программирования:
минимизировать Z=
при ограничениях
1, где i=1,2,,N.
Решение задачи оптимизации системы методом линейного программирования может быть осуществлено с помощью пакета MS EXCEL.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Новиков Ф.А. Дискретная математика для программистов. СПб.: Питер, 2000. 304 c.
2. Математика. Общий курс. СПб.: Изд-во ”Лань”, 2002. 960 c.
3. Кузнецов О.П., Адельсон-Вельский Г.И. Дискретная математика
для инженера. М.: Энергоатомиздат, 1997. 344 c.
4. Кабанов А.Н. Математические модели и алгоритмы оптимизации дискретных систем: Учеб. пособие./ Рязан.радиотехн.ин-т. Рязань, 1987. 64 c.
5. Емеличев В.А., Мельников О.И. Лекции по теории графов. М.: Наука, 1990. 384 с.
Размещено на Allbest.ru
Подобные документы
Предназначена библиотеки "simplex" для оптимизации линейных систем с использованием симплексного алгоритма. Построение экономико-математической модели формирования плана производства. Основные виды транспортных задач, пример и способы ее решения.
курсовая работа [477,9 K], добавлен 12.01.2011Основные понятия математического моделирования, характеристика этапов создания моделей задач планирования производства и транспортных задач; аналитический и программный подходы к их решению. Симплекс-метод решения задач линейного программирования.
курсовая работа [2,2 M], добавлен 11.12.2011Граф как множество вершин (узлов), соединённых рёбрами, способы и сфера их применения. Специфика теории графов как раздела дискретной математики. Основные способы преобразования графов, их особенности и использование для решения математических задач.
курсовая работа [1,8 M], добавлен 18.01.2013Проектирование методов математического моделирования и оптимизации проектных решений. Использование кусочной интерполяции при решении задач строительства автомобильных дорог. Методы линейного программирования. Решение специальных транспортных задач.
методичка [690,6 K], добавлен 26.01.2015Понятия и определения орграфа и неориентированного графа, методы решения. Неориентированные и ориентированные деревья. Подробное описание алгоритмов нахождения кратчайших путей в графе: мультиграф, псевдограф. Матрица достижимостей и контрдостижимостей.
курсовая работа [251,0 K], добавлен 16.01.2012Оптимизация как раздел математики, ее определение, сущность, цели, формулировка и особенности постановки задач. Общая характеристика различных методов математической оптимизации функции. Листинг программ основных методов решения задач оптимизации функции.
курсовая работа [414,1 K], добавлен 20.01.2010Математическое программирование - область математики, в которой изучаются методы решения задач условной оптимизации. Основные понятия и определения в задачах оптимизации. Динамическое программирование – математический метод поиска оптимального управления.
презентация [112,6 K], добавлен 23.06.2013Методы решения задач с экономическим содержанием повышенного уровня сложности. Выявление структуры экономических задач на проценты. Вывод формул для решения задач на равные размеры выплат. Решение задач на сокращение остатка на одну долю от целого.
курсовая работа [488,3 K], добавлен 22.05.2022Структура текстовой задачи. Условия и требования задач и отношения между ними. Методы и способы решения задач. Основные этапы решения задач. Поиск и составление плана решения. Осуществление плана решения. Моделирование в процессе решения задачи.
презентация [247,7 K], добавлен 20.02.2015Приведены решения задач по темам, соответствующим учебному плану, даны необходимые методические указания и приведены задания для контрольной работы.
практическая работа [150,4 K], добавлен 16.07.2007