कंप्यूटर बीजगणित

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

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

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

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

प्रतीकात्मक गणना को भी, अतीत में, प्रतीकात्मक हेरफेर, बीजगणितीय हेरफेर, प्रतीकात्मक प्रसंस्करण, प्रतीकात्मक गणित, या प्रतीकात्मक बीजगणित के रूप में संदर्भित किया गया है, लेकिन ये शब्द, जो गैर-कम्प्यूटेशनल हेरफेर का भी उल्लेख करते हैं, अब कंप्यूटर के संदर्भ में उपयोग नहीं किए जाते हैं।बीजगणित।

वैज्ञानिक समुदाय
कोई सीखा समाज नहीं है जो कंप्यूटर बीजगणित के लिए विशिष्ट हो, लेकिन इस फ़ंक्शन को एसोसिएशन फॉर कम्प्यूटिंग मशीनरी के विशेष रुचि समूह द्वारा SIGSAM (विशेष रुचि समूह (विशेष रुचि समूह ( प्रतीकात्मक और बीजगणितीय हेरफेर पर)।

यहां कंप्यूटर बीजगणित पर कई वार्षिक सम्मेलन हैं, प्रीमियर ISSAC (प्रतीकात्मक और बीजगणितीय गणना पर अंतर्राष्ट्रीय संगोष्ठी) है, जो नियमित रूप से सिग्सम द्वारा प्रायोजित है।

यहां कंप्यूटर बीजगणित में विशेषज्ञता वाले कई पत्रिकाएँ हैं, जो शीर्ष एक जर्नल ऑफ प्रतीकात्मक संगणना है जो 1985 में ब्रूनो बुचबर्गर द्वारा स्थापित किया गया था। कई अन्य पत्रिकाएँ भी हैं जो नियमित रूप से कंप्यूटर बीजगणित में लेख प्रकाशित करती हैं।

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

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

प्रोग्रामिंग अंकगणितीय संचालन का एक कुशल कार्यान्वयन एक कठिन काम है।इसलिए, अधिकांश मुफ्त कंप्यूटर बीजगणित प्रणाली और कुछ वाणिज्यिक जैसे कि मैथेमेटिका और मेपल (सॉफ्टवेयर), जीएमपी लाइब्रेरी का उपयोग करते हैं, जो इस प्रकार एक वास्तविक मानक है।

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

यहां तक कि कार्यक्रमों को ऑपरेटर "प्रक्रिया" और, कम से कम, दो ऑपरेंड, मापदंडों और शरीर की सूची के साथ अभिव्यक्ति के रूप में माना जा सकता है, जो एक ऑपरेटर के रूप में "शरीर" के साथ एक अभिव्यक्ति है और ऑपरेंड के रूप में निर्देशों का एक अनुक्रम है।इसके विपरीत, किसी भी गणितीय अभिव्यक्ति को एक कार्यक्रम के रूप में देखा जा सकता है।उदाहरण के लिए, अभिव्यक्ति $f(x) = x⁄√x^{4} + 10x^{2} - 96x - 71$ इसके अलावा के लिए एक कार्यक्रम के रूप में देखा जा सकता है $a$ तथा $b$ मापदंडों के रूप में।इस कार्यक्रम को निष्पादित करने के लिए दिए गए मूल्यों के लिए अभिव्यक्ति का मूल्यांकन करना शामिल है $a$ तथा $b$;यदि उनके पास कोई मूल्य नहीं है - तो वे अनिश्चित हैं-, मूल्यांकन का परिणाम केवल इसका इनपुट है।

विलंबित मूल्यांकन की यह प्रक्रिया कंप्यूटर बीजगणित में मौलिक है।उदाहरण के लिए, समीकरणों का ऑपरेटर "=" भी है, अधिकांश कंप्यूटर बीजगणित प्रणालियों में, समानता परीक्षण के कार्यक्रम का नाम: आम तौर पर, एक समीकरण का मूल्यांकन एक समीकरण में होता है, लेकिन, जब एक समानता परीक्षण की आवश्यकता होती है, - या तो स्पष्ट रूप से उपयोगकर्ता द्वारा "एक बूलियन के मूल्यांकन" कमांड के माध्यम से, या किसी कार्यक्रम के अंदर एक परीक्षण के मामले में सिस्टम द्वारा स्वचालित रूप से शुरू किया गया है - फिर एक बूलियन 0 या 1 के मूल्यांकन को निष्पादित किया जाता है।

चूंकि एक अभिव्यक्ति के ऑपरेंड्स का आकार अप्रत्याशित है और एक कामकाजी सत्र के दौरान बदल सकता है, ऑपरेंड्स के अनुक्रम को आमतौर पर या तो पॉइंटर्स (जैसे मैकसिमा में) या हैश टेबल में प्रविष्टियों के अनुक्रम के रूप में दर्शाया जाता है (जैसे मेपल में)।

सरलीकरण
के संबंध में भेदभाव के बुनियादी नियमों का कच्चा अनुप्रयोग $a + b$ अभिव्यक्ति पर $$a^x$$ परिणाम देता है
 * $$ x\cdot a^{x-1}\cdot 0 + a^x\cdot \left (1\cdot \log a + x\cdot \frac{0}{a} \right).$$ इस तरह की एक जटिल अभिव्यक्ति स्पष्ट रूप से स्वीकार्य नहीं है, और सामान्य अभिव्यक्तियों के साथ काम करने के लिए सरलीकरण की एक प्रक्रिया की आवश्यकता होती है।

यह सरलीकरण आम तौर पर पुनर्लेखन नियमों के माध्यम से किया जाता है। पुनर्लेखन नियमों के कई वर्ग हैं जिन पर विचार किया जाना है।सबसे सरल पुनर्लेखन नियमों में होता है जो हमेशा अभिव्यक्ति के आकार को कम करते हैं, जैसे $x$ या $E &minus; E → 0$।वे कंप्यूटर बीजगणित प्रणालियों में व्यवस्थित रूप से लागू होते हैं।

पहली कठिनाई जोड़ और गुणन जैसे साहचर्य संचालन के साथ होती है।एसोसिएटिविटी से निपटने का मानक तरीका यह है कि इसके अलावा और गुणन में एक मनमानी संख्या है, जो कि है $sin(0) → 0$ के रूप में प्रतिनिधित्व किया जाता है $a + b + c$।इस प्रकार $"+"(a, b, c)$ तथा $a + (b + c)$ दोनों को सरल बनाया गया है $(a + b) + c$, जो प्रदर्शित होता है $"+"(a, b, c)$।व्हाट अबाउट $a + b + c$?इस समस्या से निपटने के लिए, सबसे सरल तरीका व्यवस्थित रूप से फिर से लिखना है $a &minus; b + c$, $&minus;E$, $E &minus; F$ के रूप में, क्रमशः, $E/F$, $(&minus;1)⋅E$, $E + (&minus;1)⋅F$। दूसरे शब्दों में, अभिव्यक्तियों के आंतरिक प्रतिनिधित्व में, संख्याओं के प्रतिनिधित्व के बाहर न तो कोई घटाव है और न ही विभाजन और न ही माइनस है।

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

कुछ पुनर्लेखन नियम कभी -कभी बढ़ते हैं और कभी -कभी उन अभिव्यक्तियों के आकार को कम करते हैं जिन पर उन्हें लागू किया जाता है। यह वितरण या त्रिकोणमितीय पहचान का मामला है#उत्पाद-से-राशि और योग-से-उत्पाद पहचान | त्रिकोणमितीय पहचान। उदाहरण के लिए, वितरण कानून पुनर्लेखन की अनुमति देता है $$(x+1)^4 \rightarrow x^4+4x^3+6x^2+4x+1$$ तथा $$(x-1)(x^4+x^3+x^2+x+1) \rightarrow x^5-1.$$ चूंकि इस तरह के एक पुनर्लेखन नियम को लागू करने या न करने का एक अच्छा सामान्य विकल्प बनाने का कोई तरीका नहीं है, ऐसे पुनर्लेखन केवल तभी किए जाते हैं जब उपयोगकर्ता द्वारा स्पष्ट रूप से पूछा जाता है।वितरण के लिए, इस पुनर्लेखन नियम को लागू करने वाले कंप्यूटर फ़ंक्शन को आमतौर पर विस्तार कहा जाता है।रिवर्स रिवाइटिंग नियम, जिसे फैक्टर कहा जाता है, को एक गैर-तुच्छ एल्गोरिथ्म की आवश्यकता होती है, जो इस प्रकार कंप्यूटर बीजगणित प्रणालियों में एक महत्वपूर्ण कार्य है (बहुपद कारक देखें)।

गणितीय पहलू
इस खंड में हम कुछ मौलिक गणितीय प्रश्नों पर विचार करते हैं जो जैसे ही कोई कंप्यूटर में गणितीय अभिव्यक्तियों में हेरफेर करना चाहता है।हम मुख्य रूप से बहुभिन्नरूपी तर्कसंगत अंशों के मामले पर विचार करते हैं।यह एक वास्तविक प्रतिबंध नहीं है, क्योंकि, जैसे ही एक अभिव्यक्ति में दिखाई देने वाले तर्कहीन कार्यों को सरल बनाया जाता है, उन्हें आमतौर पर नए अनिश्चितता के रूप में माना जाता है।उदाहरण के लिए,
 * $$(\sin(x+y)^2+ \log(z^2-5))^3$$ में एक बहुपद के रूप में देखा जाता है $$\sin(x+y)$$ तथा $$\log(z^2-5)$$

समानता
गणितीय अभिव्यक्तियों के लिए समानता की दो धारणाएं हैं।वाक्यविन्यास समानता उन अभिव्यक्तियों की समानता है जिसका अर्थ है कि वे उसी तरह से लिखे गए हैं (या कंप्यूटर में प्रतिनिधित्व करते हैं)।तुच्छ होने के नाते, वाक्यविन्यास समानता को शायद ही कभी गणितज्ञों द्वारा माना जाता है, हालांकि यह एकमात्र समानता है जो एक कार्यक्रम के साथ परीक्षण करना आसान है। शब्दार्थ समानता  तब होती है जब दो भाव एक ही गणितीय वस्तु का प्रतिनिधित्व करते हैं, जैसे
 * $$ (x+y)^2=x^2+2xy+y^2.$$

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

विशिष्ट एल्गोरिदम को डिजाइन करने के बजाय, दो अभिव्यक्तियों की समानता का परीक्षण करने के लिए, कुछ कैनोनिकल रूप में अभिव्यक्तियों को रखना या उनके अंतर को सामान्य रूप में रखना, और परिणाम के वाक्यविन्यास समानता का परीक्षण करना सामान्य है।

सामान्य गणित के विपरीत, कैनोनिकल फॉर्म और सामान्य रूप कंप्यूटर बीजगणित में पर्यायवाची नहीं हैं। एक विहित रूप ऐसा होता है कि कैनोनिकल रूप में दो अभिव्यक्तियाँ शब्दार्थी रूप से समान होती हैं यदि और केवल अगर वे वाक्यविन्यास रूप से समान हैं, जबकि एक सामान्य रूप ऐसा है कि सामान्य रूप में एक अभिव्यक्ति शब्दार्थी रूप से शून्य है, तो यह तभी शून्य है जब यह वाक्यात्मक रूप से शून्य है।दूसरे शब्दों में, शून्य का सामान्य रूप में अभिव्यक्तियों द्वारा एक अद्वितीय प्रतिनिधित्व है।

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

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

यह भी देखें

 * स्वचालित प्रमेय समर्थक
 * कंप्यूटर-असिस्टेड प्रूफ
 * कम्प्यूटेशनल बीजीय ज्यामिति
 * कंप्यूटर बीजगणित प्रणाली
 * प्रूफ चेकर
 * मॉडल चेकर
 * प्रतीकात्मक-प्रतिष्ठित गणना
 * प्रतीकात्मक सिमुलेशन
 * प्रतीकात्मक कृत्रिम बुद्धिमत्ता

अग्रिम पठन
For a detailed definition of the subject: For textbooks devoted to the subject:
 * Symbolic Computation (An Editorial), Bruno Buchberger, Journal of Symbolic Computation (1985) 1, pp. 1–6.