ShPORA_po_VychMetodKompMod
.pdf
9. Графическое решение задач линейного программирования
Среди всех точек выпуклой области, являющейся решением системы ограничений, выбрать такую, координаты которой минимизируют (максимизируют) линейную функцию F = с1x + с2y. Заметим, что переменные x, y в ЗЛП принимают, как правило, неотрицательные значения (x≥ 0, y ≥ 0), поэтому область расположена в 1 четверти координатной плоскости. Рассмотрим линейную функцию F = с1x + с2y и зафиксируем какое-нибудь ее значение F.
Пусть, к примеру, F = 0, т.е. с1x + с2y = 0. Графиком этого уравнения будет прямая, проходящая через начало координат
(0;0).
При изменении фиксированного значения F = d, прямая с1x+ с2y = d будет смещаться параллельно и «зачертит» всю плоскость. Пусть D – многоугольник – область решения системы ограничений. При изменении d
прямая с1x + с2y = d, при некотором значении d = d1 достигнет многоугольника D, назовем эту точку А «точкой входа», и затем, пройдя многоугольник, при некотором значении d = d2 будем иметь с ним последнюю общую точку В, назовем В «точкой выхода». Очевидно, что своего наименьшего и наибольшего значения целевая функция F = с1x + с2y достигнет в точках «входа» А и «выхода» В.
Учитывая, что оптимальное значение на множестве допустимых решений целевая функция принимает в вершинах области D, можно предложить следующий план решения ЗЛП:
построить область решений системы ограничений;
построить прямую, соответствующую целевой функции, и параллельным переносом этой прямой найти точку «входа» или «выхода» (в зависимости от требования минимизировать или максимизировать целевую функцию);
определить координаты этой точки, вычислить в них значение целевой функции.
Заметим, что вектор (с1, с2), перпендикулярный прямой, показывает направление роста целевой функции. При графическом решении ЗЛП возможны два случая, которые требуют особого обсуждения.
Случай 1. При перемещении прямой с1 x + с2y= d «вход» или «выход» (как на рисунке) произойдет по стороне многоугольника. Это случится, если в многоугольнике есть стороны, параллельные прямой с1х + с2у = d . В этом случае точек «выхода» («входа») бесчисленное множество, а именно
– любая точка отрезка АВ. Это означает, что целевая функция принимает максимальное (минимальное) значение не в одной точке, а во всех точках, лежащих на соответствующей стороне многоугольника D.
Случай 2. Рассмотрим случай, когда область допустимых значений неограниченна. В случае неограниченной области целевая функция может быть задана таким образом, что соответствующая ей прямая не имеет точки «выхода» (или «входа»). Тогда максимальное значение функции (минимальное) не достигается никогда – говорят, что функция не ограничена.
Геометрическая интерпретация, которой мы пользовались при решении задач ЛП, перестает быть пригодной для этой цели при числе свободных переменных n – m > 3, а затруднительна уже при n – m = 3. Для нахождения решения задачи ЛП в общем случае применяются не геометрические, а вычислительные методы.
Из них наиболее универсальным является так называемый симплекс-метод. Универсальный метод решения задач ЛП называется симплекс-методом.
Пример. Решить следующую задачу ЛП в канонической форме симплекс-методом.
(5)
(6)
xi ≥ 0, i = 1,…,6 (7)
Говорят, что задача ЛП имеет каноническую форму, если все ограничения (кроме условий неотрицательности переменных) имеют вид равенств, а все свободные члены неотрицательны. Так что мы имеем задачу в канонической форме.
Идея симплекс-метода заключается в следующем. Сначала нужно найти некоторую (начальную) вершину многогранника допустимых решений (начальное допустимое базисное решение). Затем нужно проверить это решение на оптимальность. Если оно оптимально, то решение найдено; если нет, то перейти к другой вершине многогранника и вновь проверить на оптимальность. Ввиду конечности вершин многогранника (следствие конечности ограничений задачи ЛП) за конечное число "шагов" мы найдем искомую точку минимума или максимума. Надо заметить, что при переходе от одной вершины к другой значение целевой функции убывает (в задаче на минимум) или возрастает (в задаче на максимум).
Таким образом, идея симплекс-метода основывается на трех свойствах задачи ЛП.
10. Методы и модели динамического программирования. Принцип оптимальности Беллмана
Динамическое программирование — раздел математического программирования, представляет собой совокупность приемов, позволяющих находить оптимальные решения, основанные на вычислении последствий каждого решения и выработке оптимальной стратегии для последующих решений.
Ключевая идея в динамическом программировании достаточно проста. Как правило, чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение. Часто многие из этих подзадач одинаковы. Подход динамического программирования состоит в том, чтобы решить каждую подзадачу только один раз, сократив тем самым количество вычислений. Это особенно полезно в случаях, когда число повторяющихся подзадач экспоненциально велико.
Метод динамического программирования сверху — это простое запоминание результатов решения тех подзадач, которые могут повторно встретиться в дальнейшем.
Динамическое программирование снизу включает в себя переформулирование сложной задачи в виде рекурсивной последовательности более простых подзадач.
Процессы принятия решений называются многошаговыми процессами. Математически оптимизационная задача строится с помощью таких соотношений, которые последовательно связаны между собой: например, полученный результат для одного года вводится в уравнение для следующего и т. д. Динамическое программирование применяется не обязательно для задач, связанных с течением времени. Многошаговым может быть и процесс решения вполне статической задачи. Например, некоторые задачи распределения ресурсов.
Общим для задач динамического программирования является то, что переменные рассматриваются последовательно. Сущность состоит в том, что строится такая вычислительная схема, когда вместо одной задачи со многими переменными строится много задач с малым числом переменных в каждой. Это значительно сокращает объем вычислений.
Однако преимущество достигается лишь при двух условиях: 1) когда критерий оптимальности аддитивен, т. е. общее оптимальное решение является суммой оптимальных решений каждого шага; 2) и когда будущие результаты не зависят от предыстории того состояния системы, при котором принимается решение.
Это вытекает из принципа оптимальности Беллмана, лежащего в основе теории динамического программирования. Из него вытекает — нахождение правил доминирования, на основе которого на каждом шаге производится сравнение вариантов будущего развития и отсеивание заведомо бесперспективных вариантов. Когда эти правила обращаются в формулы, определяющие элементы последовательности, их называют разрешающими правилами.
Можно выделить два наиболее общих класса задач, к которым мог бы быть применим этот метод. Первый — задача планирования деятельности экономического объекта (предприятия, отрасли и т.п.) с учетом изменения потребности в производимой продукции во времени.
Второй класс задач — оптимальное распределение ресурсов между различными направлениями во времени. Сюда можно отнести, в частности, такую задачу: как распределить урожай зерна каждого года на питание и на семена, чтобы за ряд лет получить наибольшее количество хлеба?
Особенно эффективно применяется динамическое программирование тогда, когда по самому существу задачи приходится принимать решения по этапам. Покажем это на простом примере задачи ремонта и замены оборудования.
Пример. На литейной машине изготавливаются одновременно две шины в двух формах. Если одна форма выходит из строя, машину приходится разбирать. При этом может оказаться выгодным заменить также и вторую форму, чтобы лишний раз не разбирать машину, если и эта форма выйдет из строя на следующем этапе. Более того, бывает, что есть смысл заменить обе формы до того, как одна из них выйдет из строя. Методом динамического программирования определяется наилучший вариант замены форм с учетом всех факторов: выгоды от продолжения эксплуатации формы, потерь от простоя машины, стоимости забракованных шин и т.д.
Метод динамического программирования позволяет с успехом решать многие задачи экономического планирования.
11. Использование электронных таблиц при решении задач линейной оптимизации
Для решения задач оптимизации широкое применение находят различные средства Excel. В этом разделе рассмотрим команды: 1) Подбор параметров для нахождения значения, приводящего к требуемому результату. 2) Надстройку Поиск решения для расчета оптимальной величины по нескольким переменным и ограничениям; 3) Диспетчер сценариев для создания и оценки наборов сценариев «что – если» с несколькими вариантами исходных данных.
Подбор параметров. Основной командой для решения оптимизационных задач в Excel является команда Сервис/Подбор параметра. Эта команда определяет неизвестную величину, приводящую к требуемому результату. Для работы с командой Подбор параметра необходимо подготовить лист, чтобы в листе находились: формула для расчета; пустая ячейка для искомого значения; другие величины, которые используются в формуле. Ссылка на пустую ячейку должна обязательно присутствовать в формуле, так как именно она является переменной, значение которой ищет Excel. Во время подбора параметра в переменную ячейку непрерывно заносятся новые значения, пока не будет найдено решение поставленной задачи. Такой процесс называется итерацией, и продолжается он до тех пор, пока редактор не выполнит 100 попыток или не найдет решения, лежащее в пределах точности 0,001 от точного значения.
Команда Поиск решения. Для решения сложных задач, требующих применения линейного и нелинейного программирования, а также методов исследования операций применяется надстройка - Поиск решения. Чтобы использовать надстройку Поиск решения не обязательно знать методы программирования и исследования операций, но необходимо определять, какие задачи можно решать этими методами. Пользователь должен уметь с помощью диалоговых окон надстройки Поиск решения правильно сформулировать условия задачи, и если решение существует, то ―Поиск решения‖ отыщет его. Общие свойства, которые характерны для задач, решаемых с помощью надстройки Поиск решения:
Существует единственная целевая ячейка, содержащая формулу, значение которой должно быть сделано максимальным, минимальным или же равным, какому-то конкретному значению.
Формула в этой целевой ячейке содержит ссылки на ряд изменяемых ячеек. Поиск решения заключается в том, чтобы подобрать такие значения переменных в изменяемых ячейках, которые бы обеспечили оптимальное значение для формулы в целевой ячейке.
Может быть задано некоторое количество ограничений — условий или соотношений, которым должны удовлетворять некоторые из изменяемых ячеек.
12. Решение задачи о распределении ресурсов методами динамического программирования
Метод динамического программирования позволяет решать многие задачи экономического планирования. Ситуация: Министерство располагает денежными средствами –– 8 млн усл. ед., которые необходимо
распределить между тремя его заводами. Ожидаемый доход предприятия i при условии, что ему выделяют х млн усл. ед., равен fi(x). Исходные данные содержатся в следующей таблице (для простоты полагаем, что денежные суммы выражаются целыми числами от 0 до 8).
|
|
|
|
|
|
|
|
|
|
Как распределить имеющиеся средства |
||||
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|||||
|
|
|
|
|||||||||||
f1(x) |
0 |
0,1 |
0,2 |
0,5 |
0,5 |
0,6 |
0,8 |
0,9 |
0,9 |
между |
заводами, чтобы |
получить |
||
наибольшую прибыль? |
|
|
||||||||||||
f2(x) |
0 |
0,3 |
0,35 |
0,4 |
0,45 |
0,5 |
0,5 |
0,7 |
0,75 |
|
|
|||
Пусть |
в общем |
случае надо |
||||||||||||
f3(x) |
0 |
0,2 |
0,4 |
0,55 |
0,6 |
0,65 |
0,7 |
0,75 |
0,85 |
|||||
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
распределить а млн усл. |
ед. |
между n |
||
заводами. Поступим следующим образом. Будем считать, что сначала все денежные средства мы отдаем первому заводу, потом разделим их между первым и вторым, затем между тремя заводами. Каждый раз вначале распределяем 1 млн усл. ед., затем 2, 3 и т. д.
Обозначим через Fk(x) наибольший доход, который можно получить, разделив сумму х между предприятия 1, 2, …, k, где 1 k n, 0 х а.
Решение задачи будет состоять в последовательном вычислении значений F1(x), F2(x), …, Fn(x) для всех х от 0 до а. Закончим вычислением Fn(a), которое дает оптимальное значение величины дохода.
Прежде всего, найдем F1(x). Поскольку в этом случае все достается только первому предприятию, то F1(x) = f1(x) для любого x.
Предположим, что мы знаем, как лучше разделить х млн усл. ед. между k – 1 предприятиями и какой при этом будет суммарный доход, то есть известны значения Fk – 1(x) для всех х от 0 до а. Теперь распределим эти средства между k предприятиями.
Мы можем выделить заводу k любую сумму от 0 до х. Допустим, что она составляет у млн усл. ед. и прибыль завода в этом случае –– fk(у). Тогда на долю первых k – 1 заводов приходится (х – у) млн усл. ед. Как лучше вложить их мы знаем и известна прибыль Fk – 1(х – у), получаемая в итоге. Отсюда выводим, что суммарный доход k предприятий будет равен
Fk – 1(x – у) + fk(у).
Можно было бы выделить заводу k и другую сумму, при этом общий доход мог бы увеличиться. Поэтому надо рассмотреть все возможные варианты вложения средств и
выбрать лучший. Следовательно, Fk |
( x) max{Fk 1 ( x y) fk ( y)} . (12.4). |
|
0 y x |
Обозначим Yk(x) значение y, при котором достигается максимум Fk(x). Таким образом, Yk(x) –– это вложение в предприятие k при условии оптимального распределения х млн усл. ед. между предприятиями 1, 2, …, k. Зная Yn(a) и промежуточные значения Yk(х), можно узнать, какую сумму получит каждое из предприятий при оптимальном распределении денежных средств между ними. Рассмотрим, как это делается для исходных данных в ситуации. Значения Fk(x) и Yk(х), вычисляемые последовательно, будем располагать в таблицах.
Как уже отмечалось, F1(х) = f1(х) для любого х, поэтому сразу получаем доход при финансировании только первого завода. Сведем эти данные в таблицу:
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
8 |
|
|
|
F1(х) |
0,0 |
0,1 |
0,2 |
0,5 |
0,5 |
0,6 |
0,8 |
0,9 |
|
0,9 |
|
|
|
Ясно также, то Y1(x) = x для всех x: |
|
|
|
|
|
|
|
|
|||||
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
8 |
Переходим |
к |
распределению |
Y1(x) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
8 |
денежных средств |
между двумя |
|
По формуле F2 |
( x) max{F1 ( x y) f2 ( y)} |
|
|
заводами. |
|
|
|||||||
находим: |
|
|
|||||||||||
|
|
|
|
0 y x |
|
|
|
|
|
|
|
|
|
F2 |
(0) max{F1 (0 y) f2 |
( y)} F1 (0) f2 |
(0) 0; Y (0) 0; |
|
0 y 0 |
|
2 |
|
|
|
F2 (1) max{F1 (1 y) f2 ( y)} max{F1 (1) f2 (0);F1(0) f2 (1)}
0 y 1
max{0,1 0,0; 0,0 0,3} 0,3;
Y2 (1) 1; |
F2 (2) max{F1 (2 y) f2 ( y)} max{F1(2) f2 (0); F1(1) f2 (1); F1(0) f2 (2)} |
|||||||||||||
|
|
|
0 y 2 |
|
|
|
|
|
|
|
|
|
|
|
max{0,2 0,0; 0,1 0,3; |
0,0 0,35} 0,4; Y2 (2) 1; |
|
|
|
||||||||||
Действуя далее аналогичным образом, находим F2(х) и Y2(х) для x = 3, 4, …, 8: |
||||||||||||||
|
|
x |
|
0 |
1 |
|
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
|
|
F1(х) |
0,0 |
0,1 |
|
0,2 |
0,5 |
0,5 |
0,6 |
0,8 |
0,9 |
0,9 |
|
|
|
|
F2(х) |
|
0,0 |
0,3 |
|
0,4 |
0,5 |
0,8 |
0,85 |
0,9 |
1,1 |
1,2 |
|
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Мы определили |
Y1(x) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
наибольший доход при |
Y2(x) |
0 |
1 |
1 |
0 |
1 |
2 |
1 |
1 |
1 |
финансировании двух заводов. |
|
|
|
|
|
|
|
|
|
|
Осталось распределить денежные средства между тремя заводами. Расчеты ведем по
формуле |
F ( x ) m a x{F |
2 |
x( y )f |
3 |
y ( |
) } |
|
3 |
0 y x |
|
|
. При этом промежуточные вычисления можно не |
|||
|
|
|
|
|
|
|
|
проводить, т. к. значения F3(х) для x = 0, 1, …, 7 уже не нужны. |
|||||||
Имеем: |
F3 |
(8) max{F2 (8 y) f3 ( y)} max{F2 (8 0) f3 (0); F2 (8 1) f3 (1); F2 (8 2) |
|||||
|
|
0 y 8 |
|
|
|
|
|
f3 (2); F2 (8 3) f3 (3); F2 (8 4) f3 (4); F2 (8 5)
f3 (5); F2 (8 6) f3 (6); F2 (8 7) f3 (7); F2 (8 8) f3 (8)}
max{1,2 0,0; 1,1 0,2; 0,9 0,4; 0,85 0,55; 0, 8 0,6; 0,5
0,65; 0,4 0,7; 0,3 0,75; 0,0 0,85} 1,4. Y3 (8) 3;
В итоге получаем таблицы:
x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||||||||
F1(х) |
0,0 |
0,1 |
0,2 |
0,5 |
0,5 |
0,6 |
0,8 |
0,9 |
0,9 |
||||||||
F2(х) |
0,0 |
0,3 |
0,4 |
0,5 |
0,8 |
0,85 |
0,9 |
1,1 |
1,2 |
||||||||
F3(х) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
8 |
Y1(x) |
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
8 |
|
Y2(x) |
0 |
|
1 |
|
1 |
|
0 |
|
1 |
|
2 |
|
1 |
|
1 |
1 |
|
Y3(x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Таким образом, наибольший ожидаемый доход F3(8) = 1,4 млн усл. ед.
Заметим, что на этом последнем шаге максимум достигается в двух случаях: 0,85 + 0,55 = 1,4 и 0,8 + 0,6 = 1,4. Если третьему заводу выделить 3 млн усл. ед., то сколько досталось второму заводу мы узнаем из второй таблицы: Y2(8 – 3) = Y2(5) = 2. Аналогично, первому заводу досталось Y1(5 – 2) = Y1(3) = 3 млн усл. ед. В итоге первому заводу достается 3, второму –– 2, третьему –– тоже 3 млн. усл. ед.
Если же третьему заводу выделить 4 млн усл. ед., то в этом случае Y2(8 – 4) = Y2(4) = 1 и Y1(4 – 1) = Y1(3) = 3. То есть первому заводу достается 3, второму –– 1, третьему –– 4 млн усл. ед.
В каждом из этих случаев общая прибыль составляет 1,4 млн усл. ед.
Заметим, что величина оптимальной прибыли при распределении денежных ресурсов между предприятиями не зависит от их нумерации.
13. Имитационное моделирование.
Идея метода статистических испытаний (Монте-Карло)
Имитационное моделирование — метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику.
Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется моделью, с достаточной точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения информации об этой системе. Экспериментирование с моделью называют имитацией.
Кимитационному моделированию прибегают, когда:
дорого или невозможно экспериментировать на реальном объекте;
невозможно построить аналитическую модель: в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные;
необходимо сымитировать поведение системы во времени.
Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами или другими словами — разработке симулятора исследуемой предметной области для проведения различных экспериментов.
Имитационное моделирование позволяет имитировать поведение системы во времени. Причѐм плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны. С наступлением эпохи персональных компьютеров производство сложных и уникальных изделий, как правило, сопровождается компьютерным трѐхмерным имитационным моделированием. Эта точная и относительно быстрая технология позволяет накопить все необходимые знания, оборудование и полуфабрикаты для будущего изделия до начала производства. Компьютерное 3D моделирование теперь не редкость даже для небольших компаний.
Виды имитационного моделирования:
1)Агентное моделирование. Цель агентных моделей — получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе.
2)Дискретно-событийное моделирование — подход к моделированию, предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы, такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие.
3)Системная динамика — парадигма моделирования, где для исследуемой системы строятся графические диаграммы причинных связей и глобальных влияний одних параметров на другие во времени, а затем созданная на основе этих диаграмм модель имитируется на компьютере.
Идея метода Монте-Карло:
Метод решения задач с помощью случайных чисел
Метод статистических испытаний
Общая схема метода основана на центральной предельной Теореме теории вероятности, утверждающей, что случайная величина равна сумме большого числа произвольных случайных величин, с одинаковым математическим ожиданием и дисперсиями, всегда распределена по нормальному закону с суммарным математическим ожиданием и дисперсиями. Так как у нас есть компьютерный генератор случайных чисел, появилась возможность решать задачи методом МонтеКарло.
Метод основан на получении большого числа реализаций случайного процесса, который формируется теорией, что его вероятностные характеристики совпадают с аналогичными величинами решаемой задачи.
14. Вычисление определенного интеграла методом Монте-Карло
b
Предположим, что нужно взять f ( x)dx от какой-либо функции.
a
b
Под f ( x)dx понимаем S, ограниченную графиком подинтегральной
a
функции. Для нахождения S можем воспользоваться одним их простых численных методов: разбить отрезок на подотрезки и посчитать площадь под графиком функции на каждом из этих отрезков и сложить.
Расмотрим случайную величину xi (распределение на отрезке [a, b]). Тогда случайная величина (x‖i) так же является мат. ожиданием и выражается как:
b
M(x,y)= f ( x)dx xi f ( x)dx .
a
1
Плотность распределения выражается b a на [a, b].
b
Тогда искомый интеграл выражается, как xi dx (b a)M ( xi )dx
a
Бросим N точек равномерно распределѐнных на [a, b].
Проведя N вычислений, значение интеграла определим по следующей
b |
b a |
N |
|
формуле: f ( x)dx |
f ( xi ) R . |
||
N |
|||
a |
i 1 |
||
|
Точность зависит только от N(к-во точек)
f(x)
fi
x
xi
a |
b |
15. Нахождение площади геометрической фигуры методом Монте-Карло
Для определения площади под графиком функции можно использовать следующий стахостический алгоритм:
1.Ограничить функцию прямоугольником, S(пр) которого легко вычислить
2.Набросаем в этом прямоугольнике некоторое количество точек, координаты которых будем выбирать случайным образом.(n-шт.)
3.Определим число точек, которые попадут под график функции.(k-шт.)
4.S области, ограниченной функцией и осями координат даѐтся выражением
S=S(пр)k\n. Для малого числа измерений интегрированной функции производительность Монте-Карло интегрирования ниже, чем производительность простого метода вычисления.
В случаях, когда функция задана неявно стахостичекий метод оказывается более продуктивным.
16. Основные понятия и определения теории графов
Теория графов - это область дискретной математики, особенностью которой является
геометрический подход к изучению объектов. Теория графов находится сейчас в самом расцвете. |
|
Графом G называют пару множеств (V, E), где V – множество вершин графа (точек); E – |
|
семейство ребер графа (отрезков или дуг, соединяющих вершины в пары): V={v1,v2,v3,…,vn}; |
|
E={e1, e2 , e3,…,em }; Пример графа: V 1, 2, 3, 4, 5 , |
E (1, 2),(2, 3),(3, 4),(1, 5),(1, 4),(3,1) . |
То есть, элементы множества V называются вершинами графа. Элементы множества E ребрами графа. Ребра вида (v,v), в которых первый элемент равен второму элементу, называются петлями. Или, если концевые вершины ребра совпадают, то ребро образует петлю (дугу, начало и конец которой совпадают).
Если пара (v1,v2) E − ребро, то v1 и v2 называются концами этого ребра. В этом случае вершины v1 и v2 называются смежными в графе, а само ребро (v1, v2) называется инцидентным
вершинам v1 и v2.
Пусть в графе есть ребро (v1,v2), тогда можно считать, что в нем есть ребро (v2,v1). Если при этом указанные ребра не различать (т. е. (v1,v2)= (v2,v1), пары считаются неупорядоченными), то граф называется неориентированным графом.
Если в графе есть несколько одинаковых ребер вида (v1,v2) , то такое ребро называют кратным. Графы можно изображать графически. Вершины изображаются точками, ребра изображаются линиями соединяющие соответствующие вершины.
Число вершин графа называют порядком графа и обозначают V = n. Граф будем обозначать парой G = (V, E).
Граф G называется помеченным, если его вершинам приписаны числа 1, 2, …, п, где п − порядок графа. Граф можно задать с помощью матрицы размера n x n: А(G)=[aij], где 1 i, j n
|
1, ребро(v |
, v |
|
|
|
i |
|
aij |
|
|
, v |
|
0, ребро(vi |
||
|
|
|
|
j
j
) E
) E эта матрица симметрична с нулями по главной диагонали. Она
называется матрицей смежностей графа G = (V, E).
Ребра графа могут быть ориентированными или неориентированными. При изучении бинарных отношений были использованы графы, все ребра которых ориентированы. Такие графы называют ориентированными графами или орграфами.
Если вершины vi и vj (i≠j) соединены ребром ek= (vi,vj), то их называют смежными вершинами. Если ребра ek, el имеют общую вершину, то их называют смежными ребрами. Если вершина vi является концом ребра ej, то vi называют вершиной, инцидентной ребру ej, а ej – ребром, инцидентным вершине vi.
Степенью вершины графа называется число инцидентных ей ребер, (число вершин смежных этой вершине, число ребер выходящих из этой вершины, число ребер входящих в нее). Обозначают степень вершины v через deg (v).
Вершина называется изолированной, если еѐ степень равна нулю, и называется концевой (висячей), если еѐ степень равна единице. Вершина называется доминирующей, если она смежная со всеми вершинами графа. Сумма степеней всех вершин графа есть четное число. в любом графе число вершин с нечетными степенями четно.
