MIP Problemi GAMS'deki göreceli optimallik boşluğunu hesaplayın

Aug 16 2020

Bir MIP Probleminin göreceli optimallik Boşluğunu hesaplamak istiyorum ayrıca belirli bir çalışma zamanında çalıştırmaları iptal etmek istiyorum. Bu method:

F(1)    
abs(mymodel.objest - mymodel.objval)/max(abs(mymodel.objest),abs(mymodel.objval)) 

GAMS'nin günlükte hesapladığı boşlukla tutarlı değil. GAMS, mevcut hedef değeri değil boşluğu bulmak için "En İyi Tam Sayı" kullanır. hangisi doğru? ve Geçerli "En İyi Tamsayı" bir parametreye (.objval gibi) nasıl kaydedebilirim.

ve son olarak, bir bükücü algoritmasındaki göreli optimallik boşluğunu hesaplamak, bu şekilde doğru mu?

rgap = (upperBound - lowerBound)/(1 + abs(upperBound));

GAMS, "MIP Çözümü" kullanarak Neyi Hesaplar?

MIP Solution:   3334501534.000555    (1625 iterations, 0 nodes)
Final Solve:      56330158.829040    (2561 iterations)

Best possible:    48915652.476336
Absolute gap:   3285585881.524219
Relative gap:            0.985330

F (1) mymodel.objval (mymodel.objval return "Final Solve") kullanılarak hesaplanan boşluk% 13 ve mymodel.objval değeri 5.633016E + 7 (GAMS hesaplanan boşluk% 98). bu yüzden "MIP Çözümü" nü bir excel dosyasına aktarmak için bir parametreye kaydetmem gerekiyor.

Yanıtlar

1 Lutz Aug 17 2020 at 14:16

Göreceli optimallik boşluğunu hesaplamak için farklı formüller vardır. Kullandığınız çözücüye ve hangisinin uygulandığına bağlıdır. Bununla ilgili bazı bilgiler, GAMS seçeneği optCR'nin açıklamasında bulunabilir . Kullandığınız çözücünün çözücü kılavuzu, gerçekte uygulanan formül hakkında daha fazla ayrıntı içerebilir.

Soru güncellendikten sonra DÜZENLE:

Yazdığınız gibi değeri mymodel.objvaldöndürür Final Solve. MIP SolutionBunun yerine değeri görmek istiyorsanız (Cplex bağlantısının dahili olarak yaptığı gibi), son çözümü devre dışı bırakabilirsiniz. Ancak, Final Solveve MIP Solutionçok farklı sizin örnekte gibidir bu genellikle bazı sorunun (genellikle, bunlar (neredeyse) aynı) için bir göstergesidir. Çoğu zaman, bu zayıf ölçeklendirilmiş bir modeli gösterir. Belki Cplex toleransları sıkma suretiyle durumu iyileştirebilecek (bkz Cplex seçenekleri epopt, eprhs, epint) ve agresif ölçeklendirme aktive (Cplex opsiyon scaind 2). Etkinleştiriliyor mipkappastats(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXmipkappastats) ve quality(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXquality) size daha fazla bilgi verebilir. DataCheck=2(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXdatacheck) bazı sorunlar gösterebilir.