Transcript for:
कंप्यूटेशन थ्योरी और ग्रामर की व्याख्या

नावशकार दोस्तों मैं हूँ आपका दोस्त संजित और स्वागत करता हूँ इस वीडियो सरीज में जहां हम डिसक्रेशन कर रहे हैं थिवरी ऑफ कंप्यूटेशन पर दोस्तों मेरे काफ़े डिसक्रेशन कर चुके हैं फाइनाइट ऑटोमेटा पीडिया ट्यूरिंग मशीन पर लेकिन ग्रामर की जादा बात हमने नहीं कि आप लोगों के बहुत सारे फीडवेक्स मुझे मिलते हैं तो काफ़ी सारे लोग जो है वो इस वीडियो में कि अगर बात करूं तो यहां पर मैं बात करने वाला हूं ग्रामर बेसिकली क्या है ग्रामर पढ़ने की जरूरत हमें क्यों है ग्रामर लेंग्वेज या मशीन सब में आपस में क्या रिलेशन है और कैसे ग्रामर किसी लेंग्वेज को रिपेजेंट कर सकता ह और फिर further grammar की बहुत अच्छे से दोस्तों study करने वाले हैं तो चली दोस्तों बात स्टार्ट करेंगे भी grammar क है तो चलिए दोस्तों अभी डिस्क्रेशन स्टार्ट करते हैं ग्रामर का बजाय इसके कि पहले मैं बात करूं टापल्स की क्या मैथमेटिकल डेफिनेशन है पहले एक बर एक जनरल क्रिटेरियल जनरल कंसेप्ट आपसे डिस्क्रस करता हूं जिससे बात करें तो सबसे लेंग्वेज क्या होता है तो लैंग्वेज नथिंग बटा सेट ऑफ स्ट्रिंग्स एक सेट हमारे पास है और हमें जो analysis करना है वो languages का ही करना है, but, अब set या set of strings जो है, वो कभी-कभी बहुत complex हो सकता है, या फिर set infinite भी हो सकता है, तो उन बड़े cases में, किसी language को directly दोस्तो study करना मुश्किल होगा, और अभी तक बहुत अच्छे समने machine models discuss किये, तो basic concept या idea क्या था, कि बजाए directly हम language को study करें, हम एक ऐसा machine बनाते हैं, कि language के अंदर जो strings हैं, वह उन्हें स्ट्रिंग्स को एक्सेप्ट करेगा है ना तो बजाए डिरेक्टली आप लैंग्वेज की बात करो आप बात करो एक ऑटोमेटा की विच इस नथिंग बट एक्सेप्टर वह ऑटोमेटा लेकर क्लास का हो सकता है फाइनाइट ऑटोमेटा पीडी एनी स्ट्रिंग्स विच सार्ट्स विद ए एसे शुरूबात होने वाली कोई भी स्ट्रिंग पाइडर सिंगल या डबल या फिर ए के बाद बीए ए भी कुछ भी पैटर्न है ना तो अब जैसे आप देख रहे हैं कि यह जो लैंग्वेज है इनफाइनाइट ह इनिशल स्टेट पर जैसे ही आता है A, हम जाते हैं Q1 फोर्स का अधिकार कुछ भी एकसेप्ट कर रहे हैं, या अगर इनिशल पर आया भी तो हम जा रहे हैं dead state पर, और जो भी स्ट्रिंग होगा रेजेक्ट होगा, अब देखें दुबारा conclusion समझेगा, ये machine एक finite representation है एक infinite language का, यह किसी भी string W को define कर रहा है, मतलब machine को use करके तो हम किस को define कर रहे हैं, language को कैसे, हमारे language में वो सारे string W हैं, पहला तो W किस से belong करना चाहिए, sigma star से, of course, कि input alphabet है A और B, तो उनी string की बात की जा सकती है, जो A और B पर define की गए हैं, उसके बाद हम जालते हैं delta stands for transition function, and star means any number, आप कित initial state से जब हम transition function या transition करना start करेंगे on a string w, तो finally आप end किस पे करेंगे, final state पे, और मेरे खाल से language acceptance की या string acceptance की यही statement हम पढ़ते हैं machine में, कि बईया initial state से start करके, no matter what transition you take, अगर आप end करते हैं final state पे, तो इसका मतलब string member है, वरना string member नहीं है, है ना, तब समझेगा, आप ये बताओ कि language के अंदर कौन-कौन से string हैं, या आप ये बताओ मेरी जो machine है वो कौन-कौन से string एक्सट्रेप्ट कर रही है, दोनों का मतलब सीम है, अब ये किसी language को define करने का है, एक ही criteria है अभी फिलाल और इसको हम already पढ़ चुके हैं, language को define किया जा सकता है एक machine से, जो machine उस language को accept करें, अब हमें discussion के दूसरे तरफ जाना है, जहाँ पर दोस्तों हम बात करते हैं grammar की, वैसे grammar की बात करना मुझे लगता है ज़्यादा आसान होगा हमारे लिए, वैक्स grammar से हम पहली परिचित हैं, जितने भी natural languages हैं, जैसे Hindi, English, Tamil, Telugu, कुछ भी, उन सब के लिए already हम जानते हैं कि grammar होते हैं, grammar की base पे ही हम क्या define करते हैं language, तो पहले एक बार यहां समझ लेता है, idea क्या है, जिस तरह machine या automatic, एक्सेप्टर होता है, इसलिए ग्रामर को दोस्तों क्या बोलता है? जेनेरेटर, और ग्रामर भी किसी लेंग्विज को क्या कर सकता है? जेनरेट कर सकता है, इससे पहले कि मैं फॉर्मल लेंग्विजेस की जो हमारी ग्रामर सुन की बात करें, कॉमन आइडिया आप सोचेगा अल्फाबेट्स होते हैं, वो क्यों होते हैं, इसको कोई logical justification नहीं है, तो आप समझें, जैसे हम किसी machine को define करने के लिए 26 अल्फाबेट्स, 2 या 3 अल्फाबेट्स पर काम चला लेते हैं, English में 26 हैं, Hindi में कुछ और हैं, Chinese में कुछ और हैं, सब के लिए अलग-अलग हैं, अल्फाबेट्स के बेस पर देखें, हम क्या बनाते हैं, words, आप बहुत सारे words जो हैं, English की vocabulary में या Hindi की vocabulary में हैं, उस word का सही spelling क्या है, या उस word का actual meaning क्या है, वो dictionary में already tabulated है, तो दुबारे को अच्छे समझेगा, अल्फाबेट से वर्ड जब हम बनाते हैं तो इसके लिए कोई रूल नहीं है। रूल बनानी की जरूरत भी नहीं है ब्याकि जो वर्ड का सेट है वो फाइनाइट है। और वो अल्रेडी एक किताब जिसको जनरली हम बोलते हैं डिक्षिनरी उसमें लिखा हुआ है। लेकिन वर्ड के बाद जो अगला नंबर आता है वो आता है सेंटेंस का। चाहिए इंडिया इंग्लिश है हिंदी में जैसे हम वाक्या कहते हैं इंग्लिश में सेंटेंस कहते हैं तो आप मुझे बताइए कि किसी वर्ड से यह व्यूजिंग डिफरेंट वर्ड्स हम कितने सेंटेंस बना सकते हैं तो कॉमन सेंस बात है इंफाइनेट सेंटेंस बना सक तो आप ऐसा नहीं कह सकते हैं, भाई ये सारे sentences हमने हैं, बस ये सी को आप बोल सकते हैं, ये English है, आप क्या कहोगे, आप बोलोगे alphabet से हमने क्या बनाया words, ये रखो dictionary, और साथ में हम आपको देते हैं grammar, अब यहां दोस्तों मतलब आजाता है grammar का, और grammar आपको क्या समझाता है, आप sentences बना सकते हो, क्या आपको logic समझ आ रहा है कि नहीं, ये rules और regulations ये grammar हमें क्यों बताना पड़ा, because जो number of sentences दोस्तों, वो क्या है, infinite है, तो सारे की सारे sentences को मैं tabulate नहीं कर सकता, मैंने आपको कुछ rules बता दिया, यो rules को use करके, आप जितने चाहे उतने sentences बना सकते हो, ठीक यही तुलना, ठीक यही काम, देखिए हम कर रहे हैं अपने system में, मैं यहाँ पर tuples की या mathematical definition की बात नहीं करूँ, इसलिए slight idea है, जिस तरह किसी भी machine के अंदर एक initial state होती है, उसी तरह किसी भी grammar में एक start symbol होता है, generally हम उसको S कहते हैं, लेकिन वैसे आप चाहो तो इसको कुछ और नाम भी रख सकते हो, जैसे initial state का नाम Q0 रखना जरूरी नहीं है, इस तरह का नाम S रखना भी जरूरी नहीं है, वैसे capital symbol को हम बोलते है non-terminals, non-terminals मतलब जैसे नाम से समझ आ रहा है, जहां पे string terminate नहीं हो, जहां से कुछ आगे हो, जिसको rewrite करके हम कुछ और लिख सकें, और small जो symbols हैं, वो है terminals, वो और कुछ नहीं, जो language sigma हमारे पास है, दोस्तों उसी को हम क्या बोलते है terminals, अब देखे, मै अब ये जो arrow है, let me say मैं लिखता हूँ alpha tends to beta, इसको बोलता है production rule, क्या बोलता है production rule, मतलब alpha can be rewritten as beta, तो अगर आपके पास alpha है तो आपको इसको किस से replace कर सकते हैं beta से तो चाहे तो आप इसको sentential forms में मतलब एक के बाद एक representation बना सकते हैं या फिर tree से भी बता सकते हैं start symbol से अपने string generation तक पहुँचने का जो रास्ता है दोस्तों उसको बोलते है derivation हम बोलते है derivation जैसे for example अब मार लीजे इससे छोटा सा string बनाते हैं तो s में production यूज़ करता हूँ small a capital a और मान लीजिए इस एक production हमारे पास है ये क्या है नल या epsilon जिसको हम बोलते हैं एक और चिस देखेगा कि यह जितने भी है ना यह अलग-अलग प्रोडक्शन है यह बाद में समझेंगे यह अलग-अलग प्रोडक्शन को एक साथ लिखने का छोटा तरीका तो चॉइस है लेकिन अब साधे के साथ एक साथ चूज कर सकते हैं तो कैपिटल से आप सकते हैं तो आप चाहे तो इसको कैसे लिख सकते हैं ऐसे आपको मिलेगा स्मॉल ए कैपिटल ए और अगले केस में आप इसका मतलब इस grammar में सब्सक्राइब करें जो कि क्या मिला एक और आप चाहें तो इसको आगे भी बढ़ा सकते हैं, उसके बाद देखेंगे तो फिर दुबारा, माली जिये मैं A करके फिर Epsilon करता हूँ, तो क्या मिलेगा ABA, बस मैं General Idea भी डिस्कस कर रहा हूँ आपसे वो क् जिस तरह कोई आटोमेटा किसी स्ट्रिंग को एक्सटेप्ट कर सकता है, उसी तरह ये कुछ रूल्स और रेगुलेशन्स हैं, जहाँ पर start symbol, पहले symbol से start करके, production rules का इस्तमाल करके, आप कुछ स्ट्रिंग्स डिराइव कर सकते हैं, और जो स्ट्रिंग आप generate ये डिराइव करे सकते हैं जहां पर हम किससे स्टार्ट कर रहे हैं इससे इस बात को समझा भी जा सकता है ऐसे आप क्या बनाएंगे स्मॉल ए कैपिटल ए अब कैपिटल ए मिलने के बाद आप चाहे उससे ए बनाएं चाहे उससे बी बनाएं यह जब आगे हमें भी जाना तो मुझे क्या भी कर सकते हैं टर्मिनेट भी कर स Mathematically लिखा कैसे जा सकता है? जैसे यहाँ पर हमने define किया language को with the help of machine. मालिजे हम define करते हैं language को with the help of a grammar. तो मैं दुबारा बोलूंगा, अब मैं grammar की मदद से language define कर रहा हूँ. मेरी language में वो सारे string होंगे W. कैसे? पहले of course W किस से belong करना चाहिए? starting from start symbol S, टेकिंग एनी नंबर फ्रॉडक्शन अब एडज के ऊपर जब मैं लगा देता हूं स्टार वैसे डिफाइन्स एनी नंबर फ्रॉडक्शन कितने प्रोडक्शन रूल में यूज कर सकता हूं और मैं क्या बना कि आपको दिखाऊंगा डब्ली तो डब्ली इस ट्रैक्टर पा रहे हैं इसका मतलब आपकी जो ग्रामर है वह स्ट्रिंग को जनरेट करने की कैपिसिटी रखती है तो मैंने कहा बेसिक आइडिया दोस्तों आपको समझ आया होगा अजय को क्या basic concept है? Grammar है generator और machine है acceptor. अभी तक हमने mostly जो discussion किया था, वो machine पे किया था, तो grammar जो है, वो किसी भी language को represent करने के दूसरा तरीका हो सकता है, है ना? अगली वीडियो में दोस्तों हम बात करेंगे कि अगर कोई भी production लिखा है alpha to beta है ना, तो उसके क्या standard है, क्या rules है, start symbol, और अच्छे समझेंगे क्या होता है, production rules, terminal, non-terminal, basically किसी grammar को हम 4 tuples से define करते हैं, next वीडियो में बात करेंगे, और फिर सिखेंगे कि using production rules है ना, कॉम्स की है रेकी जहां पर प्रोडक्शन रूल्स का इस्तेमाल करके हम ग्रामर को चार टाइप में डिवाइड करते हैं जिसको बोलते हैं रेगुलर ग्रामर या टाइप जीवर से बात करता हूं टाइप जीवर टाइप टू टाइप थ्री तो तो मानिए कि हमने कोई नई बात सीखी है बस आपको समझाना चाहता कि जिस तरह किसी लैंग्वेज को मशीन की ठीक उसी तरह किसी भी language को grammar की मदद से भी define किया जा सकता है, जो उसको generate करता है, जैसे एक चोटा से example और समझ जी है, जैसे माली जी हमने discussion पहले कर चुके, माली जी regular language का, तो actually regular language की, जैसे हमने पहले भी बात की है, regular language का यह बोलने का कोई ज़्यादा, a language is said to be regular, if there exists a finite automata to accept it, तो आप language को देखे किस की टम में define करने हैं? machine की टम में कि साब फला machine अगर accept करेगी तो language क्या कहलाईगी? regular या अगर हम समझेंगे a language is said to be regular if there exists a regular grammar या type 3 grammar to generate it है ना? तो अब दूसरा तरीका समझेंगे कि grammar की मज़े से language को कैसे define किया जा सकता है तो कुछ production rules और कुछ patterns होते हैं और बहुत जल्दी हासर होता है अगली वीडियो के साथ, जहाँ पर हम grammar को mathematically समझेंगे, tuples क्या है, formal definition क्या है, और फिर समझेंगे कि Komsky hierarchy के अंदर grammar को हम कैसे further divide कर सकते हैं, तब तक के लिए धन्यवाद.