Допустим, что требуется объединить несколько электростанций vi
(i=l, 2, ..., п) в систему так, чтобы при необходимости в моменты перегрузок можно было пользоваться энергетическими запасами любой из них. Пусть каждая станция vi (i= I,..., п) в зависимости от ее размера и потенциальных возможностей должна быть непосредственно связана, по крайней мере, с di другими станциями. Стоимость прямого соединения различных станций vi и vj выражается действительным числом cij.
Задача объединения электростанций состоит в том, чтобы спроектировать систему связей, имеющую минимальную общую стоимость и удовлетворяющую требованиям по di для всех станций. Очевидно, она эквивалентна следующей задаче теории графов. Дан полный граф с вершинами vi (i= 1.....п) и весами cij, приписанными каждому ребру eij, соединяющему vi и vj. Требуется найти подграф, имеющий минимальную взвешенную сумму ребер, степень вершины vi которого, по крайней мере, di. Можно также искать подграф, имеющий максимальную взвешенную сумму ребер, каждая вершина которого имеет степень не больше п—di—1, а затем взять дополнительный граф. Видно, что при таком подходе исходная задача требует использования обоих обобщений задачи о максимальном паросочетании, рассмотренных в конце раздела 5.14.
В частном случае, когда вершины раделены на два класса так, что каждое ребро, соединяющее пару вершин одного и того же класса, имеет вес, равный нулю, задача объединения станций сводится к транспортной задаче. В общем случае, теория решения этой задачи значительно сложнее, чем транспортной.
Задача объединения электростанций или общая задача определения оптимального подграфа с ограниченными степенями вершин по существу связана с большинством экстремальных комбинаторных задач, для которых известны хорошие алгоритмы решения. Эти алгоритмы хороши в том смысле, что объемы вычислений при их применении растут как степенные функции при увеличении размерности задачи. В случае, когда все di=2, мы получаем задачу, очень близкую к задаче коммивояжера. Действительно, небольшая модификация алгоритма объединения станций дает минимальный взвешенный подграф со степенями вершин, равными 2. Если этот подграф связен, то мы получим минимальный маршрут коммивояжера при длинах ребер cij.
5.20. Печатные схемы
Печатная схема представляет собой электрическую сеть, образованную соединительными проводами, нанесенными печатным способом на одной или нескольких плоских поверхностях изоляционного материала. Чаще всего она наносится с двух сторон пластмассовой платы. Соответствующие соединения между проводниками, расположенными с разных сторон платы, делаются с помощью проволочных перемычек, проходящих через отверстия в плате. Так как печатные проводники не изолированы, то они не должны пересекать друг друга (кроме специально заданных точек).
Очевидно, что такая схема может быть нанесена на одну плоскую поверхность тогда и только тогда, когда она соответствует плоскому графу. Возможность печати произвольной неплоской сети на двух сторонах платы, при наличии связей между ними, зависит от природы допустимых связей. Предположим, что соединения допускаются только в определенных узловых точках (вершинах) сети. Другими словами, будем считать, что все вершины отпечатаны с двух сторон платы, одна против другой и каждая взаимно соответствующая пара соединена проволочной перемычкой, проходящей через отверстие в плате. Проводники схемы могут печататься на любой поверхности платы, но дополнительных отверстий в плате делать нельзя.
При таких ограничениях не всякая сеть может быть отпечатана на двух сторонах платы. Ранее было показано, что обыкновенный граф G и его дополнения не являются плоскими графами, если G имеет девять или более вершин. Таким образом, полный (обыкновенный) граф, имеющий девять вершин, нельзя отпечатать, на заданной плате, так как это означало бы, что некоторый подграф G (часть сети, отпечатанная на одной стороне) и его дополнение (часть, отпечатанная на другой стороне) являются плоскими.
Если допускаются дополнительные отверстия и любые перемычки через плату, то в этом случае можно отпечатать любую сеть. Можно, например, начать с вычерчивания сети на плоскости таким образом, чтобы самое большее два провода пересекались в любой точке, которая не является заранее заданным узлом. После этого сеть почти полностью можно отпечатать на одной стороне платы, а в каждом месте пересечения, где не должно быть соединения проводов, один из проводов с помощью двух отверстий и перемычек должен быть пропущен на другую сторону и частично отпечатан на этой стороне. Таким образом, на одной из сторон платы отпечатываются только небольшие участки проводов. Граничные оценки на число такого типа пересечений проводов даны в разделе 5.7.
Предположим теперь, что требуется отпечатать данную сеть при минимально возможном числе дополнительных отверстий в плате (не считая отверстий в вершинах). Любой способ печати схемы можно изобразить, вычертив есть на плоскости, используя для этого два типа дуг. Жирными линиями можно показывать, например, дуги, располагаемые на одной стороне платы, а тонкими линиями — дуги, располагаемые на другой стороне.
Задача может быть теперь переформулирована таким образом: найти наименьшее число дополнительных вершин степени 2 (соответствующих точкам, в которых провод перейдет с одной стороны платы на другую) и изобразить граф таким образом, чтобы в любой точке, отличной от узла, пересекалось самое большее два ребра и эти ребра были различных типов. Естественно каждое ребро должно изображаться линией одного типа (жирной или тонкой),
ЕСТЕСТВЕННЫЕ НАУКИ
5.21. Идентификация в химии
Одна из основных задач теории графов состоит в нахождении хорошего алгоритма для определения того, являются ли два конечных графа одинаковыми в абстрактном смысле или, в более общем случае, является ли один граф подграфом другого. Первая задача называется задачей идентификации графа, а вторая — задачей идентификации подграфа. Чтобы формулировка задачи была более четкой, слову «хороший» нужно придать некоторый математический смысл. Будем считать, что алгоритм является «хорошим», если объем вычислений связанных с его применением для любой пары графов, растет в худшем случае как степенная функция, а не экспоненциально с ростом числа ребер в выбранной паре графов.
Хороший алгоритм идентификации деревьев (но не поддеревьев) разработал Эдмондс. Этот алгоритм мы рассмотрим ниже. Эдмондс считает, что хорошего алгоритма идентификации произвольных подграфов или даже произвольных графов в общем случае не существует. С практической точки зрения задачи индентификации графов и подграфов важны в органической химии, где молекулы представляются в виде графов. Вершины соответствуют атомам, а ребра — связям между атомами.
Существование нескольких видов атомов не вносит серьезных трудностей в задачу идентификации. В настоящее время много внимания уделяется разработке «эвристических» алгоритмов химической идентификации — алгоритмов, не являющихся «хорошими» в нашем смысле, но хорошо работающих на практике. Для химиков важно не только решить задачу идентификации структур, но гораздо более интересно найти удобную систему каталогизации химических препаратов так, чтобы любой препарат можно было легко найти в каталоге или внести туда.
Алгоритм идентификации деревьев использует каталожную систему, построенную на основе линейного упорядочения множества всех конечных деревьев. Однако наличие такой системы совершенно не обязательно. Например, существует хороший алгоритм для определения идентичности (в комбинаторном смысле) любых двух поверхностных карт. Карты обладают свойством комбинаторной «жесткости» — так, что если карты M1 и М2 идентичны и установлено, что ребро е1 в М1 идентично ребру е2 в М2, конечная точка v1 ребра е1 идентична с конечной точкой v2 ребра е2 и грань f1, содержащая е1, идентична с гранью f2, содержащей е2, идентификация оставшихся частей M1 и М2 однозначна и легко устанавливается. Таким образом, для того чтобы установить идентичность карт М1 и М2, необходимо только идентифицировать ребро е1 в М1 с каждым ребром М2 четырьмя способами, соответствующими каждому возможному способу идентификации вершины v1 и грани f1 в М2. Из такой процедуры, конечно, непосредственно не следует система каталогизации карт.
Упомянутое выше свойство «жесткости» можно использовать для определения идентичности деревьев Т1 и Т2, а также идентичности их способа изображения на плоскости. Под идентичностью способа изображения мы будем понимать, что для каждой пары взаимно идентичных вершин v1 в Т1 и v2 в Т2 ребра, которые пересекаются в v1 в изображении T1, располагаются вокруг v1 в том же самом порядке, в каком идентичные ребра расположены вокруг v2 в изображении дерева Т2. Различные способы изображения одинаковых деревьев Т1 и Т2 обычно усложняют проверку на идентичность, а число различных способов изображения дерева, вообще говоря, растет экспоненциально с числом ребер в дереве.
Можно считать, что алгоритм идентификации деревьев есть процедура приведения деревьев к каноническому виду.
Напомним, что корневым деревом является дерево, в котором одна из вершин, в отличие от других, называется корнем. Алгоритм идентификации фактически применяется к корневым деревьям. Поэтому опишем сначала хороший алгоритм приведения любого дерева Т к канонической корневой форме. Пусть Т0 есть дерево Т. Будем формировать Ti+1 из Тi вычеркивая из Тi все вершины степени 1 и инцидентные им ребра. Такой процесс продолжим до тех пор, пока не получим Тi, которое состоит только из одной вершины или одного ребра и его конечных точек. Процесс оказывается конечным для любого исходного дерева Т. Вершина или ребро, получаемые по окончании процесса, называются центром Т.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |


