Excel Solver / opensolver найти кратчайшее расстояние между городами - PullRequest
0 голосов
/ 09 июня 2018

У меня есть таблица с городами и некоторыми расстояниями между ними, и я хочу найти все возможные расстояния от города C1 до любого другого города с помощью надстройки Excel для Solver (или OpenSolver).Ограничение заключается в том, что я могу использовать не более 2 прыжков (дуг) между каждым городом (узлом).Так, например, я не могу использовать путь C1-C2-C3-C4, чтобы найти расстояние от C1 до C4, поскольку у него есть 3 дуги.

Это таблица:

    C1  C2  C3  C4  C5
C1  -   12  20  25    
C2  12  -   8       4
C3  20  8   -       10
C4  25          -   7
C5      4   10  7   -

Такиспользуя грубую силу, я бы получил:

Варианты от C1 до C2:

a) C1-C2: 12 миль

b) C1-C3-C2: 20+ 8 = 28 миль

в) C1-C3-C5-C2: 20 + 10 + 4 = 34 миль, но недействительно (3 прыжка)

Так что в решателе я должен быть в состояниичтобы найти эти два действительных варианта, а затем выберите один с наименьшим расстоянием (вариант a).

То же самое необходимо сделать для маршрутов C1-> C3, C1-> C4 и C1-> C5

Есть какие-нибудь подсказки, как это сделать?Я думал об использовании SUMPRODUCT, но этот массив не имеет всех значений, и я не могу понять, как перечислить все возможные пути от C1 до Cn.Очень ценится.

1 Ответ

0 голосов
/ 09 июня 2018

Что ж, не решили вашу проблему, но показали, как использовать sumproduct () с ячейками принятия решений B5: F9 для управления одним городом одним городом.

Надеемся, вы могли бы отредактировать / развернуть его для своего случая...

city planner with solver

Я поставил 999 для случаев, которые не существуют, как будто вы ставите ноль при поиске минимума, который решает решатель, которыйкак хороший вариант,

...