কীভাবে প্রমাণ করতে পারি যে কোনও ভাষা প্রসঙ্গমুক্ত?


26

আছে অনেক কৌশল প্রমাণ করতে হবে যে একটি ভাষা না প্রেক্ষাপটে মুক্ত, কিন্তু আমি কিভাবে প্রমাণ যে একটি ভাষা হল প্রেক্ষাপটে মুক্ত?

এটি প্রমাণ করার জন্য কী কৌশল রয়েছে? স্পষ্টতই, একটি উপায় হ'ল ভাষার জন্য প্রসঙ্গমুক্ত ব্যাকরণ প্রদর্শন করা। কোনও প্রদত্ত ভাষার জন্য প্রসঙ্গমুক্ত ব্যাকরণ সন্ধান করার জন্য কি কোনও নিয়মতান্ত্রিক কৌশল রয়েছে?

নিয়মিত ভাষায়, সেখানে হয় নিয়মানুগ উপায়ে একটি নিয়মিত ব্যাকরণ / সসীম-স্টেট যন্ত্রমানব আহরণ করা: উদাহরণস্বরূপ, Myhill-Nerode উপপাদ্য একটি উপায় প্রদান করে। প্রসঙ্গ-মুক্ত ভাষাগুলির জন্য কি কোনও সম্পর্কিত কৌশল আছে?


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


আমাকে আমার স্বাভাবিক নোটটি ছেড়ে দেওয়ার অনুমতি দিন: ভাষাটি যখন হাতের কাছে প্রসঙ্গমুক্ত ব্যাকরণ প্রদান করছেন তখন আপনার সঠিকতার প্রমাণ প্রয়োজন যা এটি পদ্ধতির পরিবর্তে অনর্থক হতে পারে।
— রাফেল

এটিকে যথাযথ রেফারেন্স প্রশ্ন করার জন্য আমরা সমস্যা ডাম্পারগুলিতে ফেলে দিতে পারি, আপনি কি ব্যাকরণ এবং অটোমেটা নিয়ে কোনও উত্তর যুক্ত করতে পারেন, সম্ভবত প্রতিটি উদাহরণ দিয়ে? ধন্যবাদ!
— রাফেল

এখানে উপাদানটি স্থানান্তরিত না হওয়া পর্যন্ত দ্রষ্টব্য যে রিক ডেকার এবং বাবু একটি সদৃশ প্রশ্নে কিছু সাধারণ প্রসঙ্গ-মুক্ত আইডিয়াম সংগ্রহ করেছিলেন ।
— রাফেল

উত্তর:


13

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

এছাড়াও আমাদের কাছে বেসিক টুলবক্স রয়েছে :

  1. উপসংহার: আপনি যদি ভাষাটি টানা দুটি অংশে বিভক্ত করতে পারেন তবে এই উত্পাদনটি ব্যবহার করুনS→S1S2

  2. ইউনিয়ন: বিভক্ত অংশগুলিতে বিভক্তS→S1∣S2

  3. পুনরাবৃত্তি: S→S1S∣ε

উদাহরণ 1

বাসা বাঁধার জন্য এখানে একটি উদাহরণ (আপনাকে ধন্যবাদ রাফেল)।

L={bkal(bc)manbo∣k,l,m,n,o∈N,k≠o,2l=n,m≥2}

প্রতিস্থাপন দ্বারা 2 ঠ । আমরা এখন কন্ডিশনে এন ড্রপ করতে পারি ।n2ln

প্রতিস্থাপন দ্বারা ট > ণ  বা  ট < ণ (বিভ্রান্ত? ণ হল 'উহু' না 'শূন্য')। ইউনিয়নের জন্য সরঞ্জাম প্রয়োগ করুন। আমরা এখানে k > o নিয়ে কাজ করি । এছাড়াও k > o iff k = s + o এবং s > 0 যেখানে s একটি নতুন পরিবর্তনশীল। প্রতিস্থাপন ট দ্বারা গুলি + + ণ ।k≠ok>o or k<ook>ok>ok=s+os>0sks+o

L1={bs+oal(bc)ma2lbo∣l,m,o,s∈N,s>0,m≥2}

কিছু সাধারণ পুনর্লিখন।

L1={bbsboalbcbc(bc)m(aa)lbo∣l,m,o,s∈N}

এখন আমরা নীড়ের কাঠামো দেখি, এবং ব্যাকরণ তৈরি শুরু করি।

, টি → খ ইউ , ইউ → খ ইউ | ε (দেখুন: সংযুক্তকরণের এবং পুনরাবৃত্তির এখানে)S1→TVT→bUU→bU∣ε

(আমরা উৎপন্ন ণ খ 'উভয় পক্ষের গুলি)V→bVb∣Wo b

W→aWaa∣X

, ওয়াই → বি সি বি সি , জেড → বি সি জেড ∣ ε εX→YZY→bcbcZ→bcZ∣ε

উদাহরণ 2

K={akblcm∣l=m+k}

প্রথম "সুস্পষ্ট" পুনর্লিখন।

K={akbm+kcm∣m,k≥0}={akbmbkcm∣m,k≥0}

ভাষাতত্ত্বগুলিতে একে "ক্রস-সিরিয়াল নির্ভরতা" বলা হয়: ইন্টারলিভিং (সাধারণত) দৃ -়ভাবে অ-প্রসঙ্গ-স্বচ্ছতা নির্দেশ করে। অবশ্যই এম + কে = কে + এম এবং আমরা রক্ষা পেয়েছি।k,m,k,mm+k=k+m

K={akbk+mcm∣m,k≥0}={akbkbmcm∣m,k≥0}

প্রযোজনার সঙ্গে , এক্স → একটি এক্স খ | ε , ওয়াই → খ ওয়াই গ | εS→XYX→aXb∣εY→bYc∣ε

একইভাবে K′={akblcm∣m=k+l}={akblclck∣k,l≥0}

, এক্স → বি এক্স সি ∣ produc প্রযোজনা সহ εS→aSc∣XX→bXc∣ε


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


11

সিএফএল-এর একটি বৈশিষ্ট্য রয়েছে যা ব্যবহারযোগ্য হতে পারে, চমস্কি-স্কটজেনবার্গার উপপাদ্য ।

ডাইক ভাষা

যাক একটি বর্ণমালা। আমরা সংজ্ঞায়িত Dyck -language ডি টি ⊆ ( টি ∪ টি ) * এর টি প্রেক্ষাপটে মুক্ত ব্যাকরণ দ্বারা জি = ( { এস } , টি ∪ টি , δ , এস ) সঙ্গে δ কর্তৃক প্রদত্তTDT⊆(T∪T^)∗TG=({S},T∪T^,δ,S)δ

।S→aSa^S∣ε,a∈T

চমস্কি-স্কটজেনবার্গার উপপাদ্য

প্রসঙ্গ-মুক্ত যদি হয় এবং আছে শুধুমাত্র যদিL⊆Σ∗

  • একটি বর্ণমালা ,T
  • একটি নিয়মিত ভাষা এবংR⊆(T∪T^)∗
  • homomorphism ψ:(T∪T^)→Σ∗

যাতে

।L=ψ(DT∩R)

নোট করুন যে সমকামিতা শব্দগুলিতে (প্রতীক দ্বারা প্রতীক) এবং তারপরে ভাষাগুলিতে (শব্দ দ্বারা শব্দ) প্রসারিত।

উদাহরণ

বিবেচনা করুন । সঙ্গেL={anbncm∣n,m∈N

  • (এবং, canonically, টি = { ] , ⟩ } ),T={[,⟨}T^={],⟩}
  • এবংR=L([∗]∗⟨∗⟩∗)
  • ψ(x)={a,x=[b,x= ]ε,x=⟨c,x= ⟩

উপপাদ্যটি ইঙ্গিত দেয় যে প্রসঙ্গমুক্ত , বিশেষত থেকেL

DT∩R={[n]n⟨m⟩m∣n,m∈N}

উদাহরণ 2

L={bkal(bc)manbo∣k,l,m,n,o∈N,k≠o,2l=n,m≥2}

abcbbk≠o

  • T={[,⟨,⊢,<}
  • R=L(<+>+⊢∗[∗⟨⟨+⟩+⟩]∗⊣∗)∪L(⊢∗[∗⟨⟨+⟩+⟩]∗⊣∗<+>+)
  • ψ(x)={b,x∈{⊢,⊣,<}a,x=[aa,x= ]bc,x=⟨ε,else

L=ψ(DT∩R)[]w∈DTR

DT∩R={<p>p⊢o[l⟨m⟩m]l⊣o∣p≥1,o≥0,l≥0,m≥2}∪ {…}

এবং এর সাথে

ψ(DT∩R)={bp+oal(bc)ma2lbo∣p≥1,o≥0,l≥0,m≥2}∪ {…}={bkal(bc)manbo∣k,l,m,n,o∈N,k>o,2l=n,m≥2}∪ {…}=L.

ব্যাকরণ এবং অটোমেটার কাছে

আমরা যদি শেষ পর্যন্ত কোনও অটোম্যাটন বা ব্যাকরণ রাখতে চাই তবে আমাদের সামনে আরও কিছু কাজ রয়েছে।

  • DTRψ

  • RDTψ

TRψ


কোনও প্রদত্ত ভাষা প্রসঙ্গমুক্ত কিনা তা অনস্বীকার্য।
— রিইনারপোস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.