Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск пути в графе через "Поиск решения" - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Поиск пути в графе через "Поиск решения"
Dron007 Дата: Воскресенье, 01.12.2013, 18:38 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Здравствуйте. У меня такая задача. Есть набор ресурсов, есть соотношения за какой сколько дают другого, каждый с каждым. То есть квадратная матрица, с 1-й по диагонали, естественно. Надо найти такую цепочку обменов ресурсов один на другой с возвратом к первому, чтобы прибыль была максимальная.

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

В прилагаемом файле - в ячейках B7:H11 сама матрица связности графа или таблица цен.

Ниже я сделал ячейки, где можно вручную вбить любой путь до 6 узлов и подсчитается результат для него. Вводятся номера ресурсов, и эти номера используются в функции =СМЕЩ() для нахождения нужной ячейки в таблице цен. Результат умножается на результат на предыдущем шаге.
Если итог выше 1 - обмен выгоден. Вручную работает, но хочется автоматизировать.

Пробовал в лоб через "Поиск решения". Внизу упростил до 3-х узлов. Ожидал, что Excel будет делать полный перебор, но он как-то странно пытается в ячейки, где ставлю целое или уже сделал даже двоичное, подставлять дробные значения. Пробовал с разными параметрами в диалоге поиска решений - ничего не помогает.

Подскажите, пожалуйста, что делаю не так и возможно ли такое в Excel 2003 или появилось только в более поздних версиях? Там вроде есть другие варианты поиска решений, может перебор только там?
К сообщению приложен файл: CrossRates.xls (17.0 Kb)


Сообщение отредактировал Dron007 - Воскресенье, 01.12.2013, 18:47
 
Ответить
СообщениеЗдравствуйте. У меня такая задача. Есть набор ресурсов, есть соотношения за какой сколько дают другого, каждый с каждым. То есть квадратная матрица, с 1-й по диагонали, естественно. Надо найти такую цепочку обменов ресурсов один на другой с возвратом к первому, чтобы прибыль была максимальная.

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

В прилагаемом файле - в ячейках B7:H11 сама матрица связности графа или таблица цен.

Ниже я сделал ячейки, где можно вручную вбить любой путь до 6 узлов и подсчитается результат для него. Вводятся номера ресурсов, и эти номера используются в функции =СМЕЩ() для нахождения нужной ячейки в таблице цен. Результат умножается на результат на предыдущем шаге.
Если итог выше 1 - обмен выгоден. Вручную работает, но хочется автоматизировать.

Пробовал в лоб через "Поиск решения". Внизу упростил до 3-х узлов. Ожидал, что Excel будет делать полный перебор, но он как-то странно пытается в ячейки, где ставлю целое или уже сделал даже двоичное, подставлять дробные значения. Пробовал с разными параметрами в диалоге поиска решений - ничего не помогает.

Подскажите, пожалуйста, что делаю не так и возможно ли такое в Excel 2003 или появилось только в более поздних версиях? Там вроде есть другие варианты поиска решений, может перебор только там?

Автор - Dron007
Дата добавления - 01.12.2013 в 18:38
MCH Дата: Воскресенье, 01.12.2013, 19:00 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Если вершин всего 6, то можно решить полным перебором всех возможных вариантов, всего получится 5! = 120 перестановок
10-12 вершин также попадают под данный алгоритм решения, а вот 20 уже не решить перебором

Можно попробовать адаптировать какой нибудь алгоритм по обходу графа
 
Ответить
СообщениеЕсли вершин всего 6, то можно решить полным перебором всех возможных вариантов, всего получится 5! = 120 перестановок
10-12 вершин также попадают под данный алгоритм решения, а вот 20 уже не решить перебором

Можно попробовать адаптировать какой нибудь алгоритм по обходу графа

Автор - MCH
Дата добавления - 01.12.2013 в 19:00
Dron007 Дата: Воскресенье, 01.12.2013, 19:11 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Если вершин всего 6, то можно решить полным перебором всех возможных вариантов, всего получится 5! = 120 перестановок

Там вроде бы больше вариантов получается, т.к. 1-2-3-1 и 1-3-2-1 тут разные пути. По максимуму 6^6 = 46656, но на деле, конечно же намного меньше, т.к. нет петель 1-2-3-2-1 и пути типа 1-2-3 и 2-3-1 и 3-1-2 идентичны.

Но у меня вопрос в том, как на практике это осуществить в Excel и желательно не через макросы, так я могу и просто программу написать, без Excel.
 
Ответить
Сообщение
Если вершин всего 6, то можно решить полным перебором всех возможных вариантов, всего получится 5! = 120 перестановок

Там вроде бы больше вариантов получается, т.к. 1-2-3-1 и 1-3-2-1 тут разные пути. По максимуму 6^6 = 46656, но на деле, конечно же намного меньше, т.к. нет петель 1-2-3-2-1 и пути типа 1-2-3 и 2-3-1 и 3-1-2 идентичны.

Но у меня вопрос в том, как на практике это осуществить в Excel и желательно не через макросы, так я могу и просто программу написать, без Excel.

Автор - Dron007
Дата добавления - 01.12.2013 в 19:11
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!