薄可行区​​域实验的源代码


薄可行区​​域实验的源代码


来自Gurobipy Import * Import随机导入系统#测试小扰动对最佳解决方案#的效果#对于薄可行区域RHS = 1E3 M =模型('细线优化')x = M.addvar(OBJ = 1)y = m.addvar(obj = 0,lb = -grb.infinity,ub = grb.infinity)c1 = m.addconstr(1e-5 * y + 1e-0 * x <= Rhs)c2 = m.addconstr(- 1e-5 * y + 1e-0 * x <= rhs) m.Params.OutputFlag = 0 m.Params.Presolve = 0 m.optimize() xval = x.X yval = y.X maxdiff = 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