জটিলতা তত্ত্বে ভাষা কেন ব্যবহার করুন


10

আমি এখনই গণনার তত্ত্বের সাথে প্রবেশ করতে শুরু করছি, যা কোনটি কী গণনা করা যায়, কত তাড়াতাড়ি, কত স্মৃতি ব্যবহার করে এবং কোন গণনীয় মডেল নিয়ে অধ্যয়ন করে।

আমার খুব সুন্দর বেসিক প্রশ্ন আছে তবে আমি আশা করছি যে আপনারা কেউ কেউ আমাকে এর পিছনের ধারণাটি বুঝতে সহায়তা করতে পারেন:

সমস্ত ভাষা কেন ভাষাগুলির ধারণা এবং সংজ্ঞা (যেমন নিয়মিত ভাষা এবং প্রসঙ্গ নিখরচায় ভাষা) এর চারপাশে কেন্দ্রীভূত? এবং এগুলি কীভাবে কোনও অ্যালগোরিদমের জটিলতা এবং সেগুলি সমাধানের জন্য সম্ভাব্য গণনা মডেলগুলি সম্পর্কিত এবং বর্ণনা করে?

আমি এই ধরণের সম্পর্কিত প্রশ্নগুলি পড়েছি:

তবে এখনও আমার সন্দেহের কোনও উত্তর নেই, কারণ তারা কেন গুরুত্বপূর্ণ (যা আমি বুঝতে পারি) এর একটি বাস্তব যুক্তি সরবরাহ করে তবে কেন জটিলতা তত্ত্ব তাদের উপর ভিত্তি করে তা বুঝতে আমাকে সহায়তা করেন না।



@ রাফেল - আমাকে এই প্রশ্নটির প্রতি ইঙ্গিত করার জন্য ধন্যবাদ, এটি একটি দুর্দান্ত রেফারেন্স! আমি এখনই এটি পড়ছি, তবে এই মুহুর্তে আমি বিশ্বাস করি এটি সিএস.স্ট্যাকেক্সেঞ্জার / প্রশ্নগুলি / 13669/ … প্রশ্নের সংযোজন হতে পারে । এটি ইতিমধ্যে জবাব দেওয়া হয়েছে বলে আমার কাছে মনে হচ্ছে না, দয়া করে আপনি যদি অন্যথায় সরু হন তবে আমাকে জানান
ম্যাটটিও

3
একটি ভাষা সীমাবদ্ধ দৈর্ঘ্যের স্ট্রিংগুলির একটি সেট, যা 1 বা 0 এ সীমাবদ্ধ স্ট্রিংয়ের মানচিত্রের সমান So সর্বাধিক জটিল (ননড্রাইভিয়াল) ধরণের গণ্যমূলক কাজ এবং প্রায়শই জটিল জটিল গণ্যমূলক কাজগুলি সিদ্ধান্তগত সমস্যার ক্ষেত্রে হ্রাস করা যেতে পারে।
সাশো নিকোলভ

উত্তর:


10

এটি কারণ "সমস্যা" ধারণাটি আনুষ্ঠানিক করার ভাষা আমাদের কাছে সেরা (কেবল?) উপায়।

একটি অ্যালগরিদম (ট্যুরিং মেশিন) এর কর্মক্ষমতা থাকে, যা আমরা বিগ-ও জটিলতার মাধ্যমে প্রকাশ করি। একটি সমস্যা (ভাষা) একটি জটিল শ্রেণীর অন্তর্গত। এগুলি সাধারণত অস্তিত্ব দ্বারা সংজ্ঞায়িত করা হয়: যদি এমন কোনও মেশিন উপস্থিত থাকে যা কোনও ভাষা গ্রহণ করে যা প্রদত্ত পারফরম্যান্সে (স্থান বা সময়) চালায় তবে ভাষাটি সংশ্লিষ্ট জটিলতার শ্রেণীর অন্তর্গত।L

এর কয়েকটি কারণ রয়েছে। প্রথমটি হচ্ছে ভাষাগুলি প্ল্যাটফর্মের স্বাধীন। কোনও পূর্ণসংখ্যার 32 বা 64 বিট হয় কিনা বা ভাসমান পয়েন্ট অপারেশনগুলি অন্যান্য অপারেশনের সমান্তরালে চলছে কিনা তা নিয়ে আপনি উদ্বেগ করছেন না। এই জিনিসগুলি মাইক্রো-স্তরে কর্মক্ষমতা গতি দেয়, তবে জটিলতা বিশ্লেষণ ম্যাক্রো স্তরে আগ্রহী। আপনি যখন 100 থেকে থেকে থেকে ইনপুটগুলিতে স্কেল করেন তখন কীভাবে অ্যালগরিদমের পারফরম্যান্স পরিবর্তন হয়? এটি কি 1 মিলিয়ন টেপ সেল ব্যবহার করে 1 বিলিয়ন বা 1 মিলিয়ন থেকে আরও কোষে মহাবিশ্বে পরমাণু রয়েছে?10 9 10 121061091012

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

জটিলতা তত্ত্ব সিদ্ধান্ত সমস্যার দিকে মনোনিবেশ করে থাকে কারণ তারা শেষ পর্যন্ত কঠিন হয়ে পড়ে। যখন ভ্রমণের বিক্রয়কর্মীর সিদ্ধান্ত সংস্করণটি এনপি-সম্পূর্ণ হয় (অর্থাত্ এখানে দৈর্ঘ্যের চেয়ে কম ট্যুর আছে ) তখন অবশ্যই সংক্ষিপ্ততম পথটি খুঁজে পাওয়া আরও কঠিন। ফাংশন / অপ্টিমাইজেশান সমস্যাগুলিতে তেমন ফোকাস নেই কারণ সহজ সিদ্ধান্ত সমস্যা সম্পর্কে এখনও অনেকগুলি মুক্ত প্রশ্ন এবং অমীমাংসিত সমস্যা রয়েছে।k

আমার ধারণা এখানে আপনার কাছে আমার চ্যালেঞ্জ: ভাষা নয় এমন সমস্যাগুলি গাণিতিকভাবে বর্ণনা করার উপায় খুঁজে বের করুন। ভাষা বিশেষ কিনা তা আমি জানি না, তবে আমি মনে করি যে এটি আমাদের কাছে পাওয়া সবচেয়ে সহজ সরঞ্জাম, যার সাথে মোকাবিলা করা সবচেয়ে সহজ।


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

2
সত্য, তবে ভাষা বা মেশিনের কিছু ধারণা ছাড়াই আপনি ক্রোমাটিক সংখ্যা গণনা করার জটিলতার সাথে কীভাবে মোকাবেলা করবেন?
jmite

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

3
@ জমিট আপনার একটি মেশিনের দরকার, হ্যাঁ, তবে ভাষা প্রয়োজন নয়।
রাফেল

2
@ রাফেল অনেক জটিলতা ক্লাস যা সাধারণত মেশিনের চলমান সময়ের নিরিখে সংজ্ঞায়িত হয় বর্ণনামূলক জটিলতার ক্ষেত্রে চিহ্নিত করা যায়।
সাশো নিকোলভ

7

আপনার প্রশ্নের দুটি প্রাথমিক উত্তর আছে:

  1. ভাষার চেয়ে জটিলতা তত্ত্বের আরও অনেক কিছুই রয়েছে, উদাহরণস্বরূপ ফাংশন ক্লাস, পাটিগণিত জটিলতা এবং সান্নিধ্যে অ্যালগরিদম এবং অকার্যকরতার উপশম।

  2. Reasonsতিহাসিক কারণ: গণ্যতা তত্ত্বের অন্যতম মৌলিক কাগজ হিলবার্টের এন্টশেডুংস্প্রোব্লিম (থামানো সমস্যার এক রূপ) নিয়ে আলোচনা করছিল।

দুর্ভাগ্যক্রমে আমি পরবর্তীকালের বিষয়ে খুব বেশি কিছু জানি না, তবে আমাকে আগেরটির প্রসারিত করুন।

ভাষার বাইরেও জটিলতা

প্রতিটি গণনামূলক জটিলতা ক্লাস একটি সম্পর্কিত ফাংশন বর্গ সঙ্গে আসে । উদাহরণস্বরূপ, বহুবর্ষীয় সময়ে নির্ধারনীয় সমস্ত সমস্যার ক্লাস পি এফপির সাথে সম্পর্কিত, বহু কার্যক্রমে গণ্যযোগ্য সমস্ত ফাংশনের শ্রেণি। FP গুরুত্বপূর্ণ যেহেতু এটি দ্বারা NP-কঠোরতা নির্ধারণ করতে ব্যবহৃত হয়: একটি ভাষা যদি প্রত্যেক ভাষার জন্য দ্বারা NP-কঠিন এন পি রয়েছে একটি ফাংশন FP যেমন যে iff । ক্রিয়াকলাপগুলির আরও একটি জটিল শ্রেণি, # পি , টোডোর উপপাদ্য মাধ্যমে তথাকথিত বহুপদী শ্রেণিবিন্যাসের সাথে সম্পর্কিত ।M f M x M f M ( x ) এলLMfMxMfM(x)L

পাটিগণিত সার্কিট জটিলতা (বা বীজগণিত জটিলতা তত্ত্ব ) বিভিন্ন বহুভুজের গণনার জটিলতা নিয়ে কাজ করে। এখানে গুরুত্বপূর্ণ জটিলতা ক্লাসগুলি ভিপি এবং ভিএনপি এবং জ্যামিতিক জটিলতা তত্ত্ব একটি গুরুত্বপূর্ণ প্রকল্প যা বীজগণিত জ্যামিতি এবং উপস্থাপনা তত্ত্ব ব্যবহার করে ভিপি এবং ভিএনপি (এবং পরে পি এবং এনপি) আলাদা করার চেষ্টা করে।

বীজগণিতিক জটিলতার আরেকটি গুরুত্বপূর্ণ উদাহরণ হ'ল দ্রুত ম্যাট্রিক্সের গুণ। এখানে মূল প্রশ্নটি হল আমরা কত দ্রুত দুটি ম্যাট্রিককে গুণতে পারি? অনুরূপ প্রশ্ন জিজ্ঞাসা করে যে আমরা কত দ্রুত পূর্ণসংখ্যাকে গুণিত করতে পারি, আদিমতার জন্য আমরা কত দ্রুত পূর্ণসংখ্যার পরীক্ষা করতে পারি (এটি একটি সিদ্ধান্তগত সমস্যা!) এবং আমরা কত দ্রুত পূর্ণসংখ্যার গুণক করতে পারি।

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

আনুষঙ্গিকতা সেই ক্ষেত্র যা অধ্যয়নকাল আমরা বহুবর্ষীয় সময়ে একটি অপ্টিমাইজেশান সমস্যার জন্য কতটা ভাল অনুমান পেতে পারি তা অধ্যয়ন করে। উদাহরণস্বরূপ সেট কভারের ধ্রুপদী সমস্যাটি বিবেচনা করুন: সেটগুলির সংকলন দেওয়া হলে, তাদের মধ্যে আমরা কতটি পুরো মহাবিশ্বকে coverেকে রাখতে পারি? অনুকূল নম্বর সন্ধান করা এনপি-হার্ড, তবে সম্ভবত এটি একটি আনুমানিক গণনা করা সম্ভব? আনুষঙ্গিকতা অ্যালগরিদমগুলি হল আনুমানিক গণনা করার জন্য অ্যালগরিদম অধ্যয়নরত সাবারিয়া , যখন অযোগ্যতা অ্যালগরিদমের সীমাবদ্ধতা অধ্যয়ন করে। সেট কভারের বিশেষ ক্ষেত্রে, আমাদের কাছে একটি আনুমানিক (লোভী অ্যালগরিদম) দেওয়ার একটি অ্যালগরিদম রয়েছে এবং আরও ভাল কিছু করা এনপি-হার্ড।lnn


3

আসুন এই প্রশ্নটি বিভাগের তত্ত্বের দৃষ্টিকোণ থেকে দেখি। সিদ্ধান্তের সমস্যাগুলি (বা ভাষাগুলি) এর পরে কোনও বিভাগের অবজেক্টগুলির সাথে মিল রাখে এবং দুটি সমস্যার মধ্যে অনুমোদিত হ্রাস কোনও বিভাগের আকারগুলি (তীর) এর সাথে মিলে যায়।

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

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


এটি প্রশ্নের উত্তর বলে মনে হচ্ছে না। সংশ্লিষ্ট বিভাগে অবজেক্ট হিসাবে যে কোনওটি ব্যবহার করুন এমন সমস্যার মধ্যেও কেউ মরফিজম নিয়ে কথা বলতে পারেন।
ডেভিড রিচার্বি

@ ডেভিডরিচার্বি আমি যে বিষয়টিটি সামনে আনতে চেয়েছিলাম তা হ'ল উপযুক্ত বস্তুগুলিকে (= ভাষাগুলি) পেরেক দেওয়ার চেয়ে উপযুক্ত আকারটিকে নখ করা আরও চ্যালেঞ্জের। (বিশেষত যেহেতু সাধারণত আকারে একাধিকরূপে যথাযথ ধারণা পাওয়া যায়)) মরফিজমগুলি ছাড়া আপনি আইসোমর্ফিক সমস্যাগুলি (বা অ্যালগোরিদম) সম্পর্কে কথা বলতে পারবেন না। তবে ভাষাগুলি আপনাকে সমস্যার সমতার বিষয়ে এখনও কথা বলার উপায় দেয়। সম্ভবত আমি এটি সঠিকভাবে ব্যাখ্যা করিনি, তবে (আমার পক্ষে) "জটিলতার তত্ত্বে ভাষা ব্যবহার করার" এটি একটি ভাল কারণ।
টমাস ক্লিম্পেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.