OPL Транспорт

Я пишу код для простой задачи транспортировки в IBM ILOG CPLEX Optimization Studio. Вот код trans.mod (Файл)

{string} Sources = ...;
{string} Destination = ...;
float Demand[Destination]= ...;
float Output[Sources]= ...;
float Shipcost[Sources][Destination]= ...;

assert sum(s in Sources) Output[s] == sum(d in Destination) Demand[d];
dvar int Ship[Sources][Destination] in 1..50;
minimize 
sum(s in Sources, d in Destination)
Shipcost[s][d]*Ship[s][d];
subject to 
{
forall( s in Sources , d in Destination )
sum(d in Destination)
Ship[s][d]<=Output[s];
forall( s in Sources , d in Destination )
sum(s in Sources)
Ship[s][d]>=Demand[d];
forall( s in Sources , d in Destination )
Ship[s][d]>=0;
}     
execute DISPLAY
{
writeln("Ship=",Ship)
}

Файл данных этого как trans.data

Sources = {Source1 Source2 Source3};
Destination = {mumbai delhi vadodra kolkata};
Demand = #[
        mumbai: 80
        delhi: 65
        vadodra: 70
        kolkata: 85
        ]#;
Output = #[
        Source1: 75
        Source2: 125
        Source3: 100
        ]#;
Shipcost = #[
        Source1: #[
                    mumbai: 464
                    delhi: 513
                    vadodra: 654
                    kolkata: 867
                    ]#
        Source2 : #[
                    mumbai: 352
                    delhi: 416
                    vadodra: 690
                    kolkata: 791
                    ]#
        Source3 : #[
                    mumbai: 995
                    delhi: 682
                    vadodra: 388
                    kolkata: 685
                    ]#
            ]#;

Проблема в том, что когда я запускаю эту простую задачу транспортировки на TORA, это дает мне Оптимальное решение как 152535 Но когда я запускаю этот код в cplex, это дает мне оптимальное решение как 156366 Пожалуйста, дайте мне знать, где я иду неправильно или почему я получаю разница 3831. Заранее спасибо.

1 ответ

Решение

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

Если оба являются оптимальными результатами, проверьте параметры, если вы вводите в одну из программ неправильно.

Проверьте и сравните переменные решения для обеих программ, является ли результат наиболее логичным для оптимального решения или нет.

Другие вопросы по тегам