From 9f45c1775e69b8c0ebc38433777e9e71e81f557b Mon Sep 17 00:00:00 2001 From: zhang Date: Sat, 9 Apr 2022 18:33:47 +0800 Subject: =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- opt/dual/dual_demo.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 opt/dual/dual_demo.py (limited to 'opt/dual/dual_demo.py') diff --git a/opt/dual/dual_demo.py b/opt/dual/dual_demo.py new file mode 100644 index 0000000..22eb8f0 --- /dev/null +++ b/opt/dual/dual_demo.py @@ -0,0 +1,45 @@ +from scipy import optimize +from scipy.spatial import distance + +from ortools.sat.python import cp_model + + +def obj(x1, x2): + return -(3*x1 + 4*x2) + + +if __name__ == '__main__': + + # 原始问题 + c = [-3, -4] + A = [[1/2, 2], [3, 1]] + b = [30, 25] + + res = optimize.linprog(c, A_ub=A, b_ub=b, bounds=[[0, None], [0, None]]) + print(res) + + print('=============') + + c = [30, 25] + A = [[-1/2, -3], [-2, -1]] + b = [-3, -4] + res = optimize.linprog(c, A_ub=A, b_ub=b, bounds=[[0, None], [0, None]]) + print(res) + print('=============') + + c = [5, 1] + A = [[-2, -1], [-1, -1], [-2, -20]] + b = [-6, -4, -21] + res = optimize.linprog(c, A_ub=A, b_ub=b, bounds=[[0, None], [0, None]]) + print(res) + print('=============') + + c = [-3, -5] + A = [[1, 3], [3, 4]] + b = [60, 120] + res = optimize.linprog(c, A_ub=A, b_ub=b, bounds=[[10, None], [0, None]]) + print(res) + print('=============') + + model = cp_model.CpModel() + model.AddBoolOr() -- cgit v1.2.3