সংক্ষেপে : একটি অ্যালগরিদম হল একটি গঠনমূলক প্রমাণের গঠনমূলক অংশ যা প্রদত্ত সমস্যার সমাধান রয়েছে। এই সংজ্ঞার জন্য অনুপ্রেরণা হল প্রোগ্রামগুলি এবং প্রমাণগুলির মধ্যে কারি-হাওয়ার্ড আইসোমরফিজম, এটি বিবেচনা করে যে কোনও প্রোগ্রামের কোনও সমস্যা সমাধান হলেই তার আগ্রহ রয়েছে, তবে সম্ভবত তাই ably এই সংজ্ঞাটি আরও বিমূর্তনের অনুমতি দেয় এবং উদ্বিগ্ন বৈশিষ্ট্য সম্পর্কিত উদাহরণস্বরূপ, যে ধরণের ডোমেন সম্পর্কিত হতে পারে সে সম্পর্কে কিছু দরজা উন্মুক্ত রাখে।
সতর্কতা । আমি প্রশ্নের উত্তর দেওয়ার জন্য একটি যথাযথ আনুষ্ঠানিক পদ্ধতির সন্ধান করার চেষ্টা করছি। আমি মনে করি এটির প্রয়োজনীয়তা আছে তবে এটি এখনও মনে হয় যে এখনও পর্যন্ত প্রতিক্রিয়া জানিয়েছেন এমন ব্যবহারকারীদের মধ্যে কেউই (আমার অন্তর্ভুক্ত ছিল না এবং কিছু অন্যান্য পোস্টে এটি সম্পর্কে কমবেশি স্পষ্ট ছিল) সমস্যাগুলি সঠিকভাবে বিকাশের সঠিক পটভূমি নেই, যা সম্পর্কিত which গঠনমূলক গণিত, প্রুফ তত্ত্ব, টাইপ তত্ত্ব এবং প্রমাণ এবং প্রোগ্রামগুলির মধ্যে কারি-হাওয়ার্ড isomorphism এর মতো ফলাফল । আমি এখানে যথাসাধ্য চেষ্টা করছি, আমার যা কিছু জ্ঞানের স্নিপেট রয়েছে (বিশ্বাস করি) এবং আমি এই উত্তরের সীমাবদ্ধতা সম্পর্কে খুব সচেতন। আমি কেবল উত্তরটি দেখতে কেমন হবে তার কিছু ইঙ্গিত দেওয়ার আশা করি। আপনি যদি এমন কোনও পয়েন্ট দেখতে পান যা পরিষ্কারভাবে ভুলভাবে আনুষ্ঠানিকভাবে (সম্ভাব্য) ভুল, দয়া করে আমাকে এখন একটি মন্তব্যে - বা ইমেলের মাধ্যমে দিন।
কিছু সমস্যা চিহ্নিত করা
অ্যালগরিদম বিবেচনা করার একটি স্ট্যান্ডার্ড উপায় হ'ল মেমরির কোনও সীমাবদ্ধতা নেই সেগুলি সহ একটি অ্যালগরিদম কিছু কম্পিউটিং ডিভাইসের জন্য একটি স্বেচ্ছাসেবী চূড়ান্তভাবে নির্দিষ্ট প্রোগ্রাম । ল্যাঙ্গেজ পাশাপাশি কম্পিউটার মেশিনের ভাষা হতে পারে। প্রকৃতপক্ষে এটি একটি ট্যুরিং সম্পূর্ণ কম্পিউটিং ডিভাইসের জন্য সমস্ত প্রোগ্রাম বিবেচনা করা যথেষ্ট (যা বোঝায় কোনও স্মৃতি সীমাবদ্ধতা নেই)। এটি আপনাকে সমস্ত অ্যালগরিদম উপস্থাপনা দিতে পারে না, এই অর্থে যে অ্যালগরিদমগুলি এমন একটি ফর্মের মধ্যে প্রকাশ করতে হবে যা তার ব্যাখ্যার প্রসঙ্গে এমনকি তাত্ত্বিক হিসাবেও নির্ভর করে কারণ সমস্ত কিছু কিছু এনকোডিং পর্যন্ত সংজ্ঞায়িত। তবে, যেহেতু এটি সমস্ত কিছু গণনা করতে হবে, তাই এটি এনকোডিং পর্যন্ত কোনওভাবে সমস্ত অ্যালগোরিটমকে অন্তর্ভুক্ত করবে।
π
πসম্ভবত প্রায় সব গাণিতিক অর্থে। তবে এর সংজ্ঞাগুলিতে আরও নির্ভুলতার প্রয়োজন হবে।
সুতরাং আসল প্রশ্নটি অর্থপূর্ণ অ্যালগরিদমগুলি কী কী তা জানতে হবে। উত্তরটি হ'ল অর্থপূর্ণ অ্যালগরিদমগুলি হ'ল সমস্যাগুলি সমাধান করে, ধাপে ধাপে "সমাধান", "উত্তর", সেই সমস্যার সমাধান করে। একটি অ্যালগরিদম আকর্ষণীয় যদি এটি কোনও সমস্যার সাথে জড়িত যা এটি সমাধান করে।
সুতরাং একটি আনুষ্ঠানিক সমস্যা দেওয়া হল কীভাবে আমরা একটি অ্যালগরিদম পাই যা সমস্যার সমাধান করে। সুস্পষ্ট বা স্পষ্টভাবেই হোক না কেন, অ্যালগোরিদমগুলি এই ধারণার সাথে সম্পর্কিত যে সমস্যার কোনও সমাধান রয়েছে, যা সঠিক প্রমাণিত হতে পারে। আমাদের প্রমাণ কৌশল সঠিক কিনা তা অন্য বিষয়, তবে আমরা কমপক্ষে নিজেকে বোঝানোর চেষ্টা করি। আপনি যদি নিজেকে গঠনমূলক গণিতে সীমাবদ্ধ রাখেন, যা আসলে আমাদের করতে হয় (এবং বেশিরভাগ গণিতের জন্য এটি একটি গ্রহণযোগ্য অজস্র বাধা) তবে সমাধানের অস্তিত্ব প্রমাণ করার উপায় হ'ল প্রমাণের পদক্ষেপগুলি অতিক্রম করে যা আসলে কোনও নির্মাণকে প্রদর্শন করে এটি সমাধানটিকে প্রতিনিধিত্ব করে, সম্ভবত অন্যান্য পদক্ষেপ যা এটি সঠিকতা প্রতিষ্ঠা করে।
সমস্ত প্রোগ্রামাররা এরকম কিছু মনে করে: যদি আমি এই জাতীয় উপায়ে এবং এই জাতীয় উপায়ে ঝাঁকুনি দিয়ে থাকি তবে আমি এই উইজেটটি পাই যাতে তিলের উপপাদ্যের কারণে ঠিক সঠিক বৈশিষ্ট্য রয়েছে এবং এই সংরক্ষণ-সংরক্ষণ রূপান্তরটি আমি চালিত উত্তর পেয়েছি । তবে প্রমাণটি সাধারণত অনানুষ্ঠানিক, এবং আমরা সমস্ত বিবরণ নিয়ে কাজ করি না, যা ব্যাখ্যা করে যে কোনও উপগ্রহ কেন মঙ্গলগ্রহের (অন্যান্য জিনিসের মধ্যে) মঙ্গল গ্রহের প্রদক্ষিণ করার চেষ্টা করেছিল। আমরা অনেক যুক্তিই করি, তবে আমরা আসলে কেবল গঠনমূলক অংশ রাখি যা সমাধান তৈরি করে, এবং আমরা একটি কম্পিউটার ভাষায় এটিকে অ্যালগরিদম হিসাবে বর্ণনা করি যা সমস্যার সমাধান করে।
আকর্ষণীয় অ্যালগরিদম (বা প্রোগ্রাম)
এই সমস্তগুলি নিম্নোক্ত ধারণাগুলি প্রবর্তন করার জন্য ছিল, যা অনেকগুলি বর্তমান গবেষণার অবজেক্ট (যার মধ্যে আমি বিশেষজ্ঞ নই)। এখানে ব্যবহৃত " আকর্ষণীয় অ্যালগরিদম " ধারণাটি আমার, আরও সঠিক সংজ্ঞাগুলির জন্য একটি অনানুষ্ঠানিক স্থানধারক হিসাবে প্রবর্তিত।
একটি আকর্ষণীয় অ্যালগরিদম হল একটি গঠনমূলক প্রমাণের গঠনমূলক অংশ যা প্রদত্ত সমস্যার সমাধান রয়েছে । এর অর্থ হল যে প্রমাণটি অবশ্যই সমাধানটির উপস্থিতি প্রমাণ করার পরিবর্তে সমাধানটি প্রদর্শন করতে হবে, উদাহরণস্বরূপ লঙ্ঘন করে। আরো বিস্তারিত জানার জন্য দেখুন Intuitionistic লজিক এবং মূলক গণিতে।
এটি অবশ্যই একটি খুব সীমাবদ্ধ সংজ্ঞা, এটি কেবল যা আমি আকর্ষণীয় অ্যালগরিদম বলে বিবেচনা করি। সুতরাং এটি প্রায় সবগুলিকেই উপেক্ষা করে। তবে তাই অ্যালগরিদমের উপর আমাদের সমস্ত পাঠ্যপুস্তকগুলি করুন। তারা কেবল আকর্ষণীয় কিছু শেখানোর চেষ্টা করে।
সমস্যার সমস্ত পরামিতি (ইনপুট ডেটা) দেওয়া, এটি আপনাকে ধাপে ধাপে একটি নির্দিষ্ট ফলাফল কীভাবে পেতে হবে তা বলে। একটি সাধারণ উদাহরণ হল সমীকরণের সমাধান ( অ্যালগোরিদম নামটি আসলে পার্সিয়ান গণিতবিদ মুয়াম্মাদ ইবনে মসি আল-খোয়ারিজমি নামে পরিচিত , যিনি কিছু সমীকরণের রেজোলিউশন অধ্যয়ন করেছিলেন)। প্রমাণের অংশগুলি এটি প্রতিষ্ঠিত করতে ব্যবহৃত হয় যে অ্যালগরিদমে গণনা করা কিছু মানগুলির কিছু বৈশিষ্ট্য রয়েছে তবে এই অংশগুলিকে নিজেই অ্যালগরিদমে রাখার দরকার নেই।
অবশ্যই, এটি অবশ্যই একটি আনুষ্ঠানিক লজিকাল কাঠামোর মধ্যে হওয়া উচিত যা এটি নির্ধারণ করে যে কীসের সাথে ডেটা গণনা করা হয়, প্রাথমিক গণনাগত পদক্ষেপগুলি কী অনুমোদিত, এবং কী কী অট্টালিকা ব্যবহৃত হয় estab
আপনার ফ্যাক্টরিয়াল উদাহরণটিতে ফিরে যেতে, এটিকে একটি অ্যালগরিদম হিসাবে ধরা যেতে পারে, তুচ্ছ একটি হলেও al সাধারণ ফ্যাক্টরিয়াল ফাংশন একটি প্রমাণের সাথে মিলে যায় যা কিছু গাণিতিক কাঠামো দেওয়া হয় এবং একটি পূর্ণসংখ্যা এন দেওয়া হয়, এমন একটি সংখ্যা রয়েছে যা প্রথম এন পূর্ণসংখ্যার গুণফল। এটি বেশ সরল, যেমনটি ঘটনামূলক গণনা। এটি অন্যান্য ক্রিয়াকলাপগুলির জন্য আরও জটিল হতে পারে।
এখন, যদি আপনি স্থিতিপত্রকে টেবুলেট করার সিদ্ধান্ত নেন, ধরে নিচ্ছেন যে আপনি যা করতে পারেন যা সমস্ত পূর্ণসংখ্যার পক্ষে সত্য নয় (তবে মানগুলির কয়েকটি সীমাবদ্ধ ডোমেনের ক্ষেত্রে সত্য হতে পারে), আপনি যা করছেন তা আপনার অক্ষরেখার সাথে একটি সংজ্ঞায়িত করে ফ্যাক্টরিয়ালটির অস্তিত্বকে অন্তর্ভুক্ত করছে নতুন পূর্ণসংখ্যা প্রতিটি পূর্ণসংখ্যার জন্য এর মান, যাতে আপনাকে আর কোনও কিছু প্রমাণ করার প্রয়োজন হয় না (সুতরাং গণনা করার জন্য)।
তবে অডিওমিসের একটি সিস্টেম সীমাবদ্ধ (বা কমপক্ষে চূড়ান্তভাবে সংজ্ঞায়িত) বলে মনে করা হয়। এবং কৌণিকের জন্য মূল্যগুলির অসীমতা রয়েছে, প্রতি পূর্ণসংখ্যার জন্য একটি। সুতরাং আপনি যদি একটি অসীম ফাংশনটি অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে নির্ধারিত করেন তবে আপনি অক্ষরবৃত্তের সীমাবদ্ধ ব্যবস্থার জন্য সমস্যায় পড়েছেন। এটি গণনা মূলকভাবে অনুবাদ করে যে আপনার টেবিলের চেহারাটি সমস্ত পূর্ণসংখ্যার জন্য প্রয়োগ করা যায় না। এটি অ্যালগরিদমের জন্য স্বাভাবিক সূক্ষ্মতার প্রয়োজনীয়তা হারাতে পারে (তবে এটি কি প্রায়শই উপস্থাপিত হিসাবে কঠোর হওয়া উচিত?)।
আপনি সমস্ত ক্ষেত্রে পরিচালনা করতে চূড়ান্তভাবে সংজ্ঞায়িত অ্যাক্সিয়াম জেনারেটর রাখার সিদ্ধান্ত নিতে পারেন। প্রয়োজন অনুসারে অ্যারে আরম্ভ করার জন্য এটি আপনার অ্যালগোরিদমে স্ট্যান্ডার্ড ফ্যাক্টরিয়াল প্রোগ্রামটি অন্তর্ভুক্ত করার জন্য, কমবেশি পরিমাণ হবে। একে প্রোগ্রামাররা মেমোয়েজেশন বলে । এটি প্রকৃতপক্ষে আপনি পূর্বনির্মাণ টেবিলের সমতুল্য হন। এটি বোঝা যেতে পারে যে একটি পূর্বনির্ধারিত টেবিল রয়েছে, ব্যতীত যখনই প্রয়োজন হয় টেবিলটি অলস মূল্যায়ন মোডে তৈরি করা হয় । এই আলোচনার জন্য সম্ভবত আরও কিছুটা আনুষ্ঠানিক যত্ন প্রয়োজন।
আপনি আপনার আদিম ক্রিয়াকলাপগুলি আপনার ইচ্ছামত সংজ্ঞায়িত করতে পারেন (আপনার আনুষ্ঠানিক সিস্টেমের সাথে সামঞ্জস্যের মধ্যে) এবং একটি অ্যালগরিদমে ব্যবহার করার সময় আপনি যে কোনও ব্যয় পছন্দ করেন, তাই তাদের জটিলতা বা পারফরম্যান্স বিশ্লেষণ করতে পারেন। তবে, যদি কংক্রিট সিস্টেমগুলি প্রকৃতপক্ষে আপনার অ্যালগরিদম (কম্পিউটার বা উদাহরণস্বরূপ একটি মস্তিষ্ক) বাস্তবায়িত করে তবে এই ব্যয়গুলির নির্দিষ্টকরণগুলিকে সম্মান করতে না পারলে আপনার বিশ্লেষণ বুদ্ধিগতভাবে আকর্ষণীয় হতে পারে, তবে আসল বিশ্বে প্রকৃত ব্যবহারের জন্য মূল্যহীন।
21000
কি প্রোগ্রাম আকর্ষণীয়
প্রোগ্রাম এবং প্রমাণের মধ্যে কারি-হাওয়ার্ড isomorphism এর মতো ফলাফলের সাথে এই আলোচনাটি আরও সঠিকভাবে যুক্ত হওয়া উচিত
। যদি কোনও প্রোগ্রাম আসলে কোনও কিছুর প্রমাণ হয় তবে যে কোনও প্রোগ্রামকে উপরের সংজ্ঞাটির অর্থে একটি আকর্ষণীয় প্রোগ্রাম হিসাবে বিবেচনা করা যেতে পারে।
যাইহোক, আমার (সীমাবদ্ধ) বোঝার জন্য, এই আইসোমর্ফিজম এমন কিছু প্রোগ্রামগুলির মধ্যেই সীমাবদ্ধ যা কিছু উপযুক্ত টাইপিং সিস্টেমে ভাল টাইপ করা যায়, যেখানে প্রকারগুলি অ্যাক্সিয়োমেটিক তত্ত্বের প্রস্তাবগুলির সাথে মিলে যায়। সুতরাং সমস্ত প্রোগ্রাম আকর্ষণীয় প্রোগ্রাম হিসাবে যোগ্যতা অর্জন করতে পারে না। আমার অনুমান যে এই অর্থে যে কোনও অ্যালগোরিদম কোনও সমস্যা সমাধান করার কথা।
এটি সম্ভবত বেশিরভাগ "এলোমেলোভাবে উত্পন্ন" প্রোগ্রামগুলি বাদ দেয়।
এটি একটি "আকর্ষণীয় অ্যালগরিদম" কী এর কিছুটা উন্মুক্ত সংজ্ঞাও। যে কোনও প্রোগ্রাম যা আকর্ষণীয় হিসাবে দেখা যায় তা অবশ্যই তাই, কারণ একটি চিহ্নিত টাইপ সিস্টেম রয়েছে যা এটি আকর্ষণীয় করে তোলে। তবে এমন একটি প্রোগ্রাম যা এখনও অবধি টাইপযোগ্য ছিল না, আরও উন্নততর টাইপ সিটেমের সাথে টাইপযোগ্য হয়ে উঠতে পারে এবং এভাবে আকর্ষণীয় হয়ে উঠতে পারে। আরও স্পষ্টভাবে, এটি সর্বদা আকর্ষণীয় ছিল তবে সঠিক ধরণের সিস্টেম সম্পর্কে জ্ঞানের অভাবে আমরা এটি জানতে পারি না।
যাইহোক, এটা জানা যায় না সব প্রোগ্রাম, typeable হয় যেহেতু এটি পরিচিত হয় যে এই ধরনের বাস্তবায়ন কিছু ল্যামডা অভিব্যক্তি, ওয়াই combinator , একটি শব্দ টাইপ সিস্টেমের মধ্যে টাইপ করা যাবে না ।
এই দৃষ্টিভঙ্গিটি কেবল প্রোগ্রামিং ফর্মালিজমের ক্ষেত্রে প্রযোজ্য যা সরাসরি কিছু অডিওম্যাটিক প্রুফ সিস্টেমের সাথে যুক্ত হতে পারে। আমি জানি না কীভাবে এটি ট্যুরিং মেশিনের মতো নিম্ন স্তরের গণ্য রীতিতে বাড়ানো যেতে পারে। তবে, যেহেতু অ্যালগরিদমিক্স এবং গণনাযোগ্যতা প্রায়শই সমস্যা এবং সমাধানগুলির এনকোডিংয়ের একটি খেলা ( ল্যাম্বডা ক্যালকুলাসে এনকোডেড গাণিতিকতার কথা ভাবেন ), কেউ বিবেচনা করতে পারেন যে কোনও আনুষ্ঠানিকভাবে সংজ্ঞায়িত গণনা যা অ্যালগরিদমের এনকোডিং হিসাবে দেখানো যেতে পারে তাও একটি অ্যালগরিদম। এই জাতীয় এনকোডিংগুলি সম্ভবত ট্যুরিং মেশিনের মতো নিম্ন স্তরের আনুষ্ঠানিকতায় প্রকাশিত হতে পারে তার খুব সামান্য অংশই ব্যবহার করে।
এই পদ্ধতির একটি আগ্রহ হ'ল এটি অ্যালগরিদমের ধারণা দেয় যা গণনা ডোমেনের "শারীরিক প্রতিনিধিত্ব" সম্পর্কে প্রকৃত এনকোডিংয়ের বিষয়গুলির থেকে আরও বিমূর্ত এবং স্বাধীন। সুতরাং কেউ উদাহরণস্বরূপ, অসীম বস্তুগুলির ডোমেনগুলি বিবেচনা করতে পারে যতক্ষণ না সেগুলি ব্যবহারের একটি কম্পিউটেশনাল সাবলীল উপায় রয়েছে।