এই আর্টিকেলে, আমরা এক্সেলে ইন্টিজার লিনিয়ার প্রোগ্রামিং সমাধান করা শিখব। মাইক্রোসফট এক্সেল-এ, ব্যবহারকারীরা সলভার অ্যাড-ইন ব্যবহার করে খুব দ্রুত একটি ইন্টিজার লিনিয়ার প্রোগ্রামের সমাধান নির্ধারণ করতে পারেন। আজ, আমরা সহজ এবং দ্রুত ধাপগুলোতে এই প্রক্রিয়া প্রদর্শন করব। আমরা এই আর্টিকেলের শেষ অংশে মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং সমস্যার একটি উদাহরণও আলোচনা করব। তাই, আর দেরি না করে আলোচনা শুরু করা যাক।
প্র্যাকটিস বুক ডাউনলোড করুন
আপনি এখান থেকে প্র্যাকটিস বুক ডাউনলোড করতে পারেন।
ইন্টিজার লিনিয়ার প্রোগ্রামিং কী?
ইন্টিজার লিনিয়ার প্রোগ্রামিং একটি গাণিতিক পদ্ধতি যাতে ইন্টিজার ভেরিয়েবল এবং লিনিয়ার উদ্দেশ্য ফাংশন ও সমীকরণ থাকে। লিনিয়ার প্রোগ্রামিং-এর সাহায্যে, আমরা কিছু শর্তের অধীন একটি দिये गये সমস্যার ন্যূনতম বা সর্বোচ্চ ফলাফল নির্ধারণ করতে পারি। এটি একটি টুল যা সীমিত সম্পদকে সর্বোত্তম সম্ভব উপায়ে ব্যবহারের পথ খুঁজে বের করতে সাহায্য করে। সকল ধরনের লিনিয়ার প্রোগ্রামিং-এ কিছু মূল ফ্যাক্টর থাকে। সেগুলো নিচে দেওয়া হলো:
- ডিসিশন ভেরিয়েবলস: আমরা সেই ডিসিশন ভেরিয়েবলস নির্ধারণ করি যা উদ্দেশ্য ফাংশনকে ন্যূনতম বা সর্বোচ্চ করে।
- উদ্দেশ্য ফাংশন: এটি একটি ফাংশন যা ডিসিশন ভেরিয়েবলস নির্ধারণে সাহায্য করে। এটি ফলাফল এবং ভেরিয়েবলসের মধ্যে সম্পর্ক প্রকাশ করে।
- কনস্ট্রেইন্টস: কনস্ট্রেইন্টসও ফাংশন যা সম্ভাব্য সমাধানগুলোর উপর বিভিন্ন শর্ত ธোপ করে।
ইন্টিজার লিনিয়ার প্রোগ্রামিং ছাড়াও, আমরা মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং-এর একটি উদাহরণও দেখব। মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং-এ কন্টিনিউয়াস এবং ইন্টিজার দুই ধরণের ভেরিয়েবল থাকে।
এক্সেলে ইন্টিজার লিনিয়ার প্রোগ্রামিং সমাধানের ধাপে ধাপে প্রক্রিয়া
ধাপে ধাপে প্রক্রিয়া ব্যাখ্যা করতে, আমরা নিচের প্রশ্নটি ব্যবহার করব। আপনাকে এটি ভালোভাবে পড়তে হবে বেসিক বিষয়গুলো বুঝতে। প্রশ্নটি ভালোভাবে পড়ে কনস্ট্রেইন্টস এবং উদ্দেশ্য ফাংশন নಿರূপণ করতে হবে।
মান লিজিয়ে, একটি মেশিন দুটি আন্তরবিনিময়যোগ্য পণ্য তৈরি করতে ব্যবহৃত হয়। মেশিনের দৈনিক ক্ষমতা সর্বোচ্চ ২০ ইউনিট পণ্য ১ এবং ১০ ইউনিট পণ্য ২ উৎপাদন করতে পারে। অথবা, মেশিনটি অয়োজিত করা যাতে পারে সর্বোচ্চ ১২ ইউনিট পণ্য ১ এবং ২৫ ইউনিট পণ্য ২ দৈনিক উৎপাদন করতে। বাজার বিশ্লেষণ দেখায় দুটি পণ্যের মিলিত সর্বোচ্চ দৈনিক চাহিদা ৩৫ ইউনিট। যেহেতু দুটি পণ্যের ক্রমশः ইউনিট লাভ $১০ এবং $১২, তাহলে দুটি মেশিন সেটিংয়ের মধ্যে কোনটি বেছে নেওয়া উচিত?
স্টেপ ১: প্রশ্ন বিশ্লেষণ করুন এবং ডেটাসেট তৈরি করুন
- সবसे প্রথমে, আমাদের দिये गये ইন্টিজার লিনিয়ার প্রোগ্রামিং সমস্যাটি বুঝতে হবে এবং সতর্কতার সাথে বিশ্লেষণ করতে হবে।
- উপরোক্ত প্রশ্নটি বিশ্লেষণ করলে, আমরা নিচের নिष्कর্ষে পৌঁছাই।
ডিসিশন ভেরিয়েবলস:
- X1: পণ্য ১-এর উৎপাদন পরিমাণ।
- X2: পণ্য ২-এর উৎপাদন পরিমাণ।
- Y: ১ যদি প্রথম সেটিং বেছে নেওয়া হয় অথবা ০ যদি দ্বিতীয় সেটিং বেছে নেওয়া হয়।
উদ্দেশ্য ফাংশন:
এখানে, উদ্দেশ্য ফাংশন হলো:
Z=10X1+12X2
কনস্ট্রেইন্টস:
উপরোক্ত প্রশ্ন থেকে আমরা মূলত ৩ টি কনস্ট্রেইন্ট পেতে পারি। সেগুলো হলো:
- X1+X2<=35
কারণ বাজার বিশ্লেষণ দেখায় দুটি পণ্যের মিলিত সর্বোচ্চ দৈনিক চাহিদা ৩৫ ইউনিট।
- X1-8Y<=12
এই কনস্ট্রেইন্টটি নির্দিষ্টভাবে পণ্য ১-এর জন্য।
- X2+15Y<=25
এটি দ্বিতীয় পণ্যের জন্য কনস্ট্রেইন্ট।
- Y={0,1}
Y -এর মান ০ বা ১ হবে।
- X1,X2>=0
পণ্যগুলোর পরিমাণ ঋণাত্মক হতে পারে না।
- পরবর্তী ধাপে, আমরা কনস্ট্রেইন্টস, ফাংশনস, এবং ভেরিয়েবলস খেয়ালে রেখে নিচের ছবির মত একটি ডেটাসেট তৈরি করেছি। আপনি আপনার প্রয়োজন অনুযায়ী এটিকে পরিবর্তন করতে পারেন।

স্টেপ ২: এক্সেলে সলভার অ্যাড-ইন লোড করুন
- দ্বিতীয়ে, আমাদের এক্সেলে সলভার অ্যাড-ইন লোড করতে হবে। যদি এটি ইতিমধ্যে আপনার এক্সেলে লোড করা থাকে, তবে, আপনি স্টেপ ৩-এ সরাসরি যেতে পারেন।
- এতে করতে, ফাইল ট্যাবে ক্লিক করুন।

- তারপর, স্ক্রিনের বাম–নিচ কোণ থেকে অপশনস সিলেক্ট করুন।
- এটি এক্সেল অপশনস উইন্ডো খুলবে।

- এক্সেল অপশনস উইন্ডোতে, অ্যাড-ইনস সিলেক্ট করুন।
- তারপর, এক্সেল অ্যাড-ইনস সিলেক্ট করুন এবং ম্যানেজ বক্সে গো ক্লিক করুন।
- একটি অ্যাড-ইনস মেসেজ বক্স পপ আপ হবে।

- সলভার অ্যাড-ইন চেক করুন এবং মেসেজ বক্স থেকে ওকে সিলেক্ট করুন।

- শেষে, আপনি ডেটা ট্যাবের অ্যানালিসিস সেকশনে সলভার ফিচারটি দেখতে পাবেন।

স্টেপ ৩: কনস্ট্রেইন্টস এবং উদ্দেশ্য ফাংশনের কোইফিশিয়েন্টগুলো ভরুন
- তৃতীয়ে, আপনাকে ডেটাসেটে কনস্ট্রেইন্টস এবং উদ্দেশ্য ফাংশন ভরাতে হবে।
- এখানে, আমরা মূলত কনস্ট্রেইন্টস এবং উদ্দেশ্য ফাংশনের কোইফিশিয়েন্টগুলো ইনসার্ট করব।
- আমাদের প্রথম কনস্ট্রেইন্ট হলো X1+X2<=35। এর মানে যদি প্রথম সেটিং বেছে নেওয়া হয় তবে, পণ্যগুলোর যোগফল ৩৫-এর সমান বা কম হতে হবে।
- তাহলে, X1 -এর কোইফিশিয়েন্ট ১ এবং X2 -এর ২।
- এছাড়া, সমীকরণটি প্রথম সেটিং নির্দেশ করে, তাই Y -এর কোইফিশিয়েন্ট ১।
- চিহ্নটি <=।
- এবং সীমা ৩৫।

- পূর্বের নির্দেশনা অনুসরণ করে সকল কনস্ট্রেইন্টসের কোইফিশিয়েন্টগুলো ভরুন।

- তারপর, সেল E10 সিলেক্ট করুন এবং নিচের ফর্মুলা টাইপ করুন:
=SUMPRODUCT($B$6:$D$6,B10:D10)
এই ফর্মুলায়, আমরা SUMPRODUCT ফাংশন ব্যবহার করেছি ডিসিশন ভেরিয়েবলসকে সম্মানিত কনস্ট্রেইন্ট ভেরিয়েবলসহ গুণ করে তারপর সেগুলো যোগ করতে। এই কেসে, সেল B6 গুণ হবে সেল B10-এর সাথে, সেল C6 গুণ হবে সেল C10-এর সাথে, এবং সেল D6 গুণ হবে সেল D10-এর সাথে। তারপর, সকল গুণফল একসাথে যোগ হবে।
- এন্টার চাপুন এবং ফিল হ্যান্ডেল নিচে টানুন।

- এখন, উদ্দেশ্য ফাংশনের কোইফিশিয়েন্টগুলো সেল B16 থেকে C16-এ ভরুন।
- আমাদের কেসে, উদ্দেশ্য ফাংশন হলো Z = 10X1+12X2।

- আরেকবার, সেল E16 সিলেক্ট করুন এবং নিচের ফর্মুলা টাইপ করুন:
=SUMPRODUCT($B$6:$D$6,B16:D16)
- শেষে, এন্টার চাপুন এবং আপনি কোইফিশিয়েন্ট এবং ফর্মুলা ইনসার্ট করার পর নিচের ছবির মত ডেটাসেট দেখতে পাবেন।

স্টেপ ৪: সলভার প্যারামিটার ইনসার্ট করুন
- স্টেপ ৪-এ, ডেটা ট্যাবে যান এবং অ্যানালাইজ সেকশন থেকে সলভার সিলেক্ট করুন। এটি সলভার প্যারামিটারস উইন্ডো খুলবে।

- সেট অবজেক্টিভ বক্সে, আপনাকে সেই সেলটি টাইপ করতে হবে যেটি উদ্দেশ্য ফাংশন-এর মান ধারণ করবে।
- তাই, আমরা এখানে $E$16 টাইপ করেছি।
- এখানে, আমরা সর্বোচ্চ ফলাফল খুঁজছি।
- তাই, পরবর্তী ধাপে ম্যাক্স সিলেক্ট করেছি।
- ‘বাই চেঞ্জিং ভেরিয়েবল সেলস’-এ $B$6:$D$6 টাইপ করুন। এতে ডিসিশন ভেরিয়েবলস থাকে।

স্টেপ ৫: সাবজেক্ট টু কনস্ট্রেইন্টস যোগ করুন
- পঞ্চম ধাপে, আমাদের সাবজেক্ট টু কনস্ট্রেইন্টস যোগ করতে হবে।
- আমাদের ভেরিয়েবলস বাইনারি নাকি ইন্টিজার এবং কনস্ট্রেইন্টসের সম্পর্ক জানাতে হবে।
- उस উদ্দেশ্যে, অ্যাড ক্লিক করুন। এটি অ্যাড কনস্ট্রেইন্ট ডায়লগ বক্স খুলবে।

- অ্যাড কনস্ট্রেইন্ট উইন্ডোতে, সেল রেফারেন্স বক্সে $D$6 টাইপ করুন এবং ড্রপ-ডাউন মেনু থেকে bin সিলেক্ট করুন।
- সেল D6 এ Y -এর মান থাকে যা ০ বা ১। যা বাইনারি সংখ্যা নির্দেশ করে। তাই আমরা এখানে bin সিলেক্ট করেছি।
- ওকে চাপুন যাতে এগিয়ে যেতে পারি।

- আরেকবার, অ্যাড ক্লিক করুন।

- এবার, সেল রেফারেন্স বক্সে $E$10:$E$12 টাইপ করুন, ড্রপ-ডাউন মেনু থেকে <= চিহ্ন, এবং কনস্ট্রেইন্ট বক্সে =$G$10:$G$12 টাইপ করুন।
- তারপর, ওকে চাপুন।

- একবার আর সলভার প্যারামিটারস উইন্ডোতে অ্যাড ক্লিক করুন।

- এখন, সেল রেফারেন্স বক্সে $B$6:$C$6 টাইপ করুন এবং ড্রপ-ডাউন মেনু থেকে int সিলেক্ট করুন।
- সেল B6 এবং C6 এ X1 এবং X2 -এর মান থাকে যা ইন্টিজার।
- আরেকবার, ওকে চাপুন।

স্টেপ ৬: সলভিং মেথড সিলেক্ট করুন
- স্টেপ ৬-এ, ‘সিলেক্ট এ সলভিং মেথড’ সেকশনে সিমপ্লেক্স এলপি সিলেক্ট করুন এবং সolve ক্লিক করুন।
- নিশ্চিত করুন যে ‘মেক আনকনস্ট্রেইনড ভেরিয়েবলস নন-নেগেটিভ’ চেক করা আছে।

- Solve ক্লিক করার পর, সলভার রেজাল্টস উইন্ডো প্রদর্শিত হবে।
- সেখান থেকে ওকে সিলেক্ট করুন।

স্টেপ ৭: ইন্টিজার লিনিয়ার প্রোগ্রামিং-এর সমাধান
- শেষে, আপনি এক্সেল শীটে আপনার ইচ্ছামত সেলগুলোতে সমাধানগুলো পাবেন।
- এই কেসে, দ্বিতীয় মেশিন সেটিং-টি আমাদের সেরা আউটপুট দেবে।

স্টেপ ৮: আনসার রিপোর্ট জেনারেট করুন
- অতিরিক্তভাবে, আপনি আনসার রিপোর্ট জেনারেট করতে পারেন।
- এতে করতে, সলভার রেজাল্টস উইন্ডোর রিপোর্টস সেকশনে আনসার সিলেক্ট করুন এবং ওকে চাপুন।

- শেষে, আপনি একটি নতুন শীটে রিপোর্টটি পাবেন।

এক্সেলে মিক্সড ইন্টিজার লিনিয়ার প্রোগ্রামিং উদাহরণ
এই সেকশনে, আমরা এক্সেলে মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং-এর একটি সহজ উদাহরণ আলোচনা করব। আপনি দ্রুত ধাপগুলো অনুসরণ করে এক্সেলে মিক্সড-ইন্টিজার লিনিয়ার প্রোগ্রামিং সহজে সমাধান করতে পারবেন। চলুন এই উদাহরণের উদ্দেশ্য ফাংশন এবং কনস্ট্রেইন্টস দेखি।
উদ্দেশ্য ফাংশন:
Z=2.39X1+1.99X2+2.99X3+300Y1+250Y2+400Y3
কনস্ট্রেইন্টস:
- X1+X2+X3=1000
- X1-400Y1<=0
- X2-550Y2<=0
- X3-600Y3<=0
এখানে, X1, X2, এবং X3 ইন্টিজার। অন্যদিকে, Y1, Y2, এবং Y3 বাইনারি নম্বর। আরো, আমাদের Z-এর ন্যূনতম মান খুঁজে বের করতে হবে।
নিচের ধাপগুলো অনুসরণ করে উদাহরণটি সম্পূর্ণ জানুন।
ধাপসমূহ:
- প্রথমে, ডিসিশন ভেরিয়েবলস, কনস্ট্রেইন্টস, এবং উদ্দেশ্য ফাংশন-এর কোইফিশিয়েন্ট সংরক্ষণ করার জন্য একটি ডেটাসেট তৈরি করুন।

- দ্বিতীয়ে, উদ্দেশ্য ফাংশন-এর ভেরিয়েবলসের মিক্সড কোইফিশিয়েন্ট টাইপ করুন।

- তৃতীয়ে, নিচের ছবির মত কনস্ট্রেইন্টস এর ভেরিয়েবলসের কোইফিশিয়েন্ট টাইপ করুন। টোটাল কলাম খালি রাখুন।

- उसके পর, সেল H10 সিলেক্ট করুন এবং নিচের ফর্মুলা টাইপ করুন:
=SUMPRODUCT($B$6:$G$6,B10:G10)
- এন্টার চাপুন এবং ফিল হ্যান্ডেল নিচে টানুন।

- এখন, সেল H6-এ নিচের ফর্মুলা টাইপ করুন:
=SUMPRODUCT($B$6:$G$6,B10:G10)- এন্টার চাপুন।

- পরবর্তী ধাপে, ডেটা ট্যাবে যান এবং সলভার সিলেক্ট করুন। এটি সলভার প্যারামিটারস উইন্ডো খুলবে।

- সলভার প্যারামিটারস উইন্ডোতে, উদ্দেশ্য সেট করুন সেল $H$6 এ Min বাই চেঞ্জিং ভেরিয়েবল সেলস $B$6:$G$6।

- তারপর, অ্যাড ক্লিক করুন।

- এই মুহূর্তে, কনস্ট্রেইন্টস এক এক করে যোগ করুন এবং সিমপ্লেক্স এলপি কে সলভিং মেথড হিসেবে বেছে নিন।
- Solve ক্লিক করুন যাতে এগিয়ে যেতে পারে।

- ফলস্বরূপ, সলভার রেজাল্টস উইন্ডো প্রদর্শিত হবে।
- সেখান থেকে ওকে ক্লিক করুন।

- শেষে, ফলাফল নিচের ছবির মত দেখাবে।

উপসংহার
এই আর্টিকেলে, আমরা এক্সেলে ইন্টিজার লিনিয়ার প্রোগ্রামিং সমাধান-এর ধাপে ধাপে প্রক্রিয়া দেখিয়েছি। আশা করি এই আর্টিকেলটি আপনার কাজ সহজে করতে সাহায্য করবে। আরও, আমরা আর্টিকেলের শুরুতে প্র্যাকটিস বুক যোগ করেছি। অধিকন্তু, আপনি সেটি ডাউনলোড করে আপনার দক্ষতা পরীক্ষা করতে পারেন। আপনি এক্সেলডেমি ওয়েবসাইট-এও ভিজিট করতে পারেন আরও আর্টিকেলের জন্য। সবশেষে, আপনার যেকোনো পরামর্শ বা প্রশ্ন থাকলে, নিচের মন্তব্য বিভাগে বিনামূল্যে জিজ্ঞেস করুন।