দুটি ফাংশন এক্সটেনশনাল সমান কিনা তা গণনা করা সম্ভব?


9

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

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

আমার কি ডায়নোটেশনাল শব্দার্থবিজ্ঞানের দিকে নজর দেওয়া উচিত, না সম্পর্কযুক্ত?

আমি এই অঞ্চলে গবেষণার দিকে এবং বিষয়টিকে আমার সাহিত্যের অনুসন্ধানে সহায়তা করতে পারে এমন বিষয়টি বর্ণনা করতে ব্যবহৃত বিভিন্ন পদগুলিতে আগ্রহী।

উত্তর:


8

হ্যাঁ. যদি আপনি যাচাই করতে পারেন যে সেগুলি একই, তবে কোনও কম্পিউটারও তা করতে পারে।

এখানে কোকের একটি পূর্ণসংখ্যার সাজানোর জন্য একটি দ্রুত স্পেসিফিকেশন:

Inductive natlist : Type :=
| nil : natlist
| cons : nat → natlist → natlist.

Fixpoint is_sorted (l : natlist ) : bool :=
    match l with
    |  nil => true
    |  (cons x nil) => true
    |  (cons x (cons y r)) => if x <= y then is_sorted (cons y r) else false
    end.

...

Theorem sort_spec : forall l, is_sorted (sort_list l).

নির্ভরযোগ্য প্রকারগুলি ব্যবহার করে বাছাইয়ের ঘোষণায় একটি স্পেসিফিকেশন সরাসরি এনকোড করা যায়।

এই বিশেষ সমস্যার জন্য, জন ডার্লিংটন 70 এর দশকে দেখিয়েছিলেন যে বাছাইকরণের অ্যালগরিদমের 6 টি পরিবার যান্ত্রিকভাবে একটি বাছাইয়ের স্পেসিফিকেশনকে বাস্তবায়নে রূপান্তরিত করে নেওয়া যেতে পারে; আমি বিশ্বাস করি এটি "শব্দার্থ-ভিত্তিক প্রোগ্রাম ডেরাইভেশন" নামে চলেছে goes

সফ্টওয়্যার-ইঞ্জিনিয়ারিং বিশ্বে এক্সটেনশনালি সমতুল্য ফাংশন সন্ধান করা "শব্দার্থক ক্লোন সনাক্তকরণ" হিসাবে পরিচিত।

ডেভ ক্লার্ক সিএস স্ট্যাকএক্সচেঞ্জ এ এই প্রশ্নের উত্তরের উত্তরও দিয়েছেন: /cs/2059/how-do-you-check-if-two-algorithms-return-tame-result -for-কোনো-ইনপুট

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


উত্তরের জন্য ধন্যবাদ! এটি ঠিক আমি অনুসন্ধান করছিলাম।
ম্যাথিজস স্টেইন

4
ডেনোটেশনাল শব্দার্থবিজ্ঞান "পক্ষপাতিত্বের বাইরে চলে গেছে" এই স্টেটমেন্টের সাথে আমি দৃ strongly়ভাবে একমত নই। এটি মূলত আপনি কাকে জিজ্ঞাসা করেন তার উপর নির্ভর করে।
আন্দ্রেজ বাউয়ার

5

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

যাচাইকরণ অনেকগুলি আকারে এগিয়ে যেতে পারে, আপনি উদাহরণস্বরূপ অপারেশনাল শব্দার্থক শব্দ ব্যবহার করে জেডএফসি সেট-থিওরিতে করতে পারেন। তবে, এটি বেদনাদায়ক হবে। ডায়নোটেশনাল শব্দার্থবিজ্ঞানের অস্তিত্ব থাকলে, সেগুলিও ব্যবহার করা যেতে পারে তবে ভাল ডিনোটেশনাল শব্দার্থবিদ্যা কেবল কয়েকটি ভাষার জন্য বিদ্যমান। প্রোগ্রামগুলির এক্সটেনশনাল সাম্য দেখানোর জন্য সাধারণত একটি প্রোগ্রাম লজিকগুলি, যেমন Hoare যুক্তি ব্যবহার করে। এটি করতে সক্ষম হওয়ার জন্য, ফাংশন সহ ভাষাগুলির জন্য হোয়ের লজিক্সের সাধারণত এটির একটি অক্ষরেখা প্রয়োজনf=gxα.f(x)=g(x), ধরে নিচ্ছি যে f এবং g টাইপ ফাংশন হয় αβ (হোয়েরে যুক্তিবিদ্যায় নির্বাচিত পদ্ধতির বিশদ সহ অ্যাক্সিয়াম ভেরিয়মের বিশদ)।


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

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

... একটি নির্ধারণযোগ্য প্রসঙ্গগত সাম্য আছে। তবে নোট করুন যে আর। লোডার দেখিয়েছেন যে এমনকি ফাইনারি পিসিএফেরও এক অনির্ধারিত প্রসঙ্গগত সমতুল্যতা রয়েছে।
মার্টিন বার্গার

-2

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


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