MIP Problemi GAMS'deki göreceli optimallik boşluğunu hesaplayın
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
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.objval
döndürür Final Solve
. MIP Solution
Bunun 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 Solve
ve 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.