ভূমিকা
পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিংয়ের জন্য একটি solver লিখুন ।
চ্যালেঞ্জ
আপনার কাজটি পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিং (আইএলপি) এর জন্য সলভার লেখার কাজ। আইএলপিতে, অজানা এক সেট (যা প্রত্যেকেই পূর্ণসংখ্যা) এর রৈখিক বৈষম্য দেওয়া হয় এবং লিনিয়ার ফাংশনের সর্বাধিক বা সর্বাধিক সন্ধান করা লক্ষ্য।
উদাহরণস্বরূপ, অসমতার জন্য ( মিশ্র পূর্ণসংখ্যার লিনিয়ার প্রোগ্রামিং থেকে নেওয়া উদাহরণ )
4x+2y-15≤0
x+2y- 8≤0
x+ y- 5≤0
- x ≤0
- y ≤0
এবং উদ্দেশ্য ফাংশন 3x+2y
, উদ্দেশ্যমূলক ফাংশন সর্বাধিক হওয়া উচিত 12
( x=2,y=3
), সর্বনিম্ন হওয়া উচিত 0
( x=y=0
)।
ইনপুটটি 2 ডি অ্যারে হিসাবে দেওয়া হয় (বা স্ট্যান্ডার্ড স্পেসিফিকেশন অনুসরণ করে কোনও সমতুল্য), প্রতিটি সারি চূড়ান্ত সারি বাদে একটি বৈষম্যের সাথে মিলে যায়। অ্যারেতে থাকা সংখ্যাগুলি সহগ এবং এই ≤0
অংশটি সর্বদা বাদ দেওয়া হয়। যদি n
প্রতিটি সারিতে উপাদান থাকে তবে এর অর্থ n-1
অজানা রয়েছে।
অ্যারের শেষ সারিটি লিনিয়ার ফাংশনের সাথে মিলে যায়। সহগ তালিকাবদ্ধ করা হয়।
উদাহরণস্বরূপ, উপরের সমস্যার জন্য ইনপুট অ্যারেটি হ'ল
[[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,0]].
আউটপুট সর্বনিম্ন এবং সর্বাধিক হওয়া উচিত, কোনও যুক্তিসঙ্গত আকারে দেওয়া।
নিম্নলিখিত সমস্যাটির জন্য (উপরের সমস্যা থেকে দুটি বিধিনিষেধ সরিয়ে নেওয়া হয়েছে):
[[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]].
সর্বাধিক এখনও রয়েছে 12
, তবে সর্বনিম্ন উপস্থিত নেই এবং উদ্দেশ্যমূলক ক্রিয়ায় নির্বিচারে বৃহত্তর (পরম মানের অর্থে) নেতিবাচক মান থাকতে পারে। এই ক্ষেত্রে, প্রোগ্রামটির আউটপুট হওয়া উচিত 12
, উত্তরদাতাদের দ্বারা নির্ধারিত একটি মিথ্যা মান অনুসরণ করে। অন্য কেসটি হ'ল এখানে কোনও সমাধান নেই example
[[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]].
এই ক্ষেত্রে, মিথ্যা মানগুলি আউটপুটও হওয়া উচিত। উদ্দেশ্যটি কার্যকরীকরণের জন্য "অনুকূল মান" অসীম এবং কেস যেখানে কোনও সমাধান নেই সে ক্ষেত্রে এটি নির্ধারণ করা ভাল হবে, তবে এটি প্রয়োজনীয় নয়।
ইনপুটটিতে কেবলমাত্র অসমতার জন্য এবং উদ্দেশ্যমূলক ফাংশন উভয়ের জন্য পূর্ণসংখ্য সহগ রয়েছে। সমস্ত অজানা এছাড়াও পূর্ণসংখ্যা হয়। অসমতার গুণমানের ম্যাট্রিক্সের পূর্ণ পদ রয়েছে বলে গ্যারান্টিযুক্ত।
পরীক্ষার মামলা
@ কিরিলএলে ক্রেডিট। মূল পরীক্ষার স্যুটে একটি বাগ খুঁজে পেতে এবং আইএলপি সমস্যাগুলি সম্পর্কে আমার উপলব্ধি আরও গভীর করার জন্য
Input
Output
[[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,1]]
[1,13]
[[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]]
[-inf, 12]
[[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]]
[NaN, NaN]
[[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[5,5,5,5,6,7]]
[55, inf]
[[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[0,0,0,0,0,4]]
[4, 4]
[[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[0,0,4]]
[NaN, NaN]
চশমা
ব্যতিক্রম হ্যান্ডলিং সম্পর্কে চিন্তা করার দরকার নেই।
এটি কোড-গল্ফ , সর্বনিম্ন বাইট জিতেছে।
অজানা সর্বধিক সংখ্যা:
9
। অসাম্য সর্বধিক সংখ্যা:12
।আপনি কোনও স্ট্যান্ডার্ড ফর্মের মাধ্যমে ইনপুট নিতে এবং আউটপুট সরবরাহ করতে পারেন , এবং আপনি বিন্যাসটি চয়ন করতে পারেন নিখরচায়।
যথারীতি এখানে ডিফল্ট লুফোলগুলি প্রয়োগ হয়।