Определения:
-Корневой узел — самый верхний узел дерева (узел 1 на рис.4).
-Корень — одна из вершин, по желанию наблюдателя.
-лист, листовой или терминальный узел — узел, не имеющий дочерних элементов.
-Внутренний узел — любой узел дерева, имеющий потомков, и таким образом, не являющийся листовым узлом.
-Дерево считается ориентированным, если в корень не заходит ни одно ребро.
Каждый узел дерева должен иметь в точности один родительский узел (разумеется, за исключением корневого узла – для него родителя не существует). В сети же любой узел (иногда называемый вершиной) может быть соединен связями (которые иначе называются дугами или ребрами) с произвольным количеством других узлов. В зависимости от поставленной задачи связи могут быть ориентированными, иначе говоря, направленными (указывающими одно направление), либо неориентированными, или ненаправленными (можно переходить по данной связи в обоих направлениях), а понятий родительского узла и корня не существует. Во многих представлениях связь также характеризуется некоторой величиной − весом (иногда называемой cost − цена, distance − расстояние или length − длина), которую можно понимать как стоимость перехода по данной дуге.
3. Простой алгоритм
Рассмотрим пример о построении дорог:
В городе возможно строительство новых дорог. Инженеры определили идеальные места расположения этих дорог. Эти места представлены узлами сети , приведенном ниже рисунке. Дуги сети отражают возможные альтернативы дорог. Инженеры хотят минимизировать общую протяженность дорог, которые требуется проложить в городе, и при этом обеспечить доступ ко всем узлам. Какова минимальная протяженность дорог?
Определение такой системы связи минимальной длины представляет собой пример дерева кратчайших расстояний. Сеть применительно к этой задаче с различными возможными альтернативными связи и расстояния показаны на рисунке 1.
Метод, который может быть использован для решения задачи нахождения дерева кратчайших расстояний, очень прост.
Шаг1. начните произвольно с любого узла и соедините его с ближайшим узлом. Эти два узла теперь рассматриваются как связанные узлы, а остальные – как несвязанные узлы.
Шаг 2. определение несвязанный узел, который наиболее близок к одному из связанных узлов. Если два или более узлов можно рассматривать как ближайшие, то выберите любой из них. Добавьте этот новый узел к связанным узлам. Повторяйте этот шаг до тех пор, пока все узлы не станут связанными.
Этот сетевой алгоритм легко реализуется, если выбирать связи непосредственно на графе сети.
Обращаясь к сети связи для регионального вычислительного центра и начиная с узла 1, мы находим, что ближайшим является узел 2 с расстояния 20. используя жирные линии для пометки дуги, обеспечивающая соединение узлов 1 и 2, мы приходим к следующему результату, характеризующему шаг 1 (рис. 2).
На втором шаге метода находим, что несвзанный узел, ближайший к одному из связанных узлов, есть узел 4 с расстоянием 30 км от узла 1. добавляя узел 4 к множеству связанных узлов, мы получаем следующий результат (рис. 3).
Повторение шага, заключается в добавлении ближайшего несвязанного узла к связанному сегменту сети, дает нам решение задачи о дереве кратчайших расстояний, показана на рисунке 4. Повторяйте шаги метода и посмотрите, получите ли вы решение. Минимальная длина дерева представлена суммой расстояний на дугах, образующих дерево. В данном случае сумма расстояний в сети регионального вычислительного центра составляет 110 км. Заметим, что хотя дуги сети вычислительного центра измерялись в км, другие сетевые модели могут характеризоваться совсем другими показателями – затратами, временем и т.д. В таких случаях алгоритм дерева кратчайших расстояний будет приводить к оптимальному решению (минимальные затраты, минимальное время и т.д.) приминительно к рассматриваемому критерию.
