2014-09-22 44 views
1

我在INITSOLVE階段期間在原始問題空間中閱讀解決方案。一些多聚合變量被忽略。我猜這是可以的,因爲一旦其他變量的值被修正,它們的值就可以被推斷出來。然而,閱讀解決方案的客觀價值現在已經關閉了,因爲這些多聚合變量的目標不包括在內。是否有反正呢?解決方案讀取期間在原始空間中的解決方案的目標

回答

1

多聚合變量的客觀係數被添加到活動表示的變量中,因此解決方案的客觀值通常應該仍然是正確的。

但是,可能發生的情況是多重聚合是通過雙重參數完成的,也就是說,可能存在將多重聚合變量設置爲不同值的解決方案,但您仍然可以將其設置爲給定的值通過多聚合而不會惡化目標。此外,解決方案也可能會根據這種類型的參數更改邊界或修改變量。

在這種情況下,您的解決方案可能不適合預先解決的問題,但會「調整」爲解決方案的價值不比原始解決方案差。是這樣嗎?解決方案的客觀價值是否更好?另外,爲了在原始空間中獲得客觀值,應該使用SCIPgetSolOrigObj()檢查解決方案的目標函數值,因爲客戶偏移量和因子可以在預解決期間進行更改。 此外,請檢查原始問題中變量的值,以瞭解解決方案與讀取的內容有何不同。

+0

謝謝傑拉爾德。我檢查了原始問題中變量的值,它們與讀取的值相同。但是,當我調用SCIPgetSolOrigObj()時,它仍然關閉。我還在階段PRESOLVED,SOLVING,SOLVED打印了scip-> origprob-> objoffset,它們都是零。最終的解決方案是正確的,但... – user4043122 2014-09-23 17:40:22

+0

解決方案有多遠?您期望的目標價值和SCIP輸出的目標價值是什麼? – Gerald 2014-09-24 18:15:40

+0

與之前一樣,如果我從閱讀解決方案中獲得目標,則會忽略來自多聚集變量的目標。讓我添加更多細節,解決方案保留爲獨立解決方案,不會添加到原始項目中。我不明白爲什麼objoffset爲零,最終找到的解決方案有正確的目標。 – user4043122 2014-09-25 19:09:11