- •1.1. Введение.
- •1.2. Оптимизационные задачи в 2.
- •1.4. Понятие о nр-полноте.
- •Условие целочисленности решения задачи лп.
- •Критерий полной унимодулярности.
- •Задача о назначениях.
- •Задача коммивояжера.
- •2. Принятие решений и элементы теории игр.
- •2.1. Задачи многокритериальной оптимизации.
- •2.3. Игры.
- •Дележи.
- •3. Сетевые модели.
- •3.1. Способы задания графов.
- •3.2. Изоморфизм графов.
- •П оиск простейших узких мест графа за o(|e|).
- •3.3. Остовные деревья.
- •Описание алгоритма Прима:
- •Корректность алгоритма Прима.
- •3.4. Кратчайшие пути в графах. Волновой алгоритм построения дкп (Дейкстра)
- •Нахождение кратчайшего пути для ациклического орграфа
- •3.5. Потоковые задачи Задача о максимальном потоке (змп).
- •На входе: матрицы а –пропускных способностей, и c – цен, c ij 0 - стоимость пропуска единицы потока по ребру (I,j), f0 - ограничение на величину потока.
- •3.6. Приближенное решение np-полных задач.
- •Задача о максимальной клике.
- •3.7. Точные методы решения np-полных задач.
- •4. Элементы теории массового обслуживания.
- •4.1. Пуассоновский поток событий
- •4.2. Моделирование простейшего потока.
- •4.3. Процессы гибели и размножения.
- •Классификация систем массового обслуживания:
- •4.4. Открытая система м | м | 1 (один врач).
- •4.5. Замкнутые системы с резервированием. Будем различать горячий и холодный резервы, т.Е. Исправные, но включенные или выключенные приборы.
- •4.6. Задачи проектирования сетей технического обслуживания.
- •3.5. Алгоритм Тарьяна (для планарных графов мод строится за o(n)).
3.2. Изоморфизм графов.
f: VL VR —перевод. f()= означает, что переводится словом , f({1,...,k})={f(1),...,f(k)}.
Для изоморфизма графов GR и GL необходимо совпадение любых легко вычислимых характеристик.
Если граф GL связный, то и граф GR связный, число вершин и ребер в графах совпадает.
Убывающие вектора степеней вершин S(VR) и S(VL) совпадают.
V(k) - множество вершин графа G ={V, E}, имеющих степень k, |V| - мощность множества V, |VR(k)|=|VL(k)| и f(VL(k))=VR(k) для каждого k. В т.ч., если VL(k)={} и VR(k)={}, то f()=.
N(,k) — множество вершин,смежных с вершиной , и имеющих степень k, N() = U N(,k) f()= S(N())=S(N()) и f(N(,k))=N(,k) при каждом k.
VL(k)={,} и VR(k)={,} минимальное число ребер на пути из в dL(,)=dR(,).
f()= и f()=dL(,)=dR(,). Вершину надо искать на расстоянии d(,) от вершины .
Число циклов длины k в обоих графах совпадает при всех k.
C(k, m) множество вершин, входящих ровно в m циклов длины k, |CL(k,m)| = |CR(k,m)| и f(CL(k,m))= CR(k,m) при всех k и m.
Свойства 3, 4, 6 и 8 позволяют частично формировать соответствие f.
№ 18. Лингвистическая задача, использующая изоморфизм графов.
Дано множество L слов языка суахили {kibuzi, mbuzi, mgeni, mtu, jitu, jito } и множество R их переводов на русский язык {великан, человек, большая река, козочка, коза, гость}. Выделить морфемы в словах из L и перевести их.
Решение. Все русские переводы можно представить в виде пар повторяющихся имен объектов (человек, коза, гость, река) и их размеров (большой, маленький, средний): великан = большой человек, козочка = маленькая коза, коза = средняя коза. Нарисуем граф GR множества русских слов из R. Выделим повторяющиеся части в словах языка суахили: buzi повторяется с ki и m, с m еще встречаются tu и geni, с tu – ji, с ji – to. Естественно предположить, что это морфемы языка суахили, имеющие самостоятельное значение. Нарисуем на них граф GL.
Оба графа – деревья, содержащие по одной вершине степени 3: m=средний, причем все 3 поддерева являются цепочками из различного числа элементов. Значит, равны цепочки: geni=гость, buzi-ki=коза-маленький, tu-ji-to=человек-большой-река.
В неориентированных графах есть только ребра дерева и B-ребра. Стрелки удобно указывать на ребрах дерева T – в сторону предков, на B-ребрах – в сторону потомков.
Пусть вершины пронумерованы в порядке их раскрытия при поиске сначала вглубь, π(i) – непосредственный предок вершины i в дереве поиска T (0 для начальных вершин компонент связности), k=|π -1(0)| = число компонент. Тогда T={(i,π(i)) | π(i)>0}, |T|=|V|-k, E=T+B. Большинство ребер графа –B-ребра, каждое из них при добавлении в дерево T порождает T-цикл.
Пусть low(i) = min номер вершины, лежащей на T-циклах, содержащих i.
П оиск простейших узких мест графа за o(|e|).
Вершину графа называют точкой раздела, а ребро – мостом, если при их удалении число компонент графа возрастает.
Цикл по eT позволяет провести декомпозицию графа.
e=(i,j)E является мостом eT & low(i)=i.
jV суть точка раздела π(j)=0 & |π -1(j)|>1 или π(j)>0 & j=π(i) & low(i){i,j}.
low(i), проставленный в примере рядом с номером вершины, можно вычислить так:
for i=1 to n {low(i)=0;} for i=1 to n {if low(i)=0 then low(i)=i; for all jBi {k=j;
while k>0 & low(k)=0 {low(k)=i; k=π(k)}}} Здесь Bi – список B-ребер, исходящих из i.
В примере получаем: мосты при i=5, 6, 11; точки раздела – 2,3,5,6,8 при i=3,5,6,7,11. Удалив все мосты, а затем все изолированные точки, выделим двусвязные компоненты.
Дальнейший поиск изоморфизма ведется на более мелких компонентах (аналог разложимых СП).