কোনও ইনপুটের জন্য দুটি অ্যালগরিদম একই ফলাফলটি ফিরে আসে কিনা আপনি কীভাবে পরীক্ষা করবেন?


18

সমস্ত ইনপুটগুলির সেট অসীম যখন দুটি অ্যালগরিদম (বলুন, মার্জ সাজান এবং ন্যাভ সাজান) কোনও ফলাফলের জন্য একই ফলাফলটি ফেরত দেয় আপনি কীভাবে পরীক্ষা করবেন?

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


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

1
আপনি কি একটি স্বয়ংক্রিয় কৌশল / অ্যালগরিদম বা ম্যানুয়াল কৌশলগুলির সেট চান?
ডেভ ক্লার্ক

@ সাশোনিকোলভ, যদি পারফরম্যান্সকে আউটপুটের একটি অংশ হিসাবে বিবেচনা করা হয় তবে আপনাকে উভয়কে একই সময় / স্থান জটিলতায় কাজ করে দেখানো উচিত।
এডিএ-কিএ মর্ট-ওরা-ওয়াই

1
আপনি কি "চেক" বলতে চাইছেন বা প্রমাণ করেছেন? "কোনও ইনপুট" বা সমস্ত ইনপুট মানে? প্রশ্নের অনুপ্রেরণা এবং প্রসঙ্গ কী?
কাভেহ

2
@ অ্যান্ড্রেসরিওরিও: প্রুফ কৌশলগুলি সাধারণ সমস্যা সমাধান করার জন্য অ্যালগরিদম থেকে পৃথক। উদাহরণস্বরূপ, থামানো সমস্যা অনস্বীকার্য তবে অনেক প্রোগ্রামের (হাত বা স্বয়ংক্রিয় হিউরিস্টিক্স দ্বারা) সমাপ্তি প্রমাণ করা অবশ্যই সম্ভব।
রাফেল

উত্তর:


16

নায়ে-ক্রেতারা যা বলেছেন তার বিপরীতে, এটি করার জন্য অনেক কার্যকর কৌশল রয়েছে।

  • বিসিমুলেশন একটি পন্থা। উদাহরণস্বরূপ, কন্ডাকশন এবং ফাংশনাল প্রোগ্রামিং সম্পর্কিত গর্ডনের কাগজ দেখুন ।

  • আর একটি পদ্ধতি হ'ল পিটসের কাজের মতো প্রোগ্রামের সমতুল্যের অপারেশনাল তত্ত্বগুলি ব্যবহার করা ।

  • তৃতীয় পদ্ধতির মধ্যে যাচাই করা হয় যে উভয় প্রোগ্রামই একই কার্যকরী বিশদটি পূরণ করে। এই পদ্ধতির হাজার হাজার কাগজপত্র রয়েছে।

  • একটি চতুর্থ পন্থাটি দেখানো হচ্ছে যে একটি প্রোগ্রামকে সাউন্ড প্রোগ্রাম রূপান্তরগুলি ব্যবহার করে অন্যটিতে আবার লেখা যেতে পারে ।

অবশ্যই এই পদ্ধতির কোনওটিই অঘোষিততার কারণে সম্পূর্ণ নয়, তবে সমস্যাটির সমাধান করার জন্য কাজগুলির পরিমাণ এবং আয়তন তৈরি করা হয়েছে।


হেউ · RIS · মাংসপেশীর আক্ষেপ । [Gr। discover "আবিষ্কার"] এন। ১. এমন একটি সমস্যা সমাধানের জন্য ডিজাইন করা একটি কৌশল যা সমাধানটি সঠিক হিসাবে প্রমাণিত হতে পারে কিনা তা উপেক্ষা করে তবে এটি সাধারণত একটি ভাল সমাধান উত্পাদন করে বা আরও জটিল সমস্যার সমাধান সহ একটি ছেদ করে এমন একটি সহজ সমস্যা সমাধান করে। ২ ( থিওর। ) একটি অ্যালগরিদম যা কাজ করে না।
জেফই

1
বার্ট সিম্পসন: "জিততে পারি না। চেষ্টা করো না।"
ডেভ ক্লার্ক

9
@ জেফি: আপনি যদি দুটি অ্যালগরিদম একই ফলাফল ফেরত দেয় কিনা তা পরীক্ষা করতে চান, আপনি একটি প্রমাণ করেন। এটি করার জন্য প্রচুর ভাল কৌশল রয়েছে। অবশ্যই, সমস্ত পদ্ধতি অসম্পূর্ণ, তবে কে যত্ন করে? গোডেলের অসম্পূর্ণতা উপপাদ্যটি গণিতকে ছাড়ার কারণ নয়!
নীল কৃষ্ণস্বামী

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

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

10

"এটি অসম্ভব" স্টেটমেন্টগুলির কিছুটা বিশদভাবে জানাতে এখানে একটি সহজ প্রমাণ স্কেচ দেওয়া হয়েছে।

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

এখন ধরুন, প্রতিটি ইনপুটটির জন্য এই জাতীয় দুটি টিএম একই আউটপুট রয়েছে কিনা তা নির্ধারণ করার জন্য আমার কাছে একটি অ্যালগরিদম পি রয়েছে । তারপরে, একটি টিএম এবং একটি ইনপুট এক্স দেওয়া , আমি একটি নতুন টিএম বি তৈরি করতে পারি যা নীচের মত কাজ করে:

  1. ইনপুটটি ঠিক এক্স কিনা তা পরীক্ষা করে দেখুন
  2. যদি হ্যাঁ, তবে একটি অসীম লুপ লিখুন
  3. কোন, তাহলে চালানো একটি ইনপুটের

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

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


P

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

2
আরও সাধারণভাবে, রাইসের উপপাদ্যটি বলেছে যে অ্যালগরিদম সম্পর্কে কিছু প্রমাণ করার মতো কোনও গণনার উপায় নেই, যত তাড়াতাড়ি অন্তত একটি অ্যালগরিদম রয়েছে যা আপনি প্রমাণ করার চেষ্টা করছেন এমন সম্পত্তি রয়েছে এবং কমপক্ষে একটি যা তা নয়। উদাহরণস্বরূপ, একটি অ্যালগোরিদম এ দেওয়া, এমন কোনও গণনাযোগ্য ফাংশন নেই যা একটি অ্যালগরিদম বি কে ইনপুট হিসাবে গ্রহণ করে এবং পরীক্ষা করে যে বি এ এর ​​সমতুল্য কিনা
গিলস 'এস-অশুভ হওয়া বন্ধ করুন'

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

2

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


1

সাধারণভাবে এই সমতা প্রমাণ করে এমন একটি অ্যালগরিদম তৈরি করা অসম্ভব। ইঙ্গিত: হ্যালটিং সমস্যা থেকে হ্রাস।


অনেকগুলি কৌশল বিদ্যমান, যদিও কোনওটি সম্পূর্ণ স্বয়ংক্রিয় নয়।
ডেভ ক্লার্ক

আমি জানি না সম্ভব বা না, আপনার উত্তর দ্বারা কেবল একটি মন্তব্য। একটি উত্তর না।

@ সাeedদআমিরি: আমি উত্তরটির প্রসঙ্গে কিছুটা শিখলাম; আমি মনে করি এটি যথেষ্ট সম্পূর্ণ, যদি বিশেষত ভাল না হয়।
রাফেল

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

2
@ সাইদআমিরি: ওপি এবং ভোটাররা তখন সিদ্ধান্ত নেবেন, আমাদের নয়।
রাফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.