Minimisation de la longueur de câblage

10

Mon problème est comme ceci:

  1. J'ai une disposition physique représentée sous forme de graphique. Les nœuds représentent des crochets / conduits où un fil peut ancrer et les bords sont la connexion possible entre 2 nœuds d'où le fil peut aller.

  2. Il existe des nœuds spéciaux, appelés séparateurs, à partir desquels un seul fil peut être divisé en 2 ou plus jusqu'à k. Le k peut être pris constant pour l'instant mais il varie d'un nœud à l'autre. Tous les nœuds ne sont pas des séparateurs.

  3. Il existe une source d'énergie d'où un fil émergera. C'est la source. Le fil doit être acheminé vers n éviers.

  4. Un bord peut prendre n'importe quel nombre de fils qui le traversent dans les deux sens.

  5. La longueur totale du fil doit être minimisée.

  6. La nature du graphe, planaire ou euclidienne n'est pas connue.

Exemple : voici un exemple de réseau. Les nœuds sont nommés sous forme de nombres et les bords sont fournis avec des poids égaux de 1. La source est Node1 et les récepteurs sont Node5, Node9 et Node13. Dans le cas où 1 Node6 est le nœud Splitter. Dans le cas où 2 Node6 et Node4 sont des nœuds de séparation. Le nœud séparateur k = 3, c'est-à-dire qu'il peut prendre un fil et le diviser en 3 fils.

Cas 1 . Un seul nœud séparateur. Il est logique de se séparer au Node6. entrez la description de l'image ici

Cas 2 . Nœud à deux séparateurs. Il est logique de diviser le nœud 4 au lieu du nœud 6. entrez la description de l'image ici

Je recherche différentes stratégies pour trouver une solution générique à ce problème. Le graphique présenté ici est d'une plus petite échelle par rapport au problème en cours. Le graphique est statique et ne peut pas être modifié (je veux dire que la solution ne doit suggérer aucun nouveau bord ni proposer un nouvel emplacement de séparateur). Toute référence à un document de recherche publié sur ce type de problème est également la bienvenue.

Cas 3 . Nœud à deux séparateurs. Il est logique de diviser les nœuds 4 et 14. Notez que ce cas a des poids de bord modifiés pour les bords 8-12, 6-10 et 10-11. L'important dans ce cas est de retracer un fil après avoir été séparé de Node14.

entrez la description de l'image ici

Mohitt
la source

Réponses:

7

Ce problème est NP-difficile.

Supposons que chaque sommet est un séparateur qui peut se diviser à n'importe quel nombre de degrés, alors votre problème est précisément le problème de l'arbre de Steiner sur un graphique , où l'ensemble des sommets source et puits sont les sommets requis.

Chao Xu
la source
2

Je n'ai pas de solution à votre problème, mais j'ai une simplification intermédiaire. La contrainte 2 (chaque nœud séparateur est autorisé à diviser un fil en pas plus que fils) est ce qui m'a déconcerté.jekje

La simplification est que vous pouvez éliminer tous les nœuds intermédiaires (carrés). Créez un graphique avec uniquement le nœud source, les nœuds puits et les nœuds séparateurs.

  1. Dans votre graphique d'origine, recherchez le chemin le plus court entre le nœud source et chaque nœud séparateur et ajoutez un bord dans le nouveau graphique du nœud source au nœud répartiteur de cette longueur.

  2. Étant donné deux nœuds séparateurs, et trouvent le chemin le plus court de à dans le graphique d'origine et ajoutent une arête dans le nouveau graphique de à avec cette longueur.jejjejjej

  3. Pour chaque séparateur et chaque puits trouvez le chemin le plus court de à dans le graphique d'origine et ajoutez une arête dans le nouveau graphique de à avec cette longueur.jejjejjej

Vous avez maintenant un graphique entièrement connecté de séparateurs (plus la source et les puits). Les arêtes ont des coûts et vous essayez de trouver un arbre de coût minimum qui satisfait la contrainte selon laquelle chaque nœud séparateur n'a pas plus de enfants.Njekje

Ce problème (réduit) semble plus difficile que le problème de l'arbre couvrant minimal contraint en degrés , qui est NP-difficile, car il y a un degré différent sur chaque nœud plutôt qu'une contrainte de degré unique. Mais c'est aussi différent parce que vous ne cherchez pas réellement un arbre couvrant. L'arbre minimum souhaité peut plutôt laisser de côté certains des nœuds de séparation. Je ne sais pas si cette deuxième différence rend le problème plus facile ou plus difficile.kje

Logique errante
la source
Si vous souhaitez uniquement connecter un sous-ensemble du graphique, il s'agit du problème de l'arborescence Steiner.
Chao Xu
0

@Chao Xu, j'ai également trouvé que Steiner était l'approximation la plus proche de mon problème. J'explore les systèmes basés sur Ant pour résoudre ce problème.

Mohitt
la source