এনপি-সম্পূর্ণতা শেখানো - টুরিং হ্রাস বনাম কার্পের হ্রাস


25

কম্পিউটার বিজ্ঞানের মেজরদের এনপি-সম্পূর্ণতা কীভাবে শেখানো যায় তার প্রশ্নে আমি আগ্রহী। বিশেষত, কার্পের হ্রাস বা টুরিং হ্রাস ব্যবহার করে আমাদের এটি শেখানো উচিত?

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

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

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

পরিশেষে, একজন ছাত্র হিসাবে, আমি যখন "টাউটোলজি" - এর মতো কোনও সমস্যার মুখোমুখি হয়েছি তখন আমার মনে হতবাক হয়ে যাওয়া মনে আছে - যেমন, বুলিয়ান সূত্র দেওয়া হয়, এটি কোনও টোটোলজি কিনা তা পরীক্ষা করে দেখুন। বিভ্রান্তিকর বিষয়টি হ'ল এই সমস্যাটি স্পষ্টতই শক্ত: এর জন্য যে কোনও বহু-কালীন অ্যালগরিদম বোঝায় যে P=NP; এবং এই সমস্যাটি সমাধান করা স্পষ্টতই টাউটোলজি সমস্যা সমাধানের মতো শক্ত। তবে স্বজ্ঞাতভাবে টাউটোলজি তৃপ্তিযোগ্যতার মতো শক্ত হলেও টাউটোলজি এনপি-হার্ড নয়। হ্যাঁ, আমি কেন আজ কেন বুঝতে পারি তা বুঝতে পেরেছি, কিন্তু সেই সময়টি দেখে আমি হতবাক হয়েছি। (একবারে যখন আমি শেষ অবধি বুঝতে পেরেছিলাম তা হ'ল: কেন আমরা এনপি-হার্ড এবং কো-এনপি-হার্ডের মধ্যে এই পার্থক্যটি আঁকব? এটি কৃত্রিম বলে মনে হয় এবং অনুশীলনের মাধ্যমে খুব ভাল অনুপ্রাণিত হয় না rather আমরা কেন এনপি-তে মনোনিবেশ করি না? কো-এনপি-এর চেয়ে এগুলিও সমান স্বাভাবিক বলে মনে হয় practical বাস্তবিক দৃষ্টিকোণ থেকে, সহ-এনপি-কঠোরতার মূলত এনপি-কঠোরতার মতো একই ব্যবহারিক পরিণতি রয়েছে বলে মনে হচ্ছে, তবে কেন আমরা সকলেই এই পার্থক্যে ঝুলতে পারি? হ্যাঁ, আমি জানি উত্তরগুলি, কিন্তু একজন ছাত্র হিসাবে আমার মনে আছে এটি কেবল বিষয়টিকে আরও তাত্পর্যপূর্ণ এবং খারাপ প্ররোচিত মনে করেছে))

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


সম্পর্কিত: এখানে এবং এখানে দেখুন , যা উল্লেখ করেছে যে আমরা সাহিত্যে কার্প হ্রাস ব্যবহার করার কারণ এটি আমাদের এনপি-কঠোরতা এবং সহ-এনপি-কঠোরতার মধ্যে পার্থক্য করতে সক্ষম করে। যাইহোক, এটি এমন কোনও উত্তর দেওয়ার মতো বলে মনে হচ্ছে না যা এই অ্যালগরিদম শ্রেণীর শেখার উদ্দেশ্যগুলির জন্য প্রতিটি সিএস মেজরকে নেওয়া উচিত কিনা এই শিক্ষাগত দৃষ্টিভঙ্গির উপর কেন্দ্রীভূত কিনা of আরও দেখুন এখানে cstheory.SE উপর , যা একটি অনুরূপ আলোচনা হয়েছে।


প্রেরণা পর্যবেক্ষণ: এন পি একটি সমস্যা টুরিং-হ্রাস পরোক্ষভাবে জানা যায়নি XNP

1
@ রিকিডিমার, বুঝতে পেরেছেন - তবে যখন আমরা কোনও সমস্যা প্রদর্শনের চেষ্টা করছি তখন কঠিন, আমাদের এনপি-তে আছে কিনা তা আমরা সত্যিই চিন্তা করি না, যাতে এটি আমাকে কার্যকরভাবে প্রেরণা দেয় না। এবং, কোনও সমস্যা দেখানো কঠিন হ'ল এনপি, এনপি-পূর্ণতা, এনপি-কঠোরতা ইত্যাদির মূল প্রয়োগX
DW

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

উত্তর:


10

আমি বলব খুব স্পষ্টভাবে কার্প (বহু-এক) হ্রাস ব্যবহার করে শেখান। পলি-টাইম টিউরিং হ্রাস (কুক) ব্যবহারের সুবিধাগুলি যাই হোক না কেন, কার্প হ্রাস হ'ল মানক মডেল।

সকলেই কার্প ব্যবহার করে এবং কুককে শেখানোর মূল পরিণতিটি হ'ল আপনি যখন পুরোপুরি শিক্ষার্থীদের পাঠ্যপুস্তকটি পড়েন বা পাঠ্যপুস্তকটি পড়েন বা আপনার দ্বারা শেখানো হয়নি এমন ব্যক্তির সাথে বিষয়টি নিয়ে আলোচনা করার চেষ্টা করবেন এমন এক সম্পূর্ণ ক্লাসের শিক্ষার্থী শেষ করবেন।

আমি সম্মত হই যে কুকের হ্রাস অনেক উপায়ে বোধগম্য এবং এনপি-কঠোরতা এবং ব্যবহারিক দিক থেকে কোএনপি-কঠোরতার মধ্যে কোনও পার্থক্য নেই, এই অর্থে যে তারা উভয়েরই অর্থ "এই সমস্যাটি বেশ কঠিন এবং আপনি একটি পেতে যাচ্ছেন না সাধারণ, দক্ষ, নির্ভুল অ্যালগরিদম যা বড় উদাহরণগুলির সাথে মোকাবিলা করতে পারে। " অন্যদিকে, এনপি এবং সিএনপি-র মধ্যে পার্থক্য পুরোপুরি কার্প হ্রাসের উপর ভিত্তি করে একটি তত্ত্বের একটি কারুকার্য নয়: আপনি প্রায়শই গ্রাফগুলি নিয়ে কথা বলেন না যা অ -3-বর্ণচিহ্নতাযুক্ত বা  উল্লম্ব প্রতিটি সংখ্যায় রয়েছে কমপক্ষে একটি প্রান্ত একরকম, সমস্যার "প্রাকৃতিক" সংস্করণ প্রায়শই কোএনপির পরিবর্তে এনপিতে থাকে বলে মনে হয়।k


7

দুটোই শেখাই ভাল ! একটি কম্পিউটার বিজ্ঞান মেজর তাদের উভয় সম্পর্কে জানা উচিত।

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

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

NPNPPNPNP

NPcoNPNPNPNPPNP

xAf(x)B


2
NPNPNPNP

@ ডিডাব্লু আপনি নিজের মন্তব্যে (দ্বিতীয় এবং তৃতীয়) "কার্প" এর জায়গায় "কুক" বলতে চাইছেন? আপনি এখনও প্রমাণ করতে পারেন যে সমস্যাগুলি কুক ব্যবহার করা কঠিন, এটি সমস্যা নয়। সমস্যাটি হ'ল এনপি তাদের অধীনে বন্ধ হয় না, অর্থাৎ কুক হ্রাস সমস্যাগুলির কার্যকরভাবে যাচাইযোগ্যতা সংরক্ষণ করে না।
কাভেহ

2
উফফ, হ্যাঁ, আমি কুককে বুঝিয়েছি, কার্প নয়। (আর্গ!) আমি বুঝতে পারি যে কুক হ্রাসের আওতায় এনপি বন্ধ নেই, তবে আমরা কীভাবে অ্যালগরিদমকে আন্ডারগ্রাজুয়েটদের শিক্ষা দিই তার দৃষ্টিকোণ থেকে কেন এটি একটি সমস্যা কেন তা বিশদভাবে বলতে পারেন? এটি কোন শিক্ষাগত বা ধারণাগত সমস্যা তৈরি করে? যদি আমরা এর মতো অ্যালগরিদম শিখিয়েছি এবং স্রেফ স্বীকৃত / স্বীকৃত হয়েছি যে কুক হ্রাসের আওতায় এনপি বন্ধ নেই? উদাহরণস্বরূপ, এটি শিক্ষার্থীদের মধ্যে কিছু সমস্যাযুক্ত ধারণাগত ভুল বোঝাবুঝির কারণ ঘটবে?
DW

-3

হ্রাসের স্বজ্ঞাত ধারণাটি হ'ল "যদি আমার এক্স সমস্যা সমাধানের জন্য আমার কাছে অ্যালগরিদম থাকে তবে আমি এটি Y এর সমাধান করতেও ব্যবহার করতে পারি"।

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

সুতরাং, তত্ত্বটি আমাদেরকে মৌলিকভাবে একটি প্রক্রিয়া হিসাবে গণনা দেখার উপায়টি বলছে যা কিছু পরিস্থিতিতে উত্তর ফিরিয়ে আনতে পারে । অন্য পরিস্থিতিতে এটি নাও পারে। এনপি সম্পূর্ণতা এবং সিদ্ধান্তগ্রহণের জন্য, মৌলিক এবং সর্বাধিক সাধারণ প্রশ্ন হ'ল "এমন কি একটি অ্যালগরিদম আছে যা Yপি সময়ে ফিরে আসে "। তবে এটি Nপি সময়ে ফিরে আসা অ্যালগরিদম সম্পর্কে কিছুই বলে না । একটি অ্যালগরিদম Yপি সময়ের জন্য একটি দৃষ্টান্তের জন্য ফিরে আসতে পারে তবে অন্য উদাহরণগুলিতে কোনও উত্তর ফেরত দিতে পারে না। তত্ত্বটি আমাদের বলছে যে এখানে সত্যিই একটি স্বতন্ত্র পার্থক্য রয়েছে যার প্রতি আমাদের গভীর মনোযোগ দিতে হবে। যদি এটির মতামত নেই, এর অর্থ হল আমাদের মৌলিক স্বীকৃতিগুলিকে পুনরায় সমন্বিত করা দরকার (তাত্ত্বিক শিক্ষায় যেমনটি প্রায়শই ঘটে থাকে)।


অন্য কথায়, স্পষ্টতই এমন অ্যালগরিদম বিদ্যমান থাকতে পারে যা Yপি সময়ে ফিরে আসে তবে পি ফিরে আসার চেয়ে "বেশি" সময় নেয় Nএবং তত্ত্বটি উত্তর দেওয়ার সময়টি প্রায় / ওরিয়েন্টেড / ফোকাসের উপর ভিত্তি করে তৈরি হয় Y
vzn

1
যে কোনও শিক্ষার্থী পাঁচটির বেশি প্রোগ্রাম লিখেছেন তারা সরাসরি ব্যক্তিগত অভিজ্ঞতা থেকে "একটি অ্যালগরিদম যা থামে না" এর ধারণার সাথে পরিচিত।
ডেভিড রিচার্বি

প্রতিদিনের অভিজ্ঞতা / উপমাগুলির ভিত্তিতে অনুরোধ অনুসারে কেবল আরও স্বজ্ঞাত উপায়ে সিএনএনকে সংজ্ঞায়িত করার চেষ্টা করার সময় ছুরিকাঘাত করা। এটি সবসময় আমার কাছেও অনর্থক বলে মনে হয়েছে। কারও কি আরও ভাল উপায় আছে?
vzn
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.