В настоящее время я пытаюсь реализовать алгоритм ориентированного взвешенного графа в CPLEX.
Для этого мне нужно инициализировать следующий набор узлов P, который включает три разных непересекающихся подмножества.
Node Set P
Disjoint Subset 1: {u,v}
Disjoint Subset 2: {A,B,C,D}
Disjoint Subset 3: {1,2,3,4,5,6,7,8,9,10,11,12}
Кто-нибудь знает, как это работает? Так как же это выглядит на языке кода?
Большое спасибо! С Уважением
У меня есть два следующих узла:
{int} nodes = {44, 66};
Теперь я хочу определить разные дуги в зависимости от узлов. Для узла 44 есть дуги ‹44,123456›, ‹44,123457›, ‹44,123458›. Для 66 дуги нет. Как я могу это правильно реализовать? Я пробовал вот так, но знаю, что это не может работать, да и вообще не работает :(
{int} nodes = {44, 66};
tuple Arc {
int origin;
int destination;
}
{Arc} arcs[nodes] = {<44,123456>, <44,123457>, <44,123458>, <66,?>};
Кроме того, я не могу не вводить числа вручную из-за большого количества данных, но мне приходится читать их из Excel, в котором данные хранятся следующим образом: введите описание изображения здесь
И, возможно, мне следует добавить информацию о том, что это узлы и дуги взвешенного и ориентированного графа ... Итак, nodes = {44, 66} - это подмножество всех узлов графа, а arcs [nodes] - это подмножество всех дуги и представляют те дуги, которые исходят из узлов 44 и 66.
Итак, чтобы завершить мою проблему: я установил P, который имеет подмножества 1,2 и 3.
{string} Subset1= {"44","66"};
{string} Subset2= {"123456","123457","123458"};
{string} Subset3= {"1","2","3","4","5","6","7","8","9","10","11","12"};
{string} P=Subset1 union Subset2 union Subset3;
В зависимости от узла из P (подмножество 1,2 и 3) я хочу выразить дуги, исходящие из определенного узла.
Математически набор определяется как H_j с j в P. H_j - все дуги, исходящие из j. j - узел из P
Дуги берутся из файлов Excel со структурой выше. Может быть, для этого есть действительно простое решение. Буду очень благодарен!