Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Gref
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 5
#1

Написание программы для решения задачи о раскраске вершин произвольного графа - C++

22.10.2013, 17:31. Просмотров 1272. Ответов 0
Метки нет (Все метки)

У меня следующая проблема. Нужно реализовать метод ветвей и границ (Branch-and-Bound algorithm) для решения проблемы раскраски вершин (Vertex Coloring Problem) произвольного графа 2 способами: 1 способ – использовать жадный алгоритм для перебора цветов и нахождения оптимальной раскраски вершин графа (нет начального решения, нет оценки на число цветов снизу), 2 способ – использовать определенную эвристику, на основании нее находим начальное решение: это будет Upper Bound для нашей задачи, далее загоняем это решение в 1 способ и находим оптимального решение. На вход подаются несколько различных файлов, каждый из которых имеет один и тот же формат представления графов DIMACS. Теперь подробнее о том, что представляет собой формат представления графов DIMACS. Основные элементы формата DIMACS:
1. Комментарий. Каждая линия комментария начинается с буквы «c» в нижнем регистре. Например: c This is an example of a comment line.
2. Строка, описывающая проблему. Эта строка появляется прежде, чем строки-описатели узлов или же дуг графа. Она имеет следующий формат:
p FORMAT NODES EDGES
Символ «p» означает то, что дальше идет описание проблемы. Поле FORMAT содержит слово «edge». Поле NODES представляет собой целое число, означающее число узлов в графе (нумерация идет от 1 до NODES). Соответственно, поле EDGES представляет собой также целое число и определяет количество ребер в этом же графе.
3. Описатели ребер. Существует одна строка-описатель ребер для каждого ребра графа, которая имеет следующий формат: каждое ребро (v, w) появляется точно один раз во входном файле, оно может и повторяться в виде (w, v). Например:
e W V
Символ c означает то, что это строка-описатель ребер. Для ребра (w, v) поля W и V означают его оконечные точки, которые представляют собой целочисленные значения начала и конца ребра.
Пример DIMACS-файла прикреплен к этому сообщению.

На выходе программа должна вывести дерево ветвления, по которому можно было бы определить, сколько оптимально цветов (наименьшее их количество) необходимо для раскраски графа и время (в данной задачи – количество секунд или же миллисекунд, которое было потрачено на нахождение оптимальной раскраски графа; причем время, необходимое на чтение данных из файла не учитываем).
Программа должна быть написана на языке C/C+ с использованием объектно-ориентированной парадигмы программирования, и чтобы мне смогли объяснить то, каким образом она работает. Срок сдачи: 1 неделя (т. е. в следующий вторник нужно будет сдать программу).
Вложения
Тип файла: txt anna.col.txt (8.3 Кб, 33 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 17:31     Написание программы для решения задачи о раскраске вершин произвольного графа
Посмотрите здесь:

C++ Максимальное множество вершин графа
C++ Для ориентированного графа определить полустепень захода и исхода для каждой из вершин
Алгоритм для решения задачи по программированию C++
Проложить код программы для решения школьной геометрической задачи C++
Использование функция для решения задачи C++
Нужен совет для решения задачи C++
Нужны задачи для их решения C++
Нужны задачи для решения C++
Составить программу для решения математической задачи (для любых допустимых значений углов и сторон) C++
C++ Поиск вершин графа по их значению
Обход всех вершин графа C++
Написание программы для решения СЛАУ методом Зейделя C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru