Страницы: 1
RSS
Поиск минимального размера остова, Задача
 
Подскажите пожалуйста как реализовать данную задачу в excel!

Используя симплекс-метод ( поиск решения и т.д )

Требуется спроектировать  сеть, которая должна обслуживать семь  пунктов. Расстояния между пунктами приведены в таблице.

рис. 2.24



Вот решение на бумаге:

Из элементов матрицы выбираем минимальный - (D,С) = 4. Обводим выбранный элемент кружком.

рис. 2.25

Из оставшихся элементов выбираем минимальный - (D,E) = 8. Элемент обводим кружком. Чтобы выполнялось условие 2 пункты С и D не должны соединяться, поэтому элемент (Е,С) зачёркивается.

рис. 2.26

Из невыделенных и незачеркнутых элементов минимальным является (D,B). Этот элемент обводится кружком. Элементы (С,В) и (Е,В) зачёркиваются.

рис. 2.27

Минимальным элементом является (С,А) = 13. Элементы (В,А), (D,А) и (Е,А) зачеркиваются.

рис. 2.28

Из невыделенных и незачеркнутых элементов минимальным является (F,E) = 15. Элементы (F,A), (F,B), (F,C) и (F,D) зачёркиваются.

рис. 2.29

В последней строке минимальным элементом является (G,E) = 18. Обводим этот элемент, и получаем остов, связывающий все семь пунктов. Все остальные элементы вычеркиваются.

рис. 2.30

Длина минимального остова равна (С,А)+(D,B)+(D,С)+(Е,D)+(F,E)+(G,E) = 13+10+4+8+15+18 = 68.
Изменено: themafia98 - 13.05.2018 17:42:25
 
На форуме по Excel принято показывать прмер в Excel. Хотя бы с исходными данными, чтобы желающим помочь не тратить время на составление таблицы.

Нужно определить длину или дополнительно проект нарисовать?
Что пробовали? Что не получается? Прошу ознакомиться с абзацем "для студентов"
 
vikttur, Длину.

Пробовал находить минимальные значения и их складывать, но как реализовать конкретно симплекс-методом  через поиск решения не знаю.
Вот мой исходник:
Изменено: themafia98 - 13.05.2018 17:52:29
 
Кросс
 
см.вложение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко,Спасибо большое за помощь! Почему-то не совпал ответ с моим у меня 68, вы бы смогли объяснить ваше решение в excel?
 
а там что, исходные совпадают?
впишите вместо случайных чисел свои, лента данные, поиск решений, найти и смотрите совпадет или нет
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, ответ с моими значениями вышел 97, а должно 68 как в описании решения выше по идеи....
 
Никак не могу найти информацию и разобраться  о решении поиск минимального остова в excel  
 
Цитата
themafia98 написал:
Никак не могу найти информацию
Какую? Об алгоритмах построения? Так в инете об этом информации полно, например. Не очень верится, что это можно сделать поиском решения, но на VBA, только разобрать и реализовать алгоритм.
 
Андрей VG,я то понимаю как данную задачу решить , я ее решил на листочке , но по заданию в универе мне нужно реализовать ее в excel и те методы решения которые я пробовал не совпали с моим ответом =68.
 
А почему в вашем решении у точек D и E по три линии?
По идее все точки нужно соединить последовательно. Получится замкнутая линия. А у вас не так.
Алексей М.
 
Цитата
АlехМ написал:
Получится замкнутая линия.
Коллега, замкнутой линии быть не должно. Это задача следующего плана. Дан полносвязный неориентированный граф. Нужно построить остовное дерево, так чтобы сумма весов используемых рёбер была минимальна. Как пример точки а, в, с - это города, вес ребра - расстояние между парой городов. Нужно построить между городами дороги так, чтобы из любого города можно было попасть в любой город, но сумма длин дорог была бы минимальной.
Вот, честно говоря, не вижу пути решения формулами или поиском решения этой задачи.
Суть в чём, да можно выписать пары точек и вес ребра между ними. Отсортировать по возрастанию. И последовательно от минимума идти к максимуму.
Но на каждой итерации нужно проверять, что на очередной добавленной по ребру вершине графа мы имеем возможность попасть из всех заданных вершин в первую добавленную таким способом вершину (принимаем первую вершину за корневую).
Макросом по существующим алгоритмам это делается, но ТС - студент, решивший, что программирование ему не нужно.
Цитата
themafia98 написал:
те методы решения которые я пробовал не совпали с моим ответом
А продемонстрировать и описать эти методы решения? Вдруг кто найдёт ошибку в рассуждениях и подскажет правильный путь?
Изменено: Андрей VG - 20.05.2018 15:19:31
 
UpdatedПо подначке Владимира (sokol92)), подниму тему.
Частично решил. Частичность в том, что преобразование в таблицу весов рёбер и упорядочивание её по не убыванию сделал в Power Query. Остальной расчёт формульный (лист "Расчёт").
Но вот как чисто формульно преобразовать матрицу смежностей в таблицу весов рёбер, честно говоря, не знаю. Ну, можем мы через НАИМЕНЬШИЙ и номер требуемого наименьшего получить следующий вес ребра по порядку от меньшего к большему. И что? А как ещё по нему вывести в соседние ячейки имена узлов, которые соединяет данное ребро? (лист "Исходные").

Лажанулся я. Пусть имеем 4 вершины
3, a, b
5, c, d
7, a, c
Дальше нет смысла, ребро а с с не будет учавствовать в остове :(
И никто не подсказал, что хрень я нёс.
Изменено: Андрей VG - 20.05.2018 15:20:30
 
Андрей VG, Спасибо, т.е симплекс-методом через поиск решений это никак не сделать :( ? Вот что я пытался сделать ( алгоритм для неориентированного графа ) через поиск решения... но ответ не тот

Не могли бы вы пояснить как работает ваш документ?
Изменено: themafia98 - 20.05.2018 18:33:45
 
В дополнение к решению из #14 - макросом (Simplex).
Исходные данные в A:C (отсортированные по возрастанию расстояния), результат - в E:G.
Владимир
Страницы: 1
Читают тему
Наверх