एक गतिशील रूप से अद्यतन इनपुट पर एक बहुपद के मूल्य को बनाए रखना


10

चलो P(x1,x2,,xn) एक निश्चित परिमित क्षेत्र पर एक बहुपद हो। मान लीजिए हम का मूल्य दिया जाता है कुछ वेक्टर पर और वेक्टर ।y { 0 , 1 } n yPy{0,1}ny

अब हम के मान को एक वेक्टर पर गणना करना चाहते हैं, जैसे कि और बिल्कुल एक स्थिति पर भिन्न होते हैं (दूसरे शब्दों में, हम में बिल्कुल एक बिट फ्लिप करते हैं )। इस समस्या के लिए स्पेस और टाइम ट्रेड-ऑफ क्या हैं?वाई '{ 0 , 1 } एन वाई वाई ' yPy{0,1}nyyy

उदाहरण के लिए, यदि , में मोनोमियल की संख्या है , तो हम गुणांक और के सभी मोनोमियल के मूल्यों को संग्रहीत कर सकते हैं । यदि फ़्लिप किया जाता है, तो हम संग्रहीत जानकारी का उपयोग करके प्रत्येक युक्त और फिर के मान को ठीक करते हैं। कुल मिलाकर, हमें समय और स्थान की आवश्यकता है।P P y irPPyiyiP(y)O(r)

(मैं कैसे हम युक्त एकपदीयों की पहचान के बारे में कुछ भी कहना नहीं प्रयोजन के लिए। आप के किसी भी उचित प्रतिनिधित्व चुन सकते हैं , उदाहरण में मुझे लगता है कि हम युक्त एकपदीयों की एक सूची संग्रहीत प्रत्येक के लिए ।)yiPyii

क्या इससे बेहतर कुछ है?

जवाबों:


7

आपका विचार निम्नानुसार सामान्य करता है: एक बीजगणितीय सर्किट (परिमित क्षेत्र के ऊपर) या बूलियन सर्किट (अपने परिमित क्षेत्र तत्वों के बिट-वार प्रतिनिधित्व का आकलन) कंप्यूटिंग , फिर सर्किट में प्रत्येक गेट पर मूल्य बनाए रखें। जब आप y के i -th को बदलते हैं , तो बस उस परिवर्तन को सर्किट के DAG के साथ प्रचारित करें, जो इनपुट y i से शुरू होता है । यदि सर्किट का आकार s है , तो O ( s ) का समय और स्थान लगता है। यह मोनोमियल की संख्या की तुलना में बहुत छोटा हो सकता है (जो कि गहराई 2 के बीजीय सर्किट के आकार से मेल खाती है)।PiyyisO(s)


1
मुझे यकीन नहीं है कि यह जानबूझकर था, लेकिन समस्या यह नहीं कहती है कि हम , बस f ( y ) दिए गए हैं । yf(y)
एंड्रयू मॉर्गन

1
@AndrewMorgan आपके आवेदन पर निर्भर करता है, मेरे लिए यह मान लेना ठीक है कि y दिया गया है। टिप्पणी के लिए धन्यवाद!
तातियाना Starikovskaya

2
@AndrewMorgan: वास्तव में, जब यह तकनीकी रूप से सच है, तो जिस तरह से OQ में उदाहरण निर्माण किया गया था, ऐसा लगता था कि यह माना जाता है कि दिया गया है। यदि y नहीं दिया गया है, तो मुझे लगता है कि यह समस्या बहुत कठिन हो गई है । (तातियाना, यह सवाल के स्पष्टीकरण के रूप में इसे जोड़ने के लायक हो सकता है।)yy
जोशुआ ग्रूचो

5

अपने मोनोमियल-स्टोरिंग दृष्टिकोण को संशोधित करना आसान है ताकि प्रत्येक अपडेट में बदले हुए मोनोमियल की संख्या के लिए केवल आनुपातिक समय हो: बस नए मूल्य को जोड़ने और प्रत्येक बदले हुए मोनोमियल के लिए पुराने मूल्य को घटाकर कुल बहुपद मूल्य को अपडेट करें।

यदि आपके पास लिए एक बार पढ़ने का सूत्र है (यानी हर चर सूत्र वृक्ष के एक पत्ते पर दिखाई देता है, और प्रत्येक आंतरिक नोड दो-इनपुट अंकगणितीय ऑपरेशन जैसे प्लस या समय है) तो आप लघुगणक में पी के मूल्य को बनाए रख सकते हैं सूत्र पर रेक-कंप्रेस ट्री का उपयोग करके प्रति अपडेट समय । इस दृष्टिकोण को एक मनमाना सूत्र में लागू करने के लिए, एक चर जिसे k समय दिखाई देता है, अपडेट करने का समय O ( k log N ) होगा जहां N सूत्र आकार है। तो लॉग फैक्टर को छोड़कर यह बदले हुए मोनोमियल की संख्या के लिए बाध्य को सामान्य करता है, और बहुपद के एक सूत्र में अधिक सामान्य प्रकार के विस्तार पर लागू होता है।PPkO(klogN)N

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.