я могу использовать умножение наборов в AMPL?

Я пытаюсь написать модель для задачи с графом. Я определил попарный набор для маркировки краев. потому что мне нужно найти внутренний продукт между некоторыми краями. Точнее:

Предположим, что E - это набор ребер, который я определил:

установить N, внутри E крест E;

например, если E = {1,2,3}, N может быть: {(2,3), (1,2)} т.е. мне нужно найти внутренний продукт между кромкой 1 и кромкой 3, а также между кромкой 1 и кромкой 2.

Нет, моя проблема в том, что мне нужно связать ребра с вершинами. Например, предположим, что V = {v1, v2, v3, v4, v5} - это множество вершин. и край 1 находится между v1 и v3, а край 2 - между v2 и v3.

Мне нужно определить другой попарный набор, например: набор N внутри V cross V; Но мне нужно определить набор краев за этим. например, если M = {(1,3), (2,3)} мне нужен третий столбец, который определяет, что первая пара принадлежит ребру 1, а вторая - ребру 2. как я могу сделать это в AMPL?


person sherek_66    schedule 14.08.2018    source источник


Ответы (1)


Сделать это можно так:

set vertices;
set edgenames;
set edges_with_vertices within edgenames cross vertices cross vertices;

так что для любой тройки в edge_with_vertices первый элемент - это имя ребра, а второй и третий - конечные вершины.

person Geoffrey Brent    schedule 24.08.2018