如何让solverstudio(纸浆和cbc)在不可行的情况下报告冲突限制?

时间:2017-05-09 05:35:56

标签: pulp

我正在使用solverstudio(纸浆和cbc)。如何让求解器报告冲突约束?谢谢。

1 个答案:

答案 0 :(得分:0)

如果您的问题不可行,那么从技术上讲,您的所有约束都存在冲突。但是,对于在解算器返回Infeasible之前找到的任何中间解决方案,您可以尝试这样来查看违反了哪些约束:

DECLARE @t TABLE (id INT, [Param] INT, Val VARCHAR(50))
INSERT INTO @t VALUES
(1, 1,' One 1'),
(1, NULL,'Null-Value 1'),
(1, 2,'Two 1'),
(1, 3,'Three 3'),
(2,NULL,'Nul-Value 2'),
(2, 2,'One 2'),
(3, NULL,'Null-Value 3'),
(4, 1,'One 4'),
(5, NULL,'Null-Vaue 5'),
(6, NULL,'Null-Value 6')

DECLARE @Param INT
SET @Param = 1

SELECT *
FROM @t
WHERE @Param IS NULL OR (([Param] = @Param) OR ([Param] IS NULL AND Id <> @Param))