Cigarette smokers problem
সিগারেট ধূমপায়ীদের সমস্যা হল কম্পিউটার বিজ্ঞানের একটি সমান্তরাল সমস্যা, যা মূলত 1971 সালে সুহাস পাতিল বর্ণনা করেছিলেন। সমস্যাটির সমালোচনা করা হয়েছে "এমন বিধিনিষেধ যা ব্যবহারিক বিবেচনার দ্বারা ন্যায্য হতে পারে না"। সমস্যা বর্ণনা পাতিলের সমস্যার মধ্যে একটি "বেশ স্বেচ্ছাচারী" সীমাবদ্ধতা রয়েছে যে উপাদানগুলি সরবরাহকারী প্রক্রিয়াটি পরিবর্তন করা যাবে না এবং কোনও শর্তাধীন বিবৃতি ব্যবহার করা যাবে না। ধরে নিন যে একটি সিগারেট তৈরি এবং ধূমপান করার জন্য তিনটি উপাদান প্রয়োজনঃ তামাক, কাগজ এবং ম্যাচ। একটি টেবিলের চারপাশে তিনজন ধূমপায়ী থাকে, যাদের প্রত্যেকের কাছে তিনটি উপাদানের মধ্যে একটির অসীম সরবরাহ থাকে-একজন ধূমপায়ীর কাছে তামাকের অসীম সরবরাহ থাকে, অন্যজনের কাছে কাগজ থাকে এবং তৃতীয়টির সাথে মিল থাকে। একজন অ-ধূমপায়ী এজেন্টও রয়েছে যিনি ধূমপায়ীদের টেবিলে রাখার জন্য দুটি সরবরাহ নির্বাচন করে নির্বিচারে (অনির্ধারিতভাবে) তাদের সিগারেট তৈরি করতে সক্ষম করেন। যে ধূমপায়ীর তৃতীয় সরবরাহ রয়েছে তার উচিত টেবিল থেকে দুটি জিনিস সরিয়ে ফেলা, সেগুলি ব্যবহার করে (তাদের নিজস্ব সরবরাহ সহ) একটি সিগারেট তৈরি করা, যা তারা কিছুক্ষণের জন্য ধূমপান করে। একবার ধূমপায়ী তার সিগারেট শেষ করে ফেললে, এজেন্ট টেবিলে দুটি নতুন এলোমেলো জিনিস রাখে। এই প্রক্রিয়া চিরকাল চলতে থাকে। টেবিলের আইটেমগুলি উপস্থাপন করার জন্য তিনটি সেমাফোর ব্যবহার করা হয়; এজেন্ট উপযুক্ত সেমাফোরটি বাড়িয়ে সংকেত দেয় যে কোনও আইটেমটি টেবিলে রাখা হয়েছে, এবং ধূমপায়ীরা আইটেমগুলি অপসারণ করার সময় সেমাফোরটি হ্রাস করে। এছাড়াও, প্রতিটি ধূমপায়ীর একটি সম্পর্কিত সেমাফোর থাকে যা তারা এজেন্টকে সংকেত দিতে ব্যবহার করে যে নির্দিষ্ট ধূমপায়ী ধূমপান করেছে; এজেন্টের একটি প্রক্রিয়া রয়েছে যা প্রতিটি ধূমপায়ীর সেমাফোরের উপর অপেক্ষা করে এজেন্টকে জানাতে যে এটি নতুন আইটেমগুলি টেবিলে রাখতে পারে। তামাকের সরবরাহ রয়েছে এমন ধূমপায়ীদের একটি সাধারণ সিউডোকোড বাস্তবায়ন নিম্নলিখিতগুলির মতো দেখতে পারেঃ ডেফ টোব্যাকো _ স্মোকার (): পুনরাবৃত্তিঃ paper.wait () matches.wait () ধোঁয়া () tobacco_smoker_done.signal () তবে, এটি অচলাবস্থার কারণ হতে পারে; যদি এজেন্ট টেবিলে কাগজ এবং তামাক রাখে, তামাকযুক্ত ধূমপায়ী কাগজটি সরিয়ে ফেলতে পারে এবং ম্যাচযুক্ত ধূমপায়ী তামাক নিতে পারে, যার ফলে উভয়ই তাদের সিগারেট তৈরি করতে অক্ষম। সমাধানটি হল অতিরিক্ত প্রক্রিয়া এবং সেমাফোরগুলি সংজ্ঞায়িত করা যা এজেন্টকে পরিবর্তন না করে অচলাবস্থা প্রতিরোধ করে। সমালোচক পাতিল সিগারেট ধূমপায়ীদের সমস্যার উপর নিম্নলিখিত সীমাবদ্ধতাগুলি স্থাপন করেছেনঃ এজেন্ট কোডটি পরিবর্তনযোগ্য নয়। সমাধানটি শর্তাধীন বিবৃতি ব্যবহার করার অনুমতি দেয় না। পাতিল পেট্রি নেটের পরিপ্রেক্ষিতে একটি প্রমাণ ব্যবহার করে দাবি করেন যে এডসগার ডিজকস্ট্রার সেমাফোর প্রিমিটিভ ব্যবহার করে সিগারেট ধূমপায়ীদের সমস্যার সমাধান অসম্ভব এবং আরও শক্তিশালী আদিম প্রয়োজন। যাইহোক, ডেভিড পার্নাস দেখিয়েছেন যে যদি সেমাফোরের অ্যারে ব্যবহার করা হয় তবে পাতিলের প্রমাণ অপর্যাপ্ত, এমন একটি সমাধান প্রদান করে যা সহায়ক প্রক্রিয়াগুলি ব্যবহার করে যা উপযুক্ত ধূমপায়ীকে এগিয়ে যাওয়ার সংকেত দেওয়ার জন্য গাণিতিক কাজ করে। অ্যালেন বি ডাউনির মতে, প্রথম বিধিনিষেধটি যুক্তিসঙ্গত, কারণ এজেন্ট যদি কোনও অপারেটিং সিস্টেমের প্রতিনিধিত্ব করে, তবে প্রতিবার কোনও নতুন অ্যাপ্লিকেশন আসার সময় এটি সংশোধন করা অযৌক্তিক বা অসম্ভব হবে। যাইহোক, পার্নাস যুক্তি দেন যে দ্বিতীয় সীমাবদ্ধতাটি অযৌক্তিকঃ পাতিলের দ্বারা বর্ণিত সীমাবদ্ধতাগুলি তাঁর আদিমগুলির সীমাবদ্ধতা, তবে সেগুলি ডিজকস্ট্রা দ্বারা বর্ণিত আদিমগুলির সীমাবদ্ধতা নয়। যাইহোক, এটি গুরুত্বপূর্ণ যে এই ধরনের তদন্ত [ডিজকস্ট্রা প্রিমিটিভের] কৃত্রিম বিধিনিষেধের অধীনে এই প্রিমিটিভগুলির শক্তি তদন্ত করে না। কৃত্রিম বলতে আমরা এমন বিধিনিষেধকে বোঝাই যা ব্যবহারিক বিবেচনার দ্বারা ন্যায্য হতে পারে না। এই লেখকের মতে, শর্তাধীন বা সেমাফোর অ্যারে নিষিদ্ধ করার বিধিনিষেধগুলি কৃত্রিম। আরও দেখুন ডাইনিং দার্শনিকদের সমস্যা পাঠক-লেখকদের সমস্যা ঘুমন্ত নাপিতদের সমস্যা রেফারেন্স প্যারাডক্স কনকারেন্সি (কম্পিউটার বিজ্ঞান) উদাহরণস্বরূপ সিউডোকোড সহ নিবন্ধ