Минимизация длины проводки


10

Моя проблема такова:

  1. У меня есть физическая раскладка, представленная в виде графика. Узлы представляют собой крюки / воздуховоды, где провод может быть закреплен, а края - это возможное соединение между двумя узлами, откуда может идти провод.

  2. Есть несколько специальных узлов, называемых разделителями, из которых один провод может быть разделен до 2 или более до k. Пока можно считать k постоянным, но оно варьируется от узла к узлу. Не все узлы являются сплиттерами.

  3. Есть один источник энергии, откуда появится провод. Это источник. Провод должен быть снят на n раковин.

  4. Край может принять любое количество проводов, проходящих через него в любом направлении.

  5. Общая длина провода должна быть минимальной.

  6. Природа графа, планарного или евклидова неизвестна.

Пример : ниже приведен пример сети. Узлы названы как числа, а ребра имеют одинаковый вес 1. Источник - Node1, а Sinks - Node5, Node9 и Node13. В случае 1 Node6 является узлом Splitter. В случае 2 Node6 и Node4 являются узлами сплиттера. Узел делителя k = 3, то есть он может взять один провод и разделить его на 3 провода.

Случай 1 . Только один узел сплиттера. Имеет смысл разделиться на Node6. введите описание изображения здесь

Случай 2 . Два Разветвителя. Имеет смысл разделиться на Node4 вместо Node6. введите описание изображения здесь

Я ищу различные стратегии, чтобы найти общее решение для этой проблемы. График, представленный здесь, имеет меньший масштаб по сравнению с рассматриваемой проблемой. График статичен и не может быть изменен (я имею в виду, что решение не должно предлагать какие-либо новые ребра или предлагать новое расположение сплиттера). Любая ссылка на исследовательскую работу, опубликованную по этому вопросу, также приветствуется.

Случай 3 . Два Разветвителя. Имеет смысл разделиться на Node4 и Node14. Обратите внимание, что в этом случае веса ребер изменены для ребер 8-12, 6-10 и 10-11. Важной вещью в этом случае является восстановление провода после разделения от узла 14.

введите описание изображения здесь

Ответы:


7

Эта проблема NP-сложная.

Предположим, что каждая вершина является сплиттером, который может разбиваться на любое количество градусов, тогда ваша задача - это именно проблема задачи дерева Штейнера на графе , где множество вершин источника и стока является требуемыми вершинами.


2

У меня нет решения вашей проблемы, но у меня есть промежуточное упрощение. Ограничение 2 (каждому узлу делителя разрешено разбивать один провод на не более проводов) - вот что меня озадачило.iki

Упрощение заключается в том, что вы можете исключить все промежуточные (квадратные) узлы. Создайте график, содержащий только исходный узел, узлы приемника и узлы разветвителя.

  1. В исходном графике найдите кратчайший путь от исходного узла к каждому узлу разделителя и добавьте ребро в новом графике от исходного узла к узлу разделителя с такой длиной.

  2. Учитывая два узла разветвителя, и находят кратчайший путь от до в исходном графе и добавляют ребро в новый граф от до с такой длиной.ijijij

  3. Для каждого сплиттера и каждого приемника найдите кратчайший путь от до в исходном графе и добавьте ребро в новый граф из в такой длины.ijijij

Теперь у вас есть полностью связанный граф из разделителей (плюс источник и приемники). На ребрах есть затраты, и вы пытаетесь найти дерево минимальных затрат, которое удовлетворяет ограничению на то, что у каждого узла сплиттера не более дочерних .Niki

Эта (уменьшенная) проблема кажется более сложной, чем задача минимального остовного дерева с ограничением по степени , которая является NP-сложной, потому что на каждом узле существует разная степень а не ограничение на одну степень. Но это также отличается, потому что вы на самом деле не ищете связующее дерево. Скорее желаемое минимальное дерево может не учитывать некоторые узлы сплиттера. Я не знаю, облегчает ли это второе различие проблему или усложняет ее.ki


Если вы хотите связать только подмножество графа, то это проблема дерева Штейнера.
Чао Сюй

0

@ Чжао Сюй, я также обнаружил, что Штайнер является ближайшим приближением к моей проблеме. Я исследую системы на основе Ant для решения этой проблемы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.