Что такое эффективное решение для генерации всех возможных графиков с использованием матрицы инцидентов? Проблемы эквивалентны генерированию всей возможной бинарной треугольной матрицы. Моя первая идея заключалась в использовании python с itertools. Например, для создания всех матриц possibile 4x4Сохранять все возможные неориентированные графики
for b in itertools.combinations_with_replacement((0,1), n-3):
b_1=[i for i in b]
for c in itertools.combinations_with_replacement((0,1), n-2):
c_1=[i for i in c]
for d in itertools.combinations_with_replacement((0,1), n-1):
d_1=[i for i in d]
, а затем создать матрицу, добавив соответствующее число нулей .. Но это не правильно, так как мы пропускаем некоторые графики ...
Так , есть идеи? Возможно, я могу использовать изоморфизм между R^n-матрицей и вектором R^(n * n) и создать весь возможный вектор из 0 и 1, а затем разрезать его на мою матрицу, но я думаю, что есть более эффективные решения.
Спасибо
добавить вкладку MatLab, потому что это проблема, которую вы можете иметь в численном анализе и MATLAB.
Я предполагаю, что вы действительно хотите, все простые графы, т.е. петель и двойных ребер. Вы должны попробовать свой изоморфизм, но используя: 'n-by-n' строго верхние треугольные матрицы, содержащие только нули или единицы' <=> '' {0,1}^(n * (n-1)/2) '. Вы можете интерпретировать '{0,1}^(n * (n-1)/2)' как двоичные представления чисел от '0' до' 2^(n * (n-1)/2) -1' , – knedlsepp