有关处理非负元素的问题
Closed this issue · 2 comments
BeagleManMan commented
您好!首先非常感谢您的工作!我在使用过程中遇到一个问题,就是我的Ex=f的约束中,E为全1矩阵,f为1,即Ex=f意味着x的元素和为1,同时我需要添加一个约束为Ax<=b,但A中天然存在负数元素,所以我考虑的是,例如A的最小元素为-3,则我逐个给A的元素加5,那么Ax<=b等价于(A+5)x<=b+5(x1+x2+...+xn),由于Ex=f存在,所以可以得到(x1+...x2)=1,那么就有(A+5)x<=b+5,但是我实际这样使用时发现无法迭代出可行解,想请问这是由于Ex=f的条件并非先于Ax<=b的条件被满足,而是这些条件是在迭代过程中同时逐渐被满足的,所以导致(x1+...+xn)=1在(A+5)x<=b+5(x1+x2+...+xn)并无法被代入吗
YunhaoZhang-Mars commented
您好!首先需要确保的是变量x的范围在[0,1]之间,LinSAT暂时无法处理这个范围之外的变量。可以尝试将sum(x) = 1的约束修改为sum(x) = 0.999,正如我们在TSP实验中做的那样(TSP_exp/utils/project.py
第20~22行),这有助于模型的收敛。
BeagleManMan commented
您好!首先需要确保的是变量x的范围在[0,1]之间,LinSAT暂时无法处理这个范围之外的变量。可以尝试将sum(x) = 1的约束修改为sum(x) = 0.999,正如我们在TSP实验中做的那样(
TSP_exp/utils/project.py
第20~22行),这有助于模型的收敛。
好的,非常感谢!