तर्क सीखने और तर्क सीखने का कारण


14

मैं इस महत्व को समझ सकता हूं कि कंप्यूटर वैज्ञानिकों या किसी सॉफ्टवेयर डेवलपमेंट से संबंधित इंजीनियरों को आधार के रूप में बुनियादी लॉजिक्स के अध्ययन को समझना चाहिए था।

लेकिन क्या ऐसे कोई कार्य / रोजगार हैं जिनके बारे में स्पष्ट रूप से ज्ञान की आवश्यकता है, उन कार्यों के अलावा जिन्हें किसी भी प्रकार के ज्ञान प्रतिनिधित्व की आवश्यकता है Knowledge Base? मैं वैचारिक प्रतिक्रियाओं के बजाय कार्यों के प्रकार सुनना चाहता हूं।

मैं यह पूछने का कारण सिर्फ अपनी जिज्ञासा से हूं। जबकि सीएस छात्रों को इस विषय पर कुछ समय बिताना पड़ता है, कुछ व्यावहारिकता-गहन पाठ्यक्रम (जैसे एआई-क्लास ) ने इस विषय को पूरी तरह से छोड़ दिया है। और मुझे आश्चर्य है कि उदाहरण जानने के predicate logicलिए ड्राइंग में मदद ER diagramमिल सकती है लेकिन आवश्यकता नहीं हो सकती है।


अपडेट 5/27/2012) उत्तर के लिए धन्यवाद। अब मुझे लगता है कि मैं पूरी तरह logicसे सीएस के महत्व और इसके विशाल आवेदन के साथ सहमत हूं । मैंने अभी-अभी Windowsनीले रंग के स्क्रीन इश्यू के लिए जो इंप्रूवमेंट किया है, उससे मुझे सबसे अच्छा जवाब मिला ।


4
जैसा कि मैं अपना उत्तर लिख रहा था, मैंने पाया कि आपके प्रश्न का दायरा अस्पष्ट है। क्या आप अपने आप को सीएस, या उद्योग, या दोनों, या शायद सामान्य रूप से उठा रहे हैं?
डेव क्लार्क

@ क्लार्क हाँ, मैंने पाया कि पर्याप्त भी स्पष्ट नहीं है। पहली बात जो मैं जानना चाहता था कि कौन से उद्योग में विशिष्ट तर्क की साक्षरता की आवश्यकता है (हालांकि, मैं आपकी प्रतिक्रिया की सराहना करता हूं बस खुद को समझाने के लिए कि किसी भी सॉफ्टवेयर से संबंधित इंजीनियरों को इस विषय को नहीं छोड़ना चाहिए)।
इसहाक

यह अच्छा होगा यदि आप अपने प्रश्न को पकड़ने के लिए बदल सकते हैं जो आप वास्तव में देख रहे हैं।
डेव क्लार्क

ifप्रपोजल लॉजिक के बिना कोई शर्त कैसे लिखेगा ?
eda-qa mort-ora-y

जवाबों:


22

मुझे यूनिफिकेशन और इससे संबंधित कुछ भी पसंद है। यदि आप तर्क और विधेय तर्क को नहीं जानते हैं, तो आप तर्क की मूल बातें छोड़ रहे हैं। अगर आपको सूचीबद्ध किसी भी चीज़ में रुचि है , तो यह गणित में रुचि रखने और जोड़-घटाव और गुणा करने जैसा होगा। तर्क सिर्फ एआई के लिए नहीं है।

व्यावहारिक उत्तर के रूप में, इंटेल फ़्लोटिंग पॉइंट समस्या को याद रखें और आप उन्हें कभी कैसे नहीं देख पाएंगे? प्रमेय के उपयोग के लिए धन्यवाद साबित करता है कि वे अतीत की बात हैं। मौत की माइक्रोसॉफ्ट ब्लू स्क्रीन याद रखें । सैट सॉल्वर्स, मॉडल की जाँच और अन्य तर्क आधारित समाधान के लिए धन्यवाद, वे एक लुप्तप्राय प्रजाति हैं।


3
लुप्तप्राय प्रजातियाँ [उद्धरण नी- विभाजन दोष मूल फेंका।
जेफई

@ जेफ यदि आप एक प्रशस्ति पत्र की तलाश में हैं, तो मैं इसके बजाय वास्तविक प्रमाण प्रस्तुत करता हूं। आखिरी बार आपने कब देखा था? :)
गाय कोडर

3
मैंने कभी नहीं देखा। मैं एक मैक का उपयोग करें।
जेफ

1
@ जेफ मैक के क्लोज-कपल्ड सिस्टम हैं, जहां मशीन आर्किटेक्चर से लेकर एप्लिकेशन प्रोग्राम तक सब कुछ एक टीम / संगठन द्वारा तय किया जाता है। विंडोज सिस्टम खुले हैं, जहां कई निर्माता और टीम समाधान प्रदान करते हैं जो एक साथ प्लग करते हैं, केवल उन मानकों और इंटरफेस पर भरोसा करते हैं जो निर्दिष्ट किए गए हैं (अक्सर शिथिल और अस्पष्ट)। वे कंप्यूटर विज्ञान के लिए बहुत अधिक चुनौती हैं। Microsoft टीमों ने ऐसा करने के लिए प्रमेय साबित करने / स्थैतिक विश्लेषण तकनीक विकसित करने के लिए हमारे क्षेत्र में मौलिक प्रगति की है।
उदय रेड्डी

1
@UdayReddy: मुझे संदेह नहीं है कि Microsoft शोधकर्ताओं ने मौलिक प्रगति की है, या यह कि बीएसओडी पहले की तुलना में बहुत कम आम है। लेकिन "लुप्तप्राय प्रजातियां" असमर्थित हाइपरबोले हैं; दोषपूर्ण कोड क्रैश का एकमात्र स्रोत नहीं है।
जेफई

22

तर्क और कंप्यूटर विज्ञान के बीच बहुत गहरे और व्यापक संबंध हैं। यह समझने में कि वे क्या हो सकते हैं, ध्यान रखें कि कंप्यूटर विज्ञान को "सूचना प्रौद्योगिकी" या "सूचना विज्ञान" भी कहा जाता है, जिसका अर्थ है कि कंप्यूटर सिस्टम जानकारी को पकड़ना, संसाधित करना और वितरित करना है। खैर, तर्क एक ऐसी ही बात है। यह अध्ययन करता है कि सूचनाओं को वाक्यों में कैसे कैद किया जाता है और एक कथन का दूसरे के परिणाम के लिए कैसे संभव है , अर्थात, इसकी सूचना सामग्री पहले से ही दूसरे कथन (या कथनों का संग्रह) में मौजूद है। उस अर्थ में, तर्क और कंप्यूटर विज्ञान अनिवार्य रूप से समान हैंअनुशासन, विभिन्न पहलुओं पर ध्यान केंद्रित करना। तर्कशास्त्रियों (चर्च, क्लेने, ट्यूरिंग, पोस्ट और उनके छात्रों और सहकर्मियों) ने कंप्यूटर विज्ञान का अनुशासन बनाया, और कई तर्कशास्त्रियों ने कंप्यूटर विज्ञान में योगदान देना जारी रखा, विशेष रूप से जीन-यवेस गिरार्ड और उनके छात्रों ने।

कंप्यूटर विज्ञान में तर्क के कुछ मानक अनुप्रयोग इस प्रकार हैं:

  • डिजिटल सर्किट का डिज़ाइन पूरी तरह से प्रस्ताव तर्क पर आधारित है, इतना है कि इसके इंजीनियर इसे "सर्किट डिज़ाइन" के बजाय "लॉजिक डिज़ाइन" कहते हैं। यहां तक ​​कि एक कंप्यूटर प्रोग्राम लिखना भी अक्सर अपने "तर्क" को तैयार करना शामिल होता है। (ध्यान दें कि बाद के अर्थ में "तर्क" औपचारिक तर्क के बजाय एक अनौपचारिक विचार है, जिसका उपयोग कार्यक्रम के माध्यम से जानकारी पर प्रवाह को संदर्भित करने के लिए किया जाता है और क्या इसे सही तरीके से संसाधित किया जा रहा है।)

  • विधेय तर्क और उसके गणितीय चचेरे भाई, सेट सिद्धांत, का उपयोग विभिन्न कंप्यूटिंग भाषाओं में किया जाता है , उदाहरण के लिए, रिलेशनल डेटाबेस प्रश्नों के लिए भाषा एसक्यूएल। लॉजिक पर आधारित प्रोग्रामिंग लैंग्वेज भी हैं, जिन्हें "लॉजिक प्रोग्रामिंग लैंग्वेज" कहा जाता है।

  • ज्ञान प्रतिनिधित्व , जिसका आपने पहले ही उल्लेख किया है, तर्क के आधार पर कई औपचारिकताएं हैं। यहां तक ​​कि अगर यह गैर-तार्किक औपचारिकताओं का उपयोग करता है, तो उनमें से कई अभी भी एक तार्किक अर्थ है , और इसलिए तर्क पर आधारित हैं।

  • संभाव्य तर्क, जहां बयानों में केवल सही / गलत मूल्य नहीं होते हैं, लेकिन निश्चितता / अनिश्चितता के स्तर, तेजी से सीखने की प्रणाली की नींव रखते हैं

  • यदि आप औपचारिक रूप से यह बताना चाहते हैं कि कोई प्रोग्राम क्या करता है, अर्थात, प्रोग्राम स्पेसिफिकेशन देने पर , आप किसी तार्किक भाषा के कुछ रूप का उपयोग करके समाप्त हो जाएंगे। दरअसल, जेड और बी जैसी कई कार्यक्रम विनिर्देश भाषाएं हैं, जो विधेय तर्क और सेट सिद्धांत पर आधारित हैं। लर्स्च जैसे तार्किक तर्क पर आधारित विनिर्देश भाषाएं भी हैं। कंप्यूटर वैज्ञानिक अक्सर कंप्यूटर विज्ञान की आवश्यकताओं का प्रतिनिधित्व करने के लिए नए लॉजिक्स का आविष्कार करते हैं, जैसे, होरे लॉजिक और सेपरेशन लॉजिक, या वे पारंपरिक लॉजिक्स के विभिन्न अप्रयुक्त रूपों जैसे अस्थायी तर्क और मोडल लॉजिक को उठाते हैं और विकसित करते हैं, और उन्हें आगे विकसित करते हैं।

  • यदि आप यह सत्यापित करना चाहते हैं कि क्या कोई प्रोग्राम वह करता है जो उसे करना चाहिए, तो आप न केवल तर्क की भाषा का उपयोग करते हैं, बल्कि तर्क की पूरी मशीनरी : प्रमाण सिद्धांत, मॉडल सिद्धांत और निर्णय प्रक्रियाएं। सत्यापन तकनीक अब छलांग और सीमा से बढ़ रही है और मुझे उम्मीद है कि, एक और दशक में, वे लगभग सभी सॉफ्टवेयर विकास के लिए नियमित रूप से उपयोग किए जाएंगे।

वास्तव में, तर्क और कंप्यूटर विज्ञान के बीच संबंध इतने गहरे और व्यापक हैं कि मैं कहूंगा कि तर्क की गहन समझ के बिना एक अच्छा कंप्यूटर वैज्ञानिक बनना कठिन है।

इस समय एआई के कुछ वैज्ञानिक तर्क देते हैं कि एआई के कुछ शुरुआती डेवलपर्स ने ऑफ-द-शेल्फ तर्क को एक उपकरण के रूप में प्रस्तावित किया थानींव के बजाय। एआई, अपने स्वभाव से, जादू देने का वादा करता है। परिणाम देने के लिए हमें प्रोग्रामिंग सिस्टम का कठिन काम नहीं करना है। वे अपने आप यह पता लगाने में सक्षम होंगे कि समाधान कैसे उत्पन्न किया जाए क्योंकि वे "बुद्धिमान" होंगे। लॉजिक उस रास्ते को इंगित करता था क्योंकि अगर कंप्यूटर सिस्टम तर्क को समझते थे और तर्क के नियमों का उपयोग करके जानकारी को संसाधित करना जानते थे, तो वे जादू देने में सक्षम होंगे। तर्क में इस तरह की आस्था थी, पूर्वव्यापी में, गलत तरीके से। पहली बार में, ऑफ-द-शेल्फ तर्क एक ही समय में बहुत मजबूत और बहुत कमजोर है। यह इस अर्थ में बहुत मजबूत है कि प्रभावी प्रक्रियाओं को तैयार करने के लिए तर्क के नियम बहुत सामान्य हैं। यह बहुत कमजोर भी है क्योंकि यह गणित की जरूरतों के लिए गणितज्ञों द्वारा तैयार किया गया तर्क है और यह नहीं है ' टी को वास्तविक दुनिया की कई प्रकार की सूचनाओं से निपटने के लिए आवश्यक शब्दावली है जो एआई सिस्टम को संभालना चाहिए (जैसे कि अनिश्चितता, प्रासंगिक जानकारी जैसे समय, परिवर्तन, ज्ञान, एजेंसी और आगे)। इसलिए, एआई वर्तमान में तर्क के खिलाफ बैकलैश से गुजर रहा है। लेकिन मुझे लगता है कि, जब वे उस बैकलैश पर पहुंच जाते हैं, तो एआई वैज्ञानिकों को एहसास होगा कि सभी नए तरीके अभी भी आधारित हैंतर्क, मोटे तौर पर संकुचित


संबंधपरक डेटाबेस जोड़ें!
रीइनरईयरपोस्ट 18

बहुत अच्छा और पूर्ण उत्तर, जीन-यवेस गिरार्ड का उल्लेख। क्या आप प्रोबेबिलिस्टिक लॉजिक को फ़ज़ी लॉजिक के समान शोध क्षेत्र मानते हैं? साहित्य में हम दो कार्यकालों को पूरा करते हैं और मैं जानना चाहूंगा कि क्या वे एक ही शोध डोमेन को दर्शाते हैं।
ज़र्गल

@zurgl। मेरी समझ यह है कि कोई एक औपचारिकता नहीं है जिसे दृढ़ता से "संभाव्य तर्क" कहा जाता है। फजी लॉजिक वास्तव में एक ऐसी औपचारिकता है, लेकिन अन्य भी हैं। संभाव्य तर्क का वह रूप जो आज कृत्रिम बुद्धिमत्ता में सबसे सफल है, बायेसियन इंट्रेंस है। हालांकि, इसकी तार्किक नींव अभी तक मजबूती से नहीं रखी गई है।
उदय रेड्डी

17

तर्क सभी सैद्धांतिक कंप्यूटर विज्ञान के लिए मौलिक है। इन्हें सीखे बिना, आप प्रोग्रामिंग लैंग्वेज शब्दार्थ, ट्यूरिंग मशीन, लॉजिक प्रोग्रामिंग, कम्प्यूटेबिलिटी इत्यादि को ठीक से समझ नहीं पाएंगे। यहां तक ​​कि आपके कार्यक्रमों के बारे में तर्क देना इसके बिना अधिक कठिन होगा। निश्चित रूप से, असंभव होने के साथ कुछ सीएस अवधारणा का गणितीय प्रमाण करने की कोशिश कर रहा है।

या शायद आप उद्योग में उपयोग के बारे में पूछ रहे हैं। सीखने का तर्क स्पष्ट रूप से सीखने का आधार बनता है और अन्य लोगों के तर्कों में छेद देखता है। तर्क मौलिक है, चाहे आप औपचारिक प्रतीकों का उपयोग करें या नहीं।


आप एल्गोरिदम याद कर रहे हैं।
युवल फिल्मस

4
वह 'वगैरह' में शामिल है।
डेव क्लार्क

9

दोहराए जाने वाले कार्यों में से एक सीएस चिकित्सकों और सिद्धांतकारों का चेहरा अपने कोड की शुद्धता पर विश्वास प्राप्त कर रहा है।

दो मुख्य दृष्टिकोण हैं:

  1. प्रमाण: एक तार्किक प्रमाण तैयार करें कि एक प्रणाली के हिस्से में कुछ गुण होते हैं, संभवतः पूर्ववर्ती, डिज़ाइन-बाय-कॉन्ट्रैक्ट, कोड चेकर्स द्वारा सहायता प्राप्त।
  2. परीक्षण: परीक्षण करें कि कुछ संपत्तियां विभिन्न प्रकार के आदानों के लिए रखती हैं और फिर संकेत करती हैं कि संपत्ति अन्य आदानों के लिए है।

तार्किक तरीकों पर आधारित पहला, अक्सर एकमात्र विकल्प होता है जब

  1. कोई विशिष्ट इनपुट नहीं है। उदाहरण के लिए, जब सुरक्षा गुणों का परीक्षण होता है, तो यह एटिपिकल इनपुट्स होते हैं, जिनके बारे में आपको तब तक चिंता होती है जब तक कि आप तार्किक रूप से यह नहीं बता सकते कि कौन से इनपुट एटिपिकल हैं, आपको अच्छा कवरेज मिलने की संभावना नहीं है।
  2. कॉन्फ़िगरेशन स्थान बहुत बड़ा है, इसलिए आपको इसे तार्किक रूप से तर्क के द्वारा भागों में विघटित करना होगा कि कौन से हिस्से प्रभावित हो सकते हैं कि स्थानीय रूप से परीक्षण के बाद कौन से अन्य हिस्से प्रभावित हो सकते हैं।
  3. आपके पास केवल दस्तावेज़ हैं जो आपके नियंत्रण के बाहर सिस्टम के किनारे-केस व्यवहार का वर्णन करते हैं। आप उन्हें अनुकरण करने में सक्षम हो सकते हैं, लेकिन बाहरी निर्भरता विफल होने पर क्या हो सकता है इसका परीक्षण नहीं कर सकते क्योंकि आप इसे कानूनी या नैतिक कारणों से विफल करने में सक्षम नहीं हैं।

प्रमाण के अभाव में अनुभवजन्य परीक्षण मूल रूप से प्रमाण का विकल्प है। जब आप परीक्षण योग्य होने के लिए सिस्टम डिज़ाइन कर रहे होते हैं, तो आप एक प्रूफ स्केच का निर्माण कर रहे होते हैं, जहाँ आप "टेस्ट एक्स, वाई और जेड के साथ प्रूफ के कुछ हिस्सों को भरते हैं।" तार्किक रूप से तर्क करने की क्षमता एक परीक्षण योग्य प्रणाली को तैयार करने में सक्षम होने के लिए आवश्यक है। यदि प्रणाली परीक्षण योग्य या सिद्ध नहीं है, तो इसके डिजाइनर / वास्तुकार के पास यह कहने के लिए कोई व्यवसाय नहीं है कि यह अपने इच्छित उपयोग के लिए उपयुक्त है।


6

महत्वपूर्ण भूमिका निभाने वाले दो सबसे महत्वपूर्ण क्षेत्र हैं:

  1. औपचारिक भाषा विनिर्देश और सत्यापन
  2. निश्चित पैरामीटर ट्रैक्टेबल कक्षाएं

Z

संक्षेप में: 1. भाषा की परिभाषा के लिए तर्क की आवश्यकता है, 2: न्याय की प्रक्रिया के लिए तर्क की आवश्यकता है, 3. सत्यापन की प्रक्रियाओं के लिए तर्क की आवश्यकता है।

मुझे यह उल्लेख करना चाहिए कि यह संकलक डिजाइन से अलग है या ..., यह भाषाओं की "औपचारिक" परिभाषा है, ऐसा करने का मुख्य कारण भाषा या मॉडल की शुद्धता साबित हो रहा है, जिसका औपचारिक प्रमाण भी है। इसका उपयोग सॉफ़्टवेयर मॉडल के सत्यापन में किया जा सकता है, लागू करने से पहले त्रुटियों को खोजने, लागू करने से पहले फिर से गतिरोध का पता लगाना, ...., सॉफ़्टवेयर के लिए जो इसे अनुकरण करते हैं आप NModel पर एक नज़र डाल सकते हैं

अब क्यों फिक्स्ड पैरामीटर ट्रैक्टेबल समस्याओं में आपको तर्क के साथ काम करने की आवश्यकता है, आप फिक्स्ड पैरामीटर ट्रैक्टेबिलिटी की कक्षाओं को तर्क के विभिन्न स्तरों के साथ विभाजित कर सकते हैं, उन्हें एक दूसरे में परिवर्तित किया जा सकता है: तर्क ऑटोमेटा, ऑटोमेटा से ग्राफ, और इसके विपरीत, लेकिन यदि आप तर्क में एक विशेषज्ञ हो सकते हैं, आप उन्हें विभाजित कर सकते हैं और उन पर निर्णय ले सकते हैं, सबसे महत्वपूर्ण प्रमेय ( रॉबर्टसन और सीमोर प्रमेय के बाद ), इस क्षेत्र में कौरसल की प्रमेय है । अधिक जानकारी के लिए मेटा एलगोरिदमिक प्रमेय सर्वेक्षण पढ़ें ।


जबकि भाषाओं को परिभाषित करने के लिए लॉजिक्स का उपयोग किया जा सकता है, यह मेरे अनुभव में शायद ही "महत्वपूर्ण भूमिका" है। मैं यह नहीं देखता हूं कि लॉजिक्स FPT से कैसे संबंधित हैं।
राफेल

@ राफेल, मुझे लगता है कि आपकी टिप्पणी का उत्तर एक पंक्ति से अधिक लगता है, मैंने अपना उत्तर अपडेट कर दिया है। मुझे लगता है कि मैंने आपको उत्तर दिया है, लेकिन यदि आप अभी भी सोचते हैं कि यह ठीक नहीं है, तो मुझे बताएं, मेरे "औपचारिक" भाग के बारे में मुझे लगता है कि मेरा पहला विकि लिंक पर्याप्त अच्छा नहीं था, मैंने अधिक जानकारी जोड़ी, दूसरे भाग के लिए भी मैंने एक अच्छा पेपर जोड़ा और यदि आप इसके बारे में अधिक जानना चाहते हैं, तो आप इसे पढ़ सकते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.