Minimizzazione della lunghezza del cablaggio


10

Il mio problema è così:

  1. Ho un layout fisico rappresentato come un grafico. I nodi rappresentano ganci / condotti in cui un filo può ancorarsi e Bordi sono la possibile connessione tra 2 nodi da dove può andare il filo.

  2. Esistono alcuni nodi speciali, chiamati splitter, da cui un singolo filo può essere diviso in 2 o più fino a k. Il k può essere preso costante per ora ma varia da nodo a nodo. Non tutti i nodi sono divisori.

  3. C'è una fonte di energia da cui emergerà un filo. È la fonte. Il filo deve essere portato a n lavandini.

  4. Un bordo può sopportare un numero qualsiasi di fili che lo attraversano in entrambe le direzioni.

  5. La lunghezza totale del filo deve essere ridotta al minimo.

  6. La natura del grafico, planare o euclideo non è nota.

Esempio : di seguito è riportata una rete di esempio. I nodi sono denominati come numeri e bordi sono forniti con pesi uguali a 1. L'origine è Nodo1 e i lavandini sono Nodo5, Nodo9 e Nodo13. Nel caso 1 Nodo6 è nodo Splitter. Nel caso 2 Nodo6 e Nodo4 sono nodi splitter. K = 3 del nodo splitter, ovvero può prendere un filo e dividerlo in 3 fili.

Caso 1 . Un solo nodo splitter. Ha senso dividere in Node6. inserisci qui la descrizione dell'immagine

Caso 2 . Nodo a due splitter. Ha senso dividere in Node4 anziché in Node6. inserisci qui la descrizione dell'immagine

Sto cercando diverse strategie per scoprire una soluzione generica per questo problema. Il grafico presentato qui è di scala minore rispetto al problema in questione. Il grafico è statico e non può essere modificato (intendo che la soluzione non dovrebbe suggerire alcun nuovo bordo o proporre una nuova posizione dello splitter). È inoltre gradito qualsiasi riferimento a un documento di ricerca pubblicato su questo tipo di problema.

Caso 3 . Nodo a due splitter. Ha senso dividere in Nodo4 e Nodo14. Si noti che in questo caso sono stati modificati i pesi dei bordi per Edge 8-12, 6-10 e 10-11. La cosa importante in questo caso è la traccia di un filo dopo essere stato diviso dal Nodo14.

inserisci qui la descrizione dell'immagine

Risposte:


7

Questo problema è NP-difficile.

Supponiamo che ogni vertice sia uno splitter che può essere diviso in qualsiasi numero di gradi, quindi il tuo problema è proprio il problema dell'albero di Steiner su un grafico , in cui l'insieme dei vertici sorgente e sink sono i vertici richiesti.


2

iki

La semplificazione è che è possibile eliminare tutti i nodi intermedi (quadrati). Crea un grafico con solo il nodo di origine, i nodi sink e i nodi splitter.

  1. Nel grafico originale trova il percorso più breve dal nodo di origine a ciascun nodo splitter e aggiungi un bordo nel nuovo grafico dal nodo di origine al nodo splitter con quella lunghezza.

  2. ijijij

  3. ijijij

Niki

ki


Se si desidera connettere solo un sottoinsieme del grafico, questo è il problema dell'albero di Steiner.
Chao Xu,

0

@Chao Xu, ho anche trovato Steiner l'approssimazione più vicina al mio problema. Sto esplorando i sistemi basati su formiche per risolvere questo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.