实验的源代码一层薄薄的可行域


从gurobipy导入*导入随机进口sys #测试小扰动的影响问题的最优解#薄可行域rhs = 1 e3 m =模型(细线优化)x = m.addVar (obj = 1) y = m。addVar (obj = 0,磅=伽马线暴。无穷,乌兰巴托= GRB.INFINITY) c1 = m。addConstr (1 e-5 * y + 1 e-0 * x < = rhs) c2 = m。addConstr (- 1 e-5 * y + 1 e-0 * x < = rhs) m.Params。OutputFlag m.Params = 0。xval = x Presolve = 0 m.optimize ()。X yval = y。Xmaxdiff = 0 for i in range(1024*1024): c1.Rhs = rhs + 2e-6 * random.random() c2.Rhs = rhs + 2e-6 * random.random() x.Obj = 1 + 2e-6 * random.random() y.Obj = 0 + 2e-6 * random.random() m.optimize() x2val = x.X y2val = y.X error = (xval-x2val)*(xval-x2val) + (yval-y2val)*(yval-y2val) if error > 1e-5 + maxdiff: print('New maxdiff %g Iter %d Kappa %g Violations: %g %g %g' % (error, i, m.KappaExact, m.BoundVio, m.ConstrVio, m.DualVio)) sys.stdout.flush() maxdiff = error