আমরা কখন বলতে পারি যে দুটি প্রোগ্রাম আলাদা?


15

চতুর্থাংশ 1। আমরা কখন বলতে পারি যে দুটি প্রোগ্রাম (কিছু প্রোগ্রামিং ভাষায় সি ++ এর মতো লেখা) আলাদা হয়?

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

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


প্রোগ্রামটি কি আইসোর্ফিজম সমস্যা? কেউ জিজ্ঞাসা করতে পারে না "এই প্রোগ্রামটি কি সর্বদা থেমে থাকা প্রোগ্রামটির আইসমোর্ফিক?" এবং থামানো সমস্যা পুনরুদ্ধার? যদি আমরা বাউন্ডেড হ্যালটিং প্রোগ্রামের সমস্যাটিকে নিজেদের মধ্যে সীমাবদ্ধ রাখি তবে এটি কি কেবল গ্রাফ আইসোমরফিজম নয়?
ব্যবহারকারী 834

5
দুটি অ্যালগরিদম কখন এক হয়? arxiv.org/abs/0811.0811
sdcvvc

1
এটি পুরোপুরি প্রসঙ্গে নির্ভর করবে না? এখানে কিছুটা দার্শনিক প্রাপ্তি, তবে একটি বোল্টড ডাউন চেয়ার এবং একটি উল্টা-ডাউন বোলেটেড ডাউন চেয়ার শারীরিকভাবে একই জিনিস তবে চেয়ারের ধারণার দিক থেকে একই নয় ।
রেই মিয়াসাকা

সামান্য সামান্য অফ-টপিক, তবে, যেহেতু প্রমাণগুলি প্রোগ্রামগুলি ... gowers.wordpress.com/2007/10/04/…
রাদু GRigore

1
নিম্নলিখিত নিবন্ধটি খুব সম্পর্কিত। আমি কিছুক্ষণ আগে এটির মধ্যে কেবল স্কিমিং করেছি, তবে ব্লাস এবং গ্রুরিক সাধারণত সত্যই ভাল লিখেন (আমি কেবল ডারশুইটসের অন্য কিছু পড়ার কথা মনে করি না, এটি সাধারণত খুব পঠনযোগ্য বলে না)। গবেষণা. microsoft.com/en-us/um/people/gurevich/Opera/192.pdf কখন একই রকম দুটি অ্যালগোরিজম হয়? আন্ড্রেস ব্লাস, নাচুম ডারশোভিটজ এবং ইউরি গ্রিভিচ
কাস্টারমা

উত্তর:


18

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

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


আইও এবং সাধারণভাবে পার্শ্ব প্রতিক্রিয়াগুলি শাস্ত্রীয় অ্যালগরিদম ধারণাগুলিতে মোটেই আচ্ছন্ন হয় না।
রাফেল 13

15

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

এটি চূড়ান্ত নয়: পর্যবেক্ষণের ধারণার তুলনায় প্রোগ্রামের সমতাটি সংজ্ঞায়িত করতে হবে ।

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

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

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

মূলত, প্রোগ্রামের সমতুল্যের কোনও একক ধারণা নেই; এটি সর্বদা আপনার পর্যবেক্ষণের ধারণার ধারণার সাথে সম্পর্কিত এবং এটি আপনার মনে থাকা প্রয়োগের উপর নির্ভর করে।


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

α

1
αα

1
@ SamTobin-Höchstadt। ঠিক আছে, আমাদের "স্বাভাবিক" ভুলে যাওয়া যাক। আমার যে অনুভূতিটি পেয়েছি তা হল আপনি নীল যা বলেছিলেন একই কথা বলছেন, যা আমার মতে বেশ ভালভাবে বিবেচিত হয়েছিল। আপনার ধারণা, যা এখনও আমার কাছে অস্পষ্ট, সঠিক ধরণের পর্যবেক্ষণ এবং সঠিক ধরণের প্রোগ্রামের প্রসঙ্গগুলি বাছাই করে নীলের কাঠামোর মধ্যে আনুষ্ঠানিকভাবে তৈরি করা যেতে পারে।
উদয় রেড্ডি

1
λλx.xλy.y

2

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

দুঃখিত যদি এটি নির্দোষ হয়। আমি পিএল গবেষণা করি না।


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