Моя проблема такова:
У меня есть физическая раскладка, представленная в виде графика. Узлы представляют собой крюки / воздуховоды, где провод может быть закреплен, а края - это возможное соединение между двумя узлами, откуда может идти провод.
Есть несколько специальных узлов, называемых разделителями, из которых один провод может быть разделен до 2 или более до k. Пока можно считать k постоянным, но оно варьируется от узла к узлу. Не все узлы являются сплиттерами.
Есть один источник энергии, откуда появится провод. Это источник. Провод должен быть снят на n раковин.
Край может принять любое количество проводов, проходящих через него в любом направлении.
Общая длина провода должна быть минимальной.
Природа графа, планарного или евклидова неизвестна.
Пример : ниже приведен пример сети. Узлы названы как числа, а ребра имеют одинаковый вес 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.