Cigarette smokers problem
سگریٹ نوشی کرنے والوں کا مسئلہ کمپیوٹر سائنس میں ایک ہم آہنگی کا مسئلہ ہے، جسے اصل میں 1971 میں سوہاس پاٹل نے بیان کیا تھا۔ اس مسئلے پر تنقید کی گئی ہے کہ اس میں "ایسی پابندیاں ہیں جنہیں عملی طور پر جائز نہیں ٹھہرایا جا سکتا"۔ مسئلہ کی تفصیل پاٹل کے مسئلے میں ایک "بالکل من مانی" پابندی شامل ہے کہ اجزاء کی فراہمی کرنے والے عمل کو تبدیل نہیں کیا جا سکتا اور یہ کہ کوئی مشروط بیانات استعمال نہیں کیے جا سکتے ہیں۔ فرض کریں کہ سگریٹ بنانے اور تمباکو نوشی کرنے کے لیے تین اجزاء کی ضرورت ہوتی ہے: تمباکو، کاغذ اور میچ۔ ایک میز کے ارد گرد تین تمباکو نوشی کرنے والے ہوتے ہیں، جن میں سے ہر ایک کو تین اجزاء میں سے ایک کی لامحدود فراہمی ہوتی ہے-ایک تمباکو نوشی کرنے والے کے پاس تمباکو کی لامحدود فراہمی ہوتی ہے، دوسرے کے پاس کاغذ ہوتا ہے، اور تیسرے کے پاس میچ ہوتے ہیں۔ ایک غیر تمباکو نوشی کرنے والا ایجنٹ بھی ہوتا ہے جو تمباکو نوشی کرنے والوں کو میز پر رکھنے کے لیے دو اشیا کو من مانی طور پر (غیر متعین طور پر) منتخب کر کے اپنی سگریٹ بنانے کے قابل بناتا ہے۔ جس تمباکو نوشی کرنے والے کے پاس تیسرا سپلائی ہے اسے میز سے دو اشیاء کو نکالنا چاہیے، ان کا استعمال کرتے ہوئے (اپنی سپلائی کے ساتھ) سگریٹ بنانا چاہیے، جسے وہ تھوڑی دیر کے لیے دھوئیں۔ ایک بار جب تمباکو نوشی کرنے والا اپنا سگریٹ ختم کر لیتا ہے، تو ایجنٹ میز پر دو نئی بے ترتیب اشیاء رکھتا ہے۔ یہ عمل ہمیشہ جاری رہتا ہے۔ میز پر موجود اشیاء کی نمائندگی کے لیے تین سیمافور استعمال کیے جاتے ہیں۔ ایجنٹ مناسب سیمافور کو بڑھاتا ہے تاکہ یہ اشارہ کیا جا سکے کہ کوئی چیز میز پر رکھی گئی ہے، اور تمباکو نوشی کرنے والے اشیاء کو ہٹاتے وقت سیمافور کو کم کرتے ہیں۔ اس کے علاوہ، ہر تمباکو نوشی کرنے والے کے پاس ایک وابستہ سیمافور ہوتا ہے جسے وہ ایجنٹ کو اشارہ کرنے کے لیے استعمال کرتے ہیں کہ خاص تمباکو نوشی کرنے والے نے تمباکو نوشی کی ہے۔ ایجنٹ کے پاس ایک ایسا عمل ہوتا ہے جو ہر تمباکو نوشی کرنے والے کے سیمافور پر انتظار کرتا ہے تاکہ ایجنٹ کو معلوم ہو کہ وہ نئی اشیاء کو میز پر رکھ سکتا ہے۔ تمباکو نوشی کرنے والے جس کے پاس تمباکو کی فراہمی ہے اس کا ایک سادہ سا سیوڈو کوڈ نفاذ مندرجہ ذیل کی طرح نظر آسکتا ہے: ڈیف تمباکو _ اسموکر (): دہرائیں: paper.wait () matches.wait () اسموک () tobacco_smoker_done.signal () تاہم، یہ تعطل کا باعث بن سکتا ہے۔ اگر ایجنٹ کاغذ اور تمباکو کو میز پر رکھتا ہے، تو تمباکو نوشی کرنے والا کاغذ کو ہٹا سکتا ہے اور تمباکو نوشی کرنے والا میچ کے ساتھ تمباکو لے سکتا ہے، جس سے دونوں سگریٹ بنانے سے قاصر ہیں۔ اس کا حل یہ ہے کہ ایجنٹ میں ترمیم کیے بغیر اضافی عمل اور سیمافورز کی وضاحت کی جائے جو تعطل کو روکتے ہیں۔ تنقید کرنے والے پاٹل نے سگریٹ نوشی کرنے والوں کے مسئلے پر درج ذیل رکاوٹیں رکھی ہیں: ایجنٹ کا کوڈ قابل ترمیم نہیں ہے۔ حل کو مشروط بیانات استعمال کرنے کی اجازت نہیں ہے۔ پاٹل نے پیٹری نیٹ کے لحاظ سے ایک ثبوت کا استعمال کرتے ہوئے دعوی کیا کہ سگریٹ نوشی کرنے والوں کے مسئلے کا حل ایڈسگر ڈیکسٹرا کے سیمافور پرائمیٹوز کا استعمال کرنا ناممکن ہے، اور یہ تجویز کرنا کہ ایک زیادہ طاقتور پرائمیٹو ضروری ہے۔ تاہم، ڈیوڈ پرناس نے مظاہرہ کیا کہ اگر سیمافورز کی صفوں کا استعمال کیا جاتا ہے تو پاٹل کا ثبوت ناکافی ہے، ایک ایسا حل پیش کرتا ہے جو مددگار عمل کا استعمال کرتا ہے جو تمباکو نوشی کرنے والے کو آگے بڑھنے کا اشارہ کرنے کے لیے ریاضی کرتا ہے۔ ایلن بی ڈاؤنی کے مطابق، پہلی پابندی سمجھ میں آتی ہے، کیونکہ اگر ایجنٹ کسی آپریٹنگ سسٹم کی نمائندگی کرتا ہے، تو ہر بار جب کوئی نئی ایپلی کیشن آئے گی تو اس میں ترمیم کرنا غیر معقول یا ناممکن ہوگا۔ تاہم، پرناس کا استدلال ہے کہ دوسری پابندی بلاجواز ہے: پاٹل کی طرف سے بتائی گئی حدود اس کے ابتدائی حصوں کی حدود ہیں، لیکن وہ ڈیجسٹرا کی طرف سے بیان کردہ ابتدائی حصوں پر حدود نہیں ہیں۔ تاہم، یہ ضروری ہے کہ اس طرح کی تحقیقات [ڈیجسٹرا پرائمیٹوز کی] مصنوعی پابندیوں کے تحت ان پرائمیٹوز کی طاقت کی تحقیقات نہ کریں۔ مصنوعی سے ہمارا مطلب پابندیاں ہیں جنہیں عملی غور و فکر کے ذریعے جائز نہیں ٹھہرایا جا سکتا۔ اس مصنف کی رائے میں، مشروط یا سیمافور صفوں کو ممنوع قرار دینے والی پابندیاں مصنوعی ہیں۔ کھانے کے فلسفیوں کا مسئلہ قارئین-مصنفین کا مسئلہ نیند حجام کا مسئلہ حوالہ جات تضادات ہم آہنگی (کمپیوٹر سائنس) مضامین مثال کے طور پر چھدم کوڈ کے ساتھ