O problema, em questão, também conhecido como "Label-Constrained Minimum Spanning Tree (LCMST)", é definido em um grafo não-direcionado, G = (V, E, L) com conjunto de vértices V, conjunto de arestas E, e conjunto de rótulos L.
Cada aresta
Dado as informações necessárias do problema, o mesmo foi modelado,
com a utilização da ferramenta Or-Tools,
as restrições necessárias para, através da aplicação do
SIMPLEX /
Branch and bound,
obter-se uma solução ótima dado uma determinada entrada e, também,
um determinado
As implementação feita, baseia-se nas restrições de Miller–Tucker–Zemlin (MTZ), as quais são definidas a seguir:
Minimização (Função Objetivo)
Sujeito à (Restrições)
Observação: Por padrão, neste modelo, o vértice tomado como ponto de partida será o vértice 1 (um).
Explicação do modelo:
(1). Minimiza o custo da solução, ou seja, da Árvore Geradora.
(2). Define, no vértice 1 (um), ou seja, o ponto de partida, para o 'subtour', o valor 0 (zero).
(3). Limita a quantidade de rótulos distintos utilizados na
solução para ser menor ou igual a
(4). Garante que, as arestas utilizadas na solução, tenha
exatamente
(5). Garante que, pelo menos 1 (um), vértice, saindo de
(6). Aplica o "subtour" na solução encontrada, limitando a existência de ciclos na mesma.
(7). Garante que haja pelo menos 1 (um) rótulo, se pelos menos 1 (um), de tal rótulo, foi utilizada na solução.
(8). Admite somente valores binários para
(9). Admite somente valores binários para
(10). Admite somente valores maiores ou iguais a zero para