"لکیری برمجہ" کے نسخوں کے درمیان فرق

حذف شدہ مندرجات اضافہ شدہ مندرجات
clean up, replaced: شمارندہ ← کمپیوٹر, برمجہ ← پروگرامنگ (8) using AWB
م clean up, replaced: ← (94) using AWB
سطر 1:
{{اصطلاح برابر|لکیری برمجہ| Linear programming}}
لکیری پروگرامنگ ریاضی کی ایک تکنیک ہے جس میں ایسے مسلئے حل کیے جاتے ہیں جن میں ایک اقتصادی منافع فنکشن کو زیادہ سے زیادہ کرنا مقصود ہوتا ہے۔ مثلاً ایک کارخانہ میں مختلف اشیا کی تعداد <math>\ x_1, x_2, \cdots, x_n</math> تیار کی جاتی ہیں جن کی مارکیٹ میں قیمت باترتیب <math>\ c_1, c_2, \cdots, c_n</math> ہے۔ اب منافع [[دالہ|فنکشن]] ہو گی
:<math>\ f(x_1, x_2,\cdots, x_n) = c_1 x_1 + c_2 x_2 + \cdots + c_n x_n</math>
اب ان اشیا کی تیاری کے لیے ایک خام مال باترتیب <math>\ a_1, a_2, \cdots, a_n</math> درکار ہوتا ہے، جس کی محدود مقدار <math>\ b </math> مہیا ہوتی ہے۔ اس پابندی کو نامساوات کی صورت میں یوں لکھا جا سکتا ہے
:<math>\ a_1 x_1 + a_2 x_2 + \cdots + a_n x_n \le b </math>
دوسرے خام مال کے لیے اسی صورت علیحدہ نامساوات لکھی جا سکتی ہے۔ اس کے علاوہ مزدوری وغیرہ کی نامساوات بھی لکھی جا سکتی ہیں۔
 
==لکیری برمجہ مسلئہ ==
سطر 11:
زیادہ سے زیادہ ہو، جبکہ دی گئی نامساوات
:<math>\begin{matrix}
a_{1,1} x_1 + a_{1,2} x_2 + \cdots + a_{1,n} x_n \le b_1 \\
a_{2,1} x_1 + a_{2,2} x_2 + \cdots + a_{2,n} x_n \le b_2 \\
\vdots \\
a_{m,1} x_1 + a_{m,2} x_2 + \cdots + a_{m,n} x_n \le b_m
\end{matrix}
سطر 53:
 
===مثال 1===
ایک کاشتکار کے پاس 10 ایکڑ زمین ہے جس پر وہ مٹر اور گاجر کی فصل کاشت کرنا چاہتا ہے۔ مٹر کی فصل میں ہر ایکڑ کے لیے 2 میٹرک ٹن کھاد درکار ہوتی ہے جبکہ گاجر کی فصل کے لیے 1 میٹرک ٹن فی ایکڑ۔ فرض کرو کہ کاشتکار کو صرف 12 میٹرک ٹن کھاد دستیاب ہے۔ اب منڈی میں مٹر کی فی ایکڑ پیداوار کے 9 ہزار روپے ملتے ہیں جبکہ گاجر کی ایک ایکڑ پیداوار کے 4 ہزار روپے۔ ہمیں یہ ڈھونڈنا ہے کہ کتنے ایکڑ پر مٹر اُگائے جائیں اور کتنے پر گاجر تاکہ کاشتکار کو زیادہ سے زیادہ آمدنی ہو۔
 
فرض کرو کہ گاجر ''x'' ایکڑ پر کاشت کی جاتی ہے اور مٹر ''y'' ایکڑ پر۔ اب چونکہ کل رقبہ 10 ایکڑ ہے، اس لیے
سطر 63:
:<math>\ y \ge 0 </math>
مٹر کی قیمت 9 ہزار فی ایکڑ اور گاجر کی قیمت 4 ہزار فی ایکڑ کے حساب سے کاشتکار کی آمدنی ہو گی
:<math>\ f(x,y) = 4 x + 9 y </math>
جسے وہ زیادہ سے زیادہ کرنا چاہتا ہے۔
 
[[image:Linear_programming_2_constraint_example.png]]
 
تصویر میں مساوات <math>\ x + y = 10 </math> کالے رنگی لکیر سے دکھائ گئی ہے۔ اس کالی لکیر سے نیچے کا سارا علاقہ پہلی نامساوات کی رُو سے جائز ہے۔ مساوات<math>\ x + 2y = 12 </math> نیلے رنگی لکیر سے دکھائ گئی ہے۔ دوسری نامساوات کی رو سے اس نیلی لکیر سے نیچے کا سارا علاقہ جائز ہے۔ اب نامساوات <math>\ x \ge 0 \,,\, y \ge 0</math> کو ملا کر رنگدار (shaded) علاقہ جائز ہے، یعنی اس رنگدار علاقے کا کوئ بھی نکتہ تمام نامساوات کی تسکین کرتا ہے۔ غور کرو کہ یہ علاقہ ایک کثیرالاضلاع (polygon) ہے، جسے کے کونے یہ ہیں:
<table cellpadding="2" border="1">
<tr>
<th>x</th>
<th>y</th>
</tr>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>6</td>
</tr>
<tr>
<td>8</td>
<td>2</td>
</tr>
<tr>
<td>10</td>
<td>0</td>
</tr>
</table>
ہمیں اس رنگدار علاقے میں سے وہ نکتہ چننا ہے جس پر سب سے زیادہ آمدنی<math>\ f(x,y) </math> ہو۔ یہ پتہ کرنے کے لیے ہم نے تصویر میں 40 ہزار کی آمدنی تصور کرتے ہوئے، اس مساوات کے لیے
:<math>\ 4 x + 9 y = 40 </math>
سرخ لکیر لگائی ہے۔ اس لکیر پر کسی بھی نکتہ پر آمدنی 40 ہزار ہو گی۔ غور کرو کہ یہ لکیر کونہ <math>(x,y)=(10,0)</math> سے گزرتی ہے۔ اس طرح دوسرے کونوں کو مد نظر رکھتے ہوئے ہم ان مساوات
:<math>\ 4 x + 9 y = 50 </math>
:<math>\ 4 x + 9 y = 54 </math>
کے مطابق متوازی سرخ لکیریں لگاتے ہیں۔ اب یہ واضح ہے کہ کونہ (نکتہ) <math>(x,y)=(0,6)</math> پر سب سے زیادہ آمدنی (54 ہزار) ہے۔ اس لیے حل یہ ہے کہ 0 ایکڑ پر گاجر کاشت کی جائے اور 6 ایکڑ پر مٹر (یعنی صرف 6 ایکڑ رقبے پر مٹر کاشت کرو، اور باقی 4 ایکڑ فارغ چھوڑ دو)۔
 
غور کرو کہ نیلی اور کالی لکیریں نکتہ <math>(x,y)=(8,2)</math> پر ملتی ہیں، جو ان [[یکلخت لکیری مساوات کا نظام|یکلخت لکیری مساوات]] کا حل ہے۔ مگر یہ حل اس مسلئہ کا حل نہیں چونکہ اس میں آمدنی کا خیال نہیں رکھا گیا۔
سطر 102:
 
اگر ہم منڈی کی قیمت بدلیں تو حل بھی بدل سکتا ہے۔ مثلاً اگر مٹر کے9 ہزار ملتے ہوں اور گاجر کے 6 ہزار، یعنی
:<math>\ f(x,y) = 6 x + 9 y </math>
تو حل نکتہ <math>(x=8,y=2)</math> ہو گا، اور آمدنی 66 ہزار۔
 
سطر 108:
اگر اوپر کی مثال میں ایک فصل زیادہ کر دیں:
:ایک کاشتکار کے پاس 10 ایکڑ زمین ہے جس پر وہ مٹر، گاجر، اور ٹماٹر کی فصل کاشت کرنا چاہتا ہے۔ گاجر، مٹر، اور ٹماٹر کے ایکڑوں کو <math>\ x_1, x_2, x_3</math> کہتے ہوئے
:<math>\ x_1 + x_2 + x_3 \le 10</math>
:<math>\ x_1 \ge 0, x_2 \ge 0, x_3 \ge 0</math>
اب منڈی میں مٹر کی فی ایکڑ پیداوار کے 9 ہزار روپے ملتے ہیں جبکہ گاجر کی ایک ایکڑ پیداوار کے 4 ہزار روپے، اور ٹماٹر کے 7 ہزار روپے فی ایکڑ۔
سطر 116:
مٹر کی فصل کو 10 دن فی ایکڑ مزدوری چاہیے ہوتی ہے، گاجر کو 6 دن فی ایکڑ، اور ٹماٹر کو 11 دن فی ایکڑ۔ کل 100 دن کی مزدوری میسر ہے۔
:<math>\ 6 x_1 + 10 x_2 + 11 x_3 \le 100</math>
ہمیں یہ ڈھونڈنا ہے کہ کتنے ایکڑ پر مٹر اُگائے جائیں، کتنے پر گاجر، اور کتنے پر ٹماٹر، تاکہ کاشتکار کو زیادہ سے زیادہ آمدنی ہو۔
 
اب دیکھو کہ یہ مسلئہ تین متغیر میں ہے۔ اس کا کثیرالاضلاع سہ العبادی ہو گا۔ اس سے واضح ہؤا کہ جب متغیر کی تعداد زیادہ ہو تو ہندسیہ کی مدد سے کثیرالاضلاع کا تصور کر کے اس کے کونے ڈھونڈنا ممکن نہیں رہتا۔ خوش قسمتی سے بسیط (simplex) کا ایسا طریقہ موجود ہے جس کے استعمال سے تصور کرنے کی ضرورت نہیں رہتی اور ایک میکانکی طریقہ استعمال کرتے ہوئے ایک کونے <math>\ (x_1, x_2, \cdots, x_n) </math> سے دوسر ے کونے، چھلانگیں اس طرح لگائی جا سکتی ہیں کہ ہر چھلانگ میں فنکشن کی قیمت میں اضافہ ہوتا جائے اور بالآخر سب سے بہتر حل نکل آئے۔
 
==ثنویت ==
{{اصطلاح برابر|ثنویت<br> تکبیر <br> تصغیر <br> مقدم <br> ثنوی <br> کامل <br> بسیط <br>ممکن؟|
Duality <br> Maximize <br> Minimize <br> Primal <br> Dual <br> Optimal <br> Simplex
<br> feasible}}
سطر 142:
ان دونوں مسلئوں کا گہرا تعلق نیچے دیہ ہے:
 
اگر ''X'' اور ''Y'' ایسے سمتیہ ہیں جو بالترتیب مقدم اور ثنوی مسائل کے لوازمات پورے کرتے ہیں، تو
# <math>\ f(X) \le g(Y)</math>
# اگر ان ''X'' اور ''Y'' کے لیے، مساوات <math>\ f(X)=g(Y) </math> ہو، تو یہ ''X'' اور ''Y'' ان مسائل کے کامل حل ہیں (یعنی ''X'' مقدم مسلئہ کی فنکشن ''‪f()‬'' کی تکبیر کرتا ہے، اور ''Y'' ثنوی مسلئی کی فنکشن ''g‪()‬'' کی تصغیر کرتا ہے)۔ کامل حل کو عموماً <math>X^*</math> اور <math>Y^*</math> لکھا جاتا ہے (تصویر)۔
 
جب بسیط کے طریقہ سے لکیری پروگرامنگ مقدم مسلئہ کا حل ''X'' نکالا جاتا ہے، تو اس دوران ثنوی مسلئہ کا حل ''Y'' بھی ساتھ ہی نکل آتا ہے۔
سطر 183:
</math>
 
اس مسلئہ کا حل نکالا جائے تو کل قیمت 54 ہزار ہی نکلے گی، اور <math>y_1=0</math>،
<math>y_2=4.5</math>۔ یعنی اپنی دانست میں یہ شخص کھاد کی قیمت ساڑھے چار پزار روپے فی میٹرک ٹن لگائے، اور زمین کا کرایہ صفر۔
 
اس مثال میں ہم نے یہ عجیب بات دیکھی کہ زمین کی قیمت صفر لگی۔ ثنوی لکیری پروگرامنگ مسائل میں ان قیمتوں کو پرچھائیں قیمتیں (shadow prices) کہا جاتا ہے۔ اس کا یہ مطلب نہیں کہ زمین کی کوئ وقعت نہیں۔ صرف یہ کہ منڈی (مارکیٹ) کے حوالے سے اس ایک مسلئہ کے تناظر میں ان اشیاء کا بھاؤ یہ (پرچھائیں قیمت) لگا۔
 
==اور دیکھو ==
سطر 195:
* [http://ur.wikibooks.org/wiki/%D8%B3%D8%A7%D8%A6%D9%84%DB%8C%D8%A8/%D8%A8%D8%A7%D8%A8_20 سائیلیب سبق]
* [http://sourceforge.net/projects/lipside/ LiPS]
* بہت زیادہ متغیر میں لکیری پروگرامنگ مسلئہ کے کمپیوٹر پر حل کے لیے [http://sourceforge.net/projects/lpsolve lpsolve]
 
{{ریاضی مدد}}