Научная статья на тему 'Некоторые вопросы генерирования графов на ЭВМ'

Некоторые вопросы генерирования графов на ЭВМ Текст научной статьи по специальности «Математика»

CC BY
42
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Некоторые вопросы генерирования графов на ЭВМ»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 243 1972

НЕКОТОРЫЕ ВОПРОСЫ ГЕНЕРИРОВАНИЯ ГРАФОВ НА ЭВМ

Ю. Н. ЕФИМОВ

(Представлена научным семинаром вычислительной лаборатории ТПИ)

Большой класс задач прикладной математики можно свести к задачам, сформулированным в терминах теории графов [1]. Это прежде всего транспортные и комбинаторные задачи, задачи потокораспределе-ния, задачи, связанные с экономной записью и обработкой больших массивов информации, а также большая группа экстремальных задач теории расписаний. Задачи теории расписаний возникают при необходимости упорядочить во времени течение дискретных процессов, выполняемых с помощью ограниченного множества преобразователей. Подобные задачи имеют место при оперативном планировании и управлении предприятиями, при управлении ходом разработок с помощью сетевых методов (системы СПУ), в теории алгоритмов, в теории игр и в различных других специальных дисциплинах.

Все вышеперечисленные задачи являются задачами анализа графов большой размерности. При решении сетевых задач на ЭВМ, видимо, было бы целесообразно уметь генерировать различные сети для имитации реальных отношений. Генераторы случайных сетей могут найти широкое применение в самых разнообразных математических исследованиях, использующих теорию графов.

Программы анализа крупных графов на ЭВМ обычно логически сложны и вызывают большие трудности при отладке. Часто вызывает затруднение определение границ применимости разработанной программы, так что возникает опасение, что программа не будет удовлетворять требованиям какого-либо реального случая. Генерируя случайные сети, можно быстро проверить программу в различных режимах и установить границы применимости.

Точные решения экстремальных сетевых задач теории расписаний найдены лишь для исключительно упрощенных моделей, а основные практические результаты основываются на эвристических соображениях. При этом для оценки степени эффективности эвристического алгоритма и границ его применяемости удобно пользоваться следующей зависимостью (по аналогии с [2]):

где К — коэффициент эффективности алгоритма,

Р — параметр графа. Очевидно, что такую зависимость не трудно получить, генерируя сети с переменным Р в необходимом интервале.

При поточном решении однотипных задач в сетевой постановке па одной и той же программе необходимо заранее оценить гр-лмя решения

каждой задачи. Построение функции t=f(P) также легко осуществима с помощью генератора графов.

В теории графов генератор сетей, очевидно, может найти эффективное применение для исследования графов со случайной топологией.

Этот далеко не полный перечень возможного использования генератора сетей показывает, что разработка вопросов генерирования графов может оказаться весьма плодотворной. Однако из литературных источников нам неизвестно, чтобы такие вопросы ставились и решались. В настоящей работе предлагается один из возможных алгоритмов генерирования случайных сетей на универсальных ЭВМ.

Пусть мы имеем для ЭВМ программный датчик (ДСЧ), генерирующий целые случайные числа распределенные по какому-нибудь закону (например, равномерному) в диапазоне ск-р. Назовем аир соответственно нижней (анг) и верхней (авг) границей чисел й\.

Граф будем представлять в виде множества вершин / и их отображений Г, так что запись информации для каждой вершины I имеет вид:

I , 0)1 /ь Р1 /2. Р2

■ /со, рсо,

где /, / номера вершин, причем /еГь

—локальная степень вершины i (количество дуг, исходящих из 0;

р -какой-либо параметр р (длительность, пропускная способность, стоимость и т. д.), отнесенный к дуге (/, /). Поскольку многие алгоритмы анализа графов, особенно в автоматизированных системах управления и системах СПУ, требуют предварительного упорядочения исходной информации о графе по слоям [3], то желательно, чтобы граф генерировался сразу упорядоченным соответствующим образом.

Общее представление о размерности и топологии графа дает знание следующих числовых характеристик:

1ф| — количество слоев;

[Icp | — количество вершин в слое ср;

■coi — количество дуг, исходящих из вершины i. Очевидно, что вышеперечисленные данные должны явиться той исходной информацией для ЭВМ, на основе которой будет генерироваться сеть. Причем, для большей гибкости генератора сетей следует предусмотреть возможность задания каждого из этих параметров либо в виде соответствующих верхних и нижних границ и в каждом конкретном случае получать параметр с помощью ДСЧ, либо в виде конкретного числа. Второй способ является частным случаем первого и его нетрудно осуществить, придав некоторые дополнительные функции ДСЧ. Например, при апг = 0 реализовать выдачу датчиком случайных чисел всегда определенного числа а = днг.

Отметим также, что во многих случаях нулевой слой ф0 (Г \ оо-.= 0) имеет некоторые специфические особенности по сравнению с другими слоями. Например, он содержит небольшое количество вершин, так как эти вершины соответствуют или товарным изделиям в АСУ, или стокам в транспортных сетях, или конечным целям разработок в сетевых графиках систем СПУ. Поэтому введем дополнительную характеристику сети |Ь0| —количество вершин нулевого слоя, которую будем задавать аналогично ранее названным.

Учитывая вышеизложенное, предлагается следующий алгоритм генерирования графов на ЭВМ:

1. Розыгрыш числа слоев jq>j; Ci:=|<p|.

2. Розыгрыш 1/фо|; /?:=|/фо|; Е1о : == 1Аро| +1; Е: = 1.

3. Розыгрыш ]/ф); С2'. = |/<р |+ 1; Сз~1.

4. С3: = С3—1; С3 = 0?. Да. Переход к п. 9. Нет. Переход к п. 5.

5- £70 = 0?. Да. Переход к п. 13. Нет. Переход к п. 6.

6. £10: = £70—1; /:=£/о-

7. Розыгрыш параметра Р\и

8. Формирование строки /, рц в й записи. Переход к п. 4.

9. = 2; С2: = С2—1; С2==0?'Да. переход к п. 12. Нет. Переход к п. 10.

10. /: = /+!; розыгрыш соь Сз:=<оН-1.

11. Формирование «шапки» (/, соО /-й. Переход к п. 4.

12. = /?+!; /?:■=/; Сь =:С1—1; С1—0? Да. Останов машины, граф получен. Нет. Переход к п. 3.

13. С: = С—1; С—0? Да. Переход к п. 14. Нет. Переход к п. 15.

14. С: = 1; розыгрыш / при /Нг:=1; Переход к п 7.

15. Розыгрыш / при /нг=£, = переход к п. 7.

Описанный алгоритм реализован на ЭВМ «Урал-ПБ». В программе был использован ДСЧ с равномерным распределением. По мере накопления информация о графе переписывалась на магнитную ленту. Время генерирования и записи на МЛ сети, содержащей 4000 вершин, 10 слоев и ■й)1 в интервале 2ч-10 составляет 10 минут. Программа использовалась при отладке некоторых алгоритмов, разработанных для АСУП-Томск [4]. Опыт ее использования доказывает целесообразность разработки программ подобного рода.

Видимо, целесообразны дальнейшие исследования в области создания генераторов графов определенной структуры (например, деревьев, графов с замкнутыми контурами, плоских графов и т. д.), а также графов с характеристиками, выдаваемыми разными ДСЧ, отличающимися законами распределения.

ЛИТЕРАТУРА

1. К. Берж. Теория графов и ее применения. ИЛ., М., 1962.

2. Ю. Н. Ефимов. Некоторые вопросы статистического исследования сетевых графиков. «Известия ТПИ», т. 187, Томск (в печати).

3. Ю. Н. Ефимов. Алгоритм нахождения порядковой функции сетевого графика. «Известия ТПИ», т. 168, Томск, 1969.

4. Ю. Н. Ефимов, В. И. Кизев, В. И. Невраев, Ф: И. Перегубов, П. А. Седельников. Основные принципы построения и функционирования. АСУП-Томск. (данный сборник).

i Надоели баннеры? Вы всегда можете отключить рекламу.