پی اور این پی بتانے سے پہلے پہلے ایک چھوٹی سی تمہید باندھتے ہیں۔آپ نے وہ کہانی تو ضرور سنی ہوگی کہ ایک بادشاہ نے ایک درباری سے خوش ہوکر کہا مانگ کیا مانگتا ہے۔ وہ درباری بادشاہ کی شومئی قسمت سے ریاضی دان تھا جس نےمسکراتے ہوئے فرمائش کی کہ شطرنج کے پہلے خانے میں ایک اشرفی رکھی جائے پھر دوسرے میں دو پھر دوسرے خانے میں موجود تعداد کو اسی تعداد سے ضرب دیا جائے ( یعنی ۲ ضرب ۲ =4) اور جواب تعداد ( 4) کو تیسرے خانے میں رکھا جائے پھر چوتھے خانے میں بھی یہی عمل دہرایا جائے ( یعنی ۴ضرب ۴ =16 ) اس حاصل ضرب تعداد کے برابر اشرفیوں کوچوتھے خانے میں رکھا جائےاسی طرح یہ عمل ہر خانے میں دہراتے ہوئے کل چونسٹھ خانے میں اشرفیاں رکھی جائيں اور وہ تمام اشرفیاں مجھے انعام میں دے دیا جائے۔
پہلے تو بادشاہ اس عجیب فرمائشی انعام پر ہنسا کہ اتنی سی مقدار میں خزانہ مانگ رہا ہے تو اس نے اپنے خزانچی کو حکم دیا کہ جس حساب سے یہ اشرفیاں مانگ رہا ہے اسے دے دیا جائے۔ خزانچی حساب لگانے اور اشرفیاں دینے کے لئے گیا مگر پھر واپس دوڑا ہوا آیا اور ڈرتے ڈرتے بتایا کہ اسی طریقے سے جو اشرفیوں کی مقدار بنتی ہے وہ تو ہمارے خزانےیا سلطنت میں تو دور کی بات پوری دنیا میں شائد اتنا سونا نا ہو کے اتنی اشرفیاں بنائی جا سکیں۔
اسے کامبنیٹرل ایکپلوژن کہا جاتا ہے اور یہ بولین سیٹسفایبلٹی پرابلم کی اساس ہے۔ پی اور این پی مسائل کا مطالعہ ایک نہائت مزیدار مضمون اور پی بمقابل این پی کمپیوٹر سائنیس کاایک نہایت دقیق غیر حل شدہ مسئلہ ہے جس کے حل پر ایک ملین ڈالر کا انعام رکھا گیا ہے۔ اس کو ایک اور کامبینیٹرل ایکپلوژن مثال سے اس طرح بتایا جاسکتا ہے کہ آپ جامعہ کراچی میں انڈر گریجویٹ طالب علموں کے سربراہ ہیں اور آپ نے 1،000 طالب علموں کو 10 ڈپارٹمنٹوں یا شعبہ جات میں داخلہ دینا ہے۔ ہر طالب علم ایک فہرست پیش کرتا ہے کہ وہ کن دیگر طالبعلموں کے ساتھ پڑھنا پسند یا ناپسند کرتا ہے۔ اس سادے سے مسئلے میں کیا آپ سمجھتے ہیں کہ آپ کے طالب علموں کی ترجیحات کو مطمئن کر سکتے ہیں اور کیا کمپیوٹنگ کا استعمال کرتے ہوئے اس مسئلے کو حل کیا جا سکتا ہے؟
عام سا لگنے والا یہ مسئلہ اتنا آسان نہیں۔ طالب علموں کے ممکنہ کامبینیشیز کی تعداد ایک نہایت ہی بڑا عدد بن جاتی ہے۔ یہ عدد ہے ایک کے بعد ایک ہزار صفر! یہ تعداد شاید کائنات میں بنیادی ذرات کی تعداد سے بھی ذیادہ ہے اس طرح اندازہ لگایئے کہ اگر ہم ایک ٹرلین کامبنیشنز یا تفاویض کوایک سیکنڈ میں چیک کرتے ہیں پھر بھی تمام اسائنمنٹس دیکھنے میں ٹریلین ، ٹریلین، ٹریلین سال لگ جائیں گے۔ اس طرح کی تلاش کو جامع تلاش کہا جاتا ہے اور یہ کمپیوٹیشنلی بہت مہنگا پڑتا ہے!
کسی بھی کمپیوٹر الگارتھم کی ایک اہم خصوصیت اس کی کمپلیکسٹی یا پیچیدگی کا پیمانا ہوتا ہے۔ اس پیمانے کو لینیر یا خطی، کواڈریٹک، لاگ، پولینومیل یا متعدد الحدود اور ایکسپونینشیل یا قوت نما کے پیمانوں سے ناپا جاتا ہے۔اس زمن میں اس بات کا خیال رکھنا بھی ضروری ہوتا ہے کہ یہ الگارتھم جگہ اور وقت دونوں کے لئے بہتر طریقے سے اصلاح شدہ ہو۔ یعنی کوئی الگارتھم زیادہ میموری استعمال کر کر جلدی جواب لا دے تو اسکا استعمال چھوٹے ڈوایسز میں جن میں میموری کی کمی ہوتی ہے آسانی سے نہیں ہوسکتا۔ یہی حال پراسسنگ پاور کا ہے کہ اگر ایک الگارتھم کم جگہ لیتا ہو لیکن جواب لانے کے لئے ٹیرا فلاپس میں ہدایات کو چلانا مقصود ہو تو اسکا استعمال بھی محدود ہو جاتا ہے۔ مثال کے طور پر کسی پرائم نمبر کے حل کی تصدیق تو نہایت آسان کام ہے لیکن اسے ڈھونڈنے کے لئے اس کو لاکھوں کروڑوں اعداد سے تقسیم کرنا ایک بروٹ فورس مرحلہ ہے جو ہر بڑھنے والے پرائم کے ساتھ مشکل ہوتا چلا جاتا ہے۔
پی مسائل ایسےہوتے ہیں جن کا پولینومیل ٹائم میں جواب ڈھونڈا جاسکتا ہے اور اس جواب کی تصدیق کی جاسکتی ہے۔ پولینومیل ٹایم سے عام الفاظ میں مراد اتنا وقت ہے جس کا اوپری باونڈ پولینومیل کلئے سے ظاہر کیا جا سکتا ہو۔ این پی یا ‘نان ڈٹرمنسٹک پولینومیل ٹایم’ مسئلے سے مراد ایسا مسئلہ ہے جو کہ حل ہونے میں بہت وقت لیتا ہو اور اس کے حل کی تصدیق پولینومیل وقت میں ہوسکتی ہو۔ حل کی تصدیق درحقیقت یہاں تعریف کی اصل حقیقت ہے۔ این پی مسائل ناممکن نہیں ہوتے، صرف بہت مشکل ہوتے ہیں۔ ان کی فہرست یہاں دیکھی جا سکتی ہے۔
اکثر محققین کی حس مزاح کو گدگدانے والا ملین ڈالر کا سوال یہ ہے کہ کیا پی اور این پی برابر ہیں-یعنی کہ اگر کس مسئلے کی پولینومیل وقت میں تصدیق کی جاسکتی ہے تو کیا مستقبل میں انسانی علم اس قابل ہوسکتا ہے کہ اس مسئلے کو پولینومیل وقت میں حل بھی کیا جاسکے۔ اگر ہاں تو اسکا حسابی ثبوت کیا ہے؟ یہ مسئلہ ساینسی اذہان کو پواینکیر کنچیکچر اور فرماٹ کے آخری تھیورم کے بعد سب سے ذیادہ مصروف رکھنے والا معمہ ہے۔ محققین کی ایک چھوٹی سی راے شماری کے مطابق ایک بڑی تعداد سمجھتی ہے کہ پی اور این پی برابر نہیں۔ میرا خیال اسکے برعکس ہے لیکن ڈانلڈ نتھ کی طرح میری راے بھی اقلیتی ہے۔ 🙂
You are surely a PhD student of Computer Science (probably with focus on Algorithms). Am I right?
Comment by Farigh — August 23, 2011 @ 3:35 am
ًمحترم، بجا فرمایا آپ نے۔ صرف یہ کہ تحقیقی میلان مشین لرننگ کی جانب ہے، خالصتاالگارتھمز پر توجہ مرکوز نہیں۔
Comment by ابو عزام — August 23, 2011 @ 8:53 pm
کمال ہے۔۔۔۔۔۔ “کیا” زبردست لکھا ہے۔۔۔؟
🙂
Comment by عمیر ملک — August 23, 2011 @ 2:51 pm
تبصرے کا شکریہ عمیر صاحب ہماراخیال تھا عام فہم لکھ رہے ہیں، آپ نے خوش فہمی دور کردی 🙂
Comment by ابو عزام — August 23, 2011 @ 8:54 pm
@Abu Azzam
What I read was doubling the amount instead of what you suggest squaring the amount. Would you please confirm, revise? By the way you have written it in “aam fehm” Urdu but the problem has never been “aam fehm”, plus probably it lacks description of “verifiable in polynomial time” which again would be too much to expect in Urdu.
Comment by Farigh — August 24, 2011 @ 11:53 pm
ًمحترم فارغ، تبصرے کا شکریہ ۔ آپ نے بجا فرمایا، میں نے کئی طریقوں سے یہ مثل پڑھی ہے۔ قوت نما یعنی مربع کے ذریعے، فبوناچی سیریز کے ذریعے اور دگنا کرنے کے ذریعے سے بھی۔ درحقیقت یہ مسئلہ جیومیٹرک پروگریشن میں اضافہ کی شرح پر منتج ہوتا ہے، یہ اضافہ لینیر بھی ہو سکتا ہے اور قوت نما یعنی جیومیٹرک پاور سیریز بھی اور تمام طریقوں سے یہ ایک خاصے بڑے عدد میں منتج ہوگا جو کہ اس مثل کا مرکزی خیال ہے۔
عام فہمی سے لکھنے میں شائد میری یہ ذاتی کمی آڑے آتی ہے کہ میں نے حساب، کیلکیلس، شماریات، نظریہ احتمال، توضیعات اور گروپ تھیوری وغیرہ کبھی اردو میں نہیںپڑھی لحاظہ مجھے اس کی صحیح اصطلاحات کا علم نہیں۔ کوشش کرتا ہوں کہ ترجمہ کرلوں، باقی اصلاح کا طالب ہوں ۔
پولینومیل وقت میں تصدیق پر مزید اضافہ یہ کرتا چلوں کہ ایک الگورتھم اگر پولینومیل وقت میں حل ہوسکتا ہے تو اسکا مطلب یہ ہے کہ اگر کسی دیئے گئے ان پٹ کے لئے الگورتھم مکمل کرنے کے مراحل کی تعداد n^k سے نکالی جا سکتی ہے جہاں k کوئی مثبت صحیح عدد ہے جو ان پٹ کی پیچیدگی کے لئے استعمال ہوتا ہو۔. زیادہ تر عام حسابی عملیات مثلا جمع، تفریق، ضرب، اور ڈویژن، کے ساتھ ساتھ مربع جڑیں، طاقتوں، اور لوگارتھم پولینومیل وقت میںنکالے جا سکتے ہیں ۔ نیز دیگر دلچسپ ریاضیاتی کانسٹنٹ، مثلا پای یا ای جسکو اویلر کانسٹنٹ یا آیلر نمبر بھی کہا جاتا ہے، کا تعین پولینومیل وقت میں کیا جا سکتا ہے.
Comment by عدنان مسعود — August 26, 2011 @ 5:55 am