Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 22:50   #1
andis
 
Регистрация: 19.07.2009
Сообщений: 9
По умолчанию Генерация связного графа

Может поможет кто...В процедуру передаётся количество вершин, и количество рёбер которые нужно сгенерировать. Граф задан матрицей смежности. Необходимо написать процедуру которая будет генерировать такую матрицу смежности, содержащую n-вершин и m-рёбер. Желательно быстрый алгоритм.Он в дальнейшем нужен для анализа работы алгоритмов поиска Гамильтонового и Эйлерова циклов, и подсчёта за определённое время сгенерированных графов разного типа. Буду благодарен за подсказки...
andis вне форума Ответить с цитированием
Старый 23.01.2010, 00:30   #2
andis
 
Регистрация: 19.07.2009
Сообщений: 9
По умолчанию

Никто не подскажет?
andis вне форума Ответить с цитированием
Старый 23.01.2010, 00:57   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Граф должен быть средневероятностным по какому признаку? Просто написать генератор графа за параметрами не сложно, но если графы должны быть разного типа и различатся в пределах одного типа, то по каким признакам как раз различать эти графы? Важны случайность количества циклов, размеров циклов, количества мостов и т.д.?
LeBron вне форума Ответить с цитированием
Старый 23.01.2010, 01:46   #4
andis
 
Регистрация: 19.07.2009
Сообщений: 9
По умолчанию

Ничего не важно..Главное чтобы граф содержал n-вершин и m-рёбер..причём был связным...граф неориентированный..я представляю этот код небольшим, но так почему-то неполучилось чего-то толкового..
andis вне форума Ответить с цитированием
Старый 23.01.2010, 12:17   #5
andis
 
Регистрация: 19.07.2009
Сообщений: 9
По умолчанию

Подскажет кто-нибудь что-нибудь по этому поводу?
andis вне форума Ответить с цитированием
Старый 23.01.2010, 13:16   #6
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Простой способ генерации - делаем нужное количество вершин, розганяем их по подмножествам и объеденем все подмножества в одно поочередно (алгоритм Таржана) с рендомной базой каркаса. Когда будет одно - у нас уже есть связный граф с необходимым количеством вершин и на 1 меньшим количеством ребер. Если нужные еще ребра - можна банально рэндомно выбирать пару вершин и, если она не соедена ребром - соеденять, пока не будет достаточно ребер.
LeBron вне форума Ответить с цитированием
Старый 23.01.2010, 15:46   #7
andis
 
Регистрация: 19.07.2009
Сообщений: 9
По умолчанию

Можно по простому как-то? Без всяких там замудрёных алгоритмов. Рандомно не получится потому что не все вершины захватываются..Нужно во первых же чтобы все n вершин использовались, а во вторых чтобы они были связаны все между собой
andis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание связного списка на Си zx11 Общие вопросы C/C++ 9 17.03.2014 00:54
Рисование графа templllar Общие вопросы .NET 0 16.12.2009 12:17
сортировка узлов связного списка pavelstraut Общие вопросы C/C++ 5 28.07.2009 23:27
Связность графа. Пaвeл Помощь студентам 0 26.04.2009 10:42