Существуют методы, предназначенные для возврата двух кластеров, иногда называемых делением пополам, например алгоритм Керниган-Лин ( реализован в NetworkX ).
Алгоритм Лувена - это восходящий метод, который начинается с рассмотрения каждого узла как своего собственного сообщества. Метод объединяет сообщества, если это увеличивает модульность всего раздела. Метод останавливается, если такое объединение невозможно. Это часто случается до того, как остаются только 2 сообщества, поэтому алгоритм Лувена не является хорошим способом получить пополам. Если вы настаиваете, вы можете попытаться настроить параметр разрешения, который определяет размер сообществ, найденных Лувеном. Я думаю, что Керниган-Лин - намного лучшая идея.
Я понятия не имею, как хорошо это работает, но здесь является инструментом преобразователя с открытым исходным кодом:
это было расширением инструмента, обрисованного в общих чертах в этой статье:
Вы должны будете измениться sln
и vcproj
файлы (включая атрибуты как ToolsVersion
, TargetFramework
, ProductVersion
и т.д.). Некоторое бесплатное программное обеспечение может быть доступным, но я не услышал очень высоко о них.
Я всегда очень не хочу отредактировать .sln/proj файлы вручную, так как они могут быть настолько придирчивыми и проблематичными. Могло бы быть самым легким просто создать новый проект в 2005 и просто скопировать все файлы кода назад в него.
Ваш файл решения в системе управления версиями? Просто посмотрите, какие модификации обновление до VS 2008 сделал к проекту и файлам решения и затем отменяет их. Нет большого количества из них.
Можно удалить .sln файл, затем открыть .vcproj в VS2005, затем сохранить его как новое решение. Так как все опции проекта сохранены в .vcproj файле, который должен сделать.
Вот открытый исходный код, которые преобразовывают проект VS2008 в VS2005.
Вы можете использовать sed для этого со следующим скриптом или чем-то в этом роде:
s#Version=\"9.00\"#Version=\"8.00\"#g
s#<ProductVersion>9.0.21022</ProductVersion>#<ProductVersion>8.0.50727</ProductVersion>#g
s#<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>##g
s# ToolsVersion=\"3.5\"##g
s#MSBuildToolsPath#MSBuildBinPath#g
Поместите это в текстовый файл называется "downgrade_vc9_to_vc8.sed", затем вызовите его с помощью:
"C:\Program Files\GnuWin32\bin\sed.exe" -f "downgrade_sln_vc9_to_vc8.sed" "MyProject.vcproj" > "MyProject_VC8.vcproj"