from pyscipopt import*
R=input()
m=Model()
V,C=m.addVar,m.addCons
a,b,c=V(),V(),V()
m.setObjective(c)
C(a*b<=c)
P=[]
for r in R:
x,y=V(),V();C(r<=x);C(x<=a-r);C(r<=y);C(y<=b-r)
for u,v,s in P:C((x-u)**2+(y-v)**2>=(r+s)**2)
P+=(x,y,r),
m.optimize()
m.printBestSol()
কিভাবে এটা কাজ করে
নিম্নরূপ আমরা সমস্যার লিখুন: কমান গ ভেরিয়েবল উপর একটি , খ , গ , এক্স 1 , Y 1 , ..., x এর এন , Y এন , যেখানে
- ab ≤ c ;
- r i ≤ x i ≤ a - r i এবং r i ≤ y i ≤ b - y i , 1 ≤ i ≤ n এর জন্য ;
- ( x i - x j ) 2 + ( y i - y j ) 2 ≥ ( r i + r j ) 2 , 1 ≤ j < i ≤ n এর জন্য ।
স্পষ্টতই, আমরা এই সীমাবদ্ধতাগুলিতে একটি বাহ্যিক অপ্টিমাইজেশন লাইব্রেরি ব্যবহার করছি, তবে আপনি কেবল তাদের কোনও পুরানো অপ্টিমাইজারকে খাওয়াতে পারবেন না — এমনকি ম্যাথামেটিকার NMinimize
এই ক্ষুদ্র পরীক্ষার ক্ষেত্রে স্থানীয় মিনিমে আটকে যায়। যদি আপনি সীমাবদ্ধতার দিকে ঘনিষ্ঠভাবে তাকান তবে আপনি দেখতে পাবেন যে এগুলি একটি চতুর্থাংশ-সীমাবদ্ধ চতুষ্কোণ কর্মসূচী গঠন করে এবং একটি নন-কনভেক্স QCQP- এর বৈশ্বিক অনুকূল সন্ধান করা এনপি-হার্ড। সুতরাং আমাদের কিছু অবিশ্বাস্যভাবে উচ্চ-শক্তিযুক্ত যাদু প্রয়োজন। আমি শিল্প-শক্তি সলভার এসসিআইপি বেছে নিয়েছি , যা একমাত্র বৈশ্বিক কিউসিকিউপি সলভার যা আমি একাডেমিক ব্যবহারের জন্য নিখরচায় লাইসেন্সের সাথে খুঁজে পেতে পারি। সুখের বিষয়, এটিতে খুব সুন্দর পাইথনের বাইন্ডিং রয়েছে।
ইনপুট এবং আউটপুট
স্টিডিনের মতো ব্যাসার্ধের তালিকাটি পাস করুন [5,3,1.5]
। আউটপুট শো objective value:
আয়তক্ষেত্র এলাকা, x1
, x2
আয়তক্ষেত্র মাত্রা, x3
আয়তক্ষেত্র এলাকায় আবার, x4
, x5
প্রথম বৃত্ত কেন্দ্র স্থানাঙ্ক, x6
, x7
দ্বিতীয় বৃত্ত কেন্দ্র স্থানাঙ্ক, ইত্যাদি
পরীক্ষার মামলা
[5,3,1.5]
↦ 157.459666673757
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 0.04
Solving Nodes : 187
Primal Bound : +1.57459666673757e+02 (9 solutions)
Dual Bound : +1.57459666673757e+02
Gap : 0.00 %
objective value: 157.459666673757
x1 10 (obj:0)
x2 15.7459666673757 (obj:0)
x3 157.459666673757 (obj:1)
x4 5 (obj:0)
x5 5 (obj:0)
x6 7 (obj:0)
x7 12.7459666673757 (obj:0)
x8 1.5 (obj:0)
x9 10.4972522849871 (obj:0)
[9,4,8,2]
↦ 709.061485909243
এটি ওপির সমাধানের চেয়ে ভাল। সঠিক মাত্রা 18 বাই 29 + 6√3।
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 1.07
Solving Nodes : 4650
Primal Bound : +7.09061485909243e+02 (6 solutions)
Dual Bound : +7.09061485909243e+02
Gap : 0.00 %
objective value: 709.061485909243
x1 18 (obj:0)
x2 39.3923047727357 (obj:0)
x3 709.061485909243 (obj:1)
x4 9 (obj:0)
x5 30.3923047727357 (obj:0)
x6 14 (obj:0)
x7 18.3923048064677 (obj:0)
x8 8 (obj:0)
x9 8 (obj:0)
x10 2 (obj:0)
x11 19.6154311552252 (obj:0)
[18,3,1]
↦ 1295.999999999
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 0.00
Solving Nodes : 13
Primal Bound : +1.29599999999900e+03 (4 solutions)
Dual Bound : +1.29599999999900e+03
Gap : 0.00 %
objective value: 1295.999999999
x1 35.9999999999722 (obj:0)
x2 36 (obj:0)
x3 1295.999999999 (obj:1)
x4 17.9999999999722 (obj:0)
x5 18 (obj:0)
x6 32.8552571627738 (obj:0)
x7 3 (obj:0)
x8 1 (obj:0)
x9 1 (obj:0)
বোনাস কেস
[1,2,3,4,5]
↦ 230.244214912998
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 401.31
Solving Nodes : 1400341
Primal Bound : +2.30244214912998e+02 (16 solutions)
Dual Bound : +2.30244214912998e+02
Gap : 0.00 %
objective value: 230.244214912998
x1 13.9282031800476 (obj:0)
x2 16.530790960676 (obj:0)
x3 230.244214912998 (obj:1)
x4 1 (obj:0)
x5 9.60188492354373 (obj:0)
x6 11.757778088743 (obj:0)
x7 3.17450418828415 (obj:0)
x8 3 (obj:0)
x9 13.530790960676 (obj:0)
x10 9.92820318004764 (obj:0)
x11 12.530790960676 (obj:0)
x12 5 (obj:0)
x13 5 (obj:0)
[3,4,5,6,7]
↦ 553.918025310597
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 90.28
Solving Nodes : 248281
Primal Bound : +5.53918025310597e+02 (18 solutions)
Dual Bound : +5.53918025310597e+02
Gap : 0.00 %
objective value: 553.918025310597
x1 21.9544511351279 (obj:0)
x2 25.2303290086403 (obj:0)
x3 553.918025310597 (obj:1)
x4 3 (obj:0)
x5 14.4852813557912 (obj:0)
x6 4.87198593295855 (obj:0)
x7 21.2303290086403 (obj:0)
x8 16.9544511351279 (obj:0)
x9 5 (obj:0)
x10 6 (obj:0)
x11 6 (obj:0)
x12 14.9544511351279 (obj:0)
x13 16.8321595389753 (obj:0)
[3,4,5,6,7,8]
↦ 777.87455544487
SCIP Status : problem is solved [optimal solution found]
Solving Time (sec) : 218.29
Solving Nodes : 551316
Primal Bound : +7.77874555444870e+02 (29 solutions)
Dual Bound : +7.77874555444870e+02
Gap : 0.00 %
objective value: 777.87455544487
x1 29.9626413867546 (obj:0)
x2 25.9614813640722 (obj:0)
x3 777.87455544487 (obj:1)
x4 13.7325948669477 (obj:0)
x5 15.3563780595534 (obj:0)
x6 16.0504838821134 (obj:0)
x7 21.9614813640722 (obj:0)
x8 24.9626413867546 (obj:0)
x9 20.7071098175984 (obj:0)
x10 6 (obj:0)
x11 19.9614813640722 (obj:0)
x12 7 (obj:0)
x13 7 (obj:0)
x14 21.9626413867546 (obj:0)
x15 8.05799919177801 (obj:0)