সিএফজির জন্য চমস্কি স্বাভাবিক ফর্মের মতো স্বাভাবিক ফর্মগুলির গুরুত্ব


12

আমি বুঝতে পারি যে প্রসঙ্গ-মুক্ত ব্যাকরণগুলি প্রসঙ্গ-মুক্ত ভাষাগুলি উপস্থাপন করতে ব্যবহার করা যেতে পারে t এতে অস্পষ্টতা থাকতে পারে। আমরা মত স্বাভাবিক ফর্ম আছে চমস্কি এবং Greibach স্বাভাবিক ফর্ম। আমি এর প্রয়োজন বুঝতে পারি না।

কেন তারা ভাষা তত্ত্ব গুরুত্বপূর্ণ? আমি উল্লেখ করা সমস্ত পাঠ্যপুস্তকগুলিতে এই সাধারণ ফর্মগুলি সম্পর্কে বলতে কিন্তু তাদের গুরুত্ব সম্পর্কে কিছু বলছে না।


2
গঠনমূলক প্রমাণ দেওয়ার সময় সাধারণ ফর্মগুলি কার্যকর।
কারোলিস জুডেলė

উত্তর:


12

কমপক্ষে দুটি প্রাসঙ্গিক ব্যবহার আছে।

  1. প্রমাণের সরলতা
    অটোমেটার হ্রাস এবং সমতা সহ প্রসঙ্গ-মুক্ত ব্যাকরণগুলির চারপাশে প্রচুর প্রমাণ রয়েছে। আপনার সাথে মোকাবিলা করতে হবে এমন ব্যাকরণগুলির সেটগুলি সেগুলি আরও সহজ। সুতরাং, স্বাভাবিক ফর্মগুলি সেখানে সহায়ক হতে পারে।

    একটি কংক্রিট উদাহরণ হিসাবে, Greibach স্বাভাবিক ফর্ম দেখানোর জন্য (গঠনমূলক) একজন আছে যে ব্যবহার করা হয় -transition মুক্ত প্রত্যেক সিএফএল (যে ধারণ করে না জন্য পিডিএ )।εεε

  2. পার্সিং সক্ষম করে
    যদিও পিডিএ কোনও ব্যাকরণের সাথে শব্দের বিশ্লেষণ করতে ব্যবহৃত হতে পারে, এটি প্রায়শই অসুবিধে হয়। সাধারণ ফর্মগুলি আমাদের সাথে কাজ করার জন্য আরও কাঠামো দিতে পারে, যার ফলে সহজেই পার্সিং অ্যালগরিদম হয়।

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


5

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

যদি আপনার ইনপুট ( ) এর দৈর্ঘ্য n হয় তবে আপনি ম্লান n x n এর 2d অ্যারে ( A ) নিন ।আমিএনএকজনএনএন

ব্যাকরণ সমস্ত চিহ্ন উল্লেখ করে জি উপ-স্ট্রিং লাভ করতে পারি আমি ( আমি , )একজন[আমি,]জিআমি(আমি,)

সুতরাং পরিশেষে যদি এর মধ্যে সূচনা চিহ্ন ( এস ) থাকে তবে এর অর্থ হ'ল আমি যে স্ট্রিংটি এস দ্বারা উত্পন্ন করতে পারি যা আমরা যাচাই করতে চেয়েছিলাম।একজন[1,এন]এসএস

def decide (string s,grammar G):
    //base case
    for i=1 to n:
        N[i,i]=I[i]    //as the substring of length one can be generated by only a
                       terminal.
    //end base case

    //induction
    for s=1 to n:       //length of substring
        for i=1 to n-s-1: //start index of substring
            for j=i to i+s-1:   //something else
                 if there exists a rule A->BC such that B belongs to N[i,j] and C
                 belongs to N[j+1,i+s-1] then add A to N[i,i+s-1]
    //endInduction

    if S belongs to N[1,n] then accept else reject.

আমি জানি যে সূচিগুলি বেশ পাগল বলে মনে হচ্ছে। তবে মূলত এখানে যা ঘটছে তা এখানে।

  • বেস কেসটি আমার কাছে মনে হয় বেশ পরিষ্কার।

  • গুলিগুলি

  • 5sub1একজন->বিসিবিসিএকজনএন[1,6]

  • এন[1,এন]


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

    @ রাফেল ঠিক আছে .... আমি নামটি জানতাম না :)
    ishan3243

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