প্রতিটি স্ব-সংশোধনকারী অ্যালগরিদমকে কি নন-স্ব-পরিবর্তনকারী অ্যালগরিদম দ্বারা মডেল করা যায়?


12

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


সম্পাদনা:

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

উত্তর:


29

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

বিশেষত, আপনার কাছে একটি সার্বজনীন ট্যুরিং মেশিন পুরোপুরি ভাল থাকতে পারে যা টিএমটিকে নিজস্ব বিবরণটি সংশোধন করার অনুকরণ করে। (সিমুলেটেড মেশিনের বর্ণনা, আমি বোঝাতে চাইছি; ইউটিএম নয় not)


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

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

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

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

10

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

আপনার মনে যে ভাষা আছে সেটির কোনও প্রোগ্রাম পাওয়ার জন্য, এই জাতীয় মডেল থেকে সংকলন করুন (এবং নিশ্চিত করুন যে সংকলক কোড সংশোধন করে না।


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


4

ডেভিড রিচার্বির উত্তরটি যুক্ত করার জন্য :

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

যেমনটি আমি আমার মন্তব্যে উল্লেখ করেছি, একটি স্ব-পরিবর্তনকারী অ্যালগরিদম কোনও প্রসেসরের উপর চালানো যেতে পারে যা নিজেই একটি স্ট্যাটিক অ্যালগরিদমের (তার নকশায় এনকোডযুক্ত) বিধি অনুসারে মেনে চলে যা মেশিনের নির্দেশাবলী কার্যকর করতে কিভাবে "এটি বলে"।


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

2
@ কর্টআ্যামমন: আমরা যদি "জীবন" কে একটি অ্যালগরিদম হিসাবে দেখি, তবে এর ইনপুট এবং ফলাফল কী? কীভাবে কেউ প্রমাণ করতে পারে যে কোনও সমতুল্য অ্যালগরিদম (অর্থাত্, কোনও ইনকাম দেওয়া হলে একই আউটপুট উত্পাদন করে এমন কোনও অ্যালগরিদম) অবশ্যই স্ব-পরিবর্তনকারী হতে হবে?
রুখ

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

1
@ কর্টআ্যামমন: আমি কম্পিউটারে চলে এমন একটি অ্যালগরিদমকে কমিয়ে আনা যায় না কারণ যে অ্যালগরিদম আর "আমাকে" হয় না; আমি আমার ইনপুট এবং আউটপুটগুলির চেয়ে বেশি। কিন্তু আমরা যদি ধৃষ্টতা থেকে শুরু যে আমি আছি শুধু একটি অ্যালগরিদম, তারপর tacking না আসলে কিছু পরিবর্তন করে "যে একটি কম্পিউটারে চালাতে পারেন"। পুনরায়: "যদি আমি যুক্তি দিয়ে থাকি যে জীবনটি একটি স্ব-পরিবর্তনকারী অ্যালগরিদম ছিল তবে ইনপুটগুলি নিজেই হবে এবং এর ফলাফলগুলি নিজেই হবে": সেক্ষেত্রে আমি মনে করি আপনি সিএসের বাইরে খুব ভালভাবে ঘুরে বেড়াবেন এবং বিপজ্জনকভাবে ক্র্যাকপটটারির কাছাকাছি close
রুখ

1
@ কর্টআ্যামমন এমন একটি প্রোগ্রাম যা নিজেকে ইনপুট হিসাবে সঠিক বলে দেয় cat। (বিড়ালদের জীবন্ত প্রাণী হতে দেখা গেলেও কোনও পাং উদ্দেশ্য নয়)
ব্যবহারকারী 253751
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.