Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

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

Сфера применения теории графов довольно широка. Она позволяет решать такие практические задачи, как поиск кратчайшего пути, раскраска карт, сборка микросхем, организация ссылок сети Internet, составление расписаний, эффективное распределение ресурсов и т.д.

Пример составления расписания

Пусть необходимо составить учебное расписание для учебно-компьютерного центра. При этом должна быть известна некоторая информация о группах, для которых проводятся занятия; преподавателях, которые ведут эти занятия, а также о некоторых ограничениях, накладываемых, к примеру, наличием свободных аудитории.

В учебном центре необходимо провести занятия по «Пользователь ПК», «Программирование», «Пользователь 1С», «Компьютерная графика» и «Настройка компьютера» в группах А, В, С. Занятия проводятся преподавателями K, L, M.

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

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

Сформированный граф будет выглядеть следующим образом (рис. 1а), а соответствующий ему раскрашенный граф будет иметь следующий вид (рис. 1б):

a  b

а)                                                                           б)

Рис. 1. а) сформированный граф, б) раскрашенный граф

Исходя из найденной раскраски, можно построить расписание, которое будет соответствовать поставленной заданию (табл. 1):

Таблица 1.

 

A

B

C

08:00

Программирование

Компьютерная графика

 

10:00

Компьютерная графика

 

Программирование

12:00

Настройка компьютера

Пользователь ПК

 

14:00

Пользователь ПК

Пользователь 1С

Компьютерная графика

16:00

 

 

Настройка компьютера

Программа DemoGraph

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

Данная программа включает в себя два модуля:

  • модуль DemoGraph (рис. 2) обеспечивает управление, визуализацию и сохранении;
  • модуль IniCreator (рис. 3)позволяет создавать файлы входных данных.

2

3

 

Рис. 2. Модуль DemoGraph

 

Рис. 3. Модуль INICreator

Работа с программой проходит в три этапа:

  1. Загрузка специального конфигурационного файла *.ini с помощью кнопки «Открыть» или пункта меню ФайлàОткрыть (Ctrl-O). При этом согласно информации, содержащейся в файле, сформируется граф;
  2. Раскраска графа осуществляется с помощью кнопки «Раскрасить»
  3. Сохранение составленного расписания осуществляется с помощью кнопки «Сохранить» или пункта меню ФайлàСохранить (Ctrl-S). Программа на основе раскрашенного графа создаст расписание и сохранит его в виде таблице в указанном файле.

Как было сказано выше, созданию расписания предшествует загрузка входной информации, содержащейся в специальном файле с фиксированной структурой. Для создания таких файлов был разработан модуль INICreator. Запуск данного модуля возможен из окна программы с помощью кнопки «Редактор» либо из папки с программой (файл INICreator.exe).

Создание файла происходит пошагово:

  1. Ввод общей информации - списков всех групп, преподавателей, предметов, длительности занятий и комментария к расписанию.
  2. Установка ассоциаций между группами и предметами. На данном шаге пользователю предлагается установить, какие предметы будут проводиться в той или иной группе.
  3. Установка ассоциаций между преподавателями и предметами. Аналогично предыдущему шагу, устанавливается, какие предметы ведет каждый из преподавателей.
  4. Установка ограничений. На данном шаге пользователь устанавливает, какие из предметов нельзя проводить вместе.
  5. Сохранение файла. Данный этап является заключительным. На этом этапе пользователю предлагается сохранить полученный файл входных данных.

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