Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में आइंस्टीन सममिति संकेत के लिए न्यूनतम लागत संकुचन क्रम का मूल्यांकन करें

परिचय

पायथन में आइंस्टीन सममिति (einsum) अभिव्यक्ति के लिए न्यूनतम लागत संकुचन क्रम प्राप्त करने के लिए, numpy.einsum_path() विधि का उपयोग करें। यह विधि इष्टतम संकुचन पथ लौटाती है जो गणना लागत को कम करता है।

पैरामीटर्स

  • subscripts: सममिति के लिए सबस्क्रिप्ट निर्दिष्ट करता है।
  • operands: संक्रिया के लिए सरणियाँ।
  • optimize: अनुकूलन रणनीति ('greedy', 'optimal', आदि)।

चरण-दर-चरण उदाहरण

आवश्यक लाइब्रेरी आयात करें

import numpy as np

टेंसर बनाएं

p = np.random.rand(2, 2)
q = np.random.rand(2, 5)
r = np.random.rand(5, 2)

न्यूनतम लागत संकुचन क्रम प्राप्त करें

path_info = np.einsum_path('ij,jk,kl->il', p, q, r, optimize='greedy')

पथ जानकारी प्रदर्शित करें

print(path_info[0])  # संकुचन क्रम
print(path_info[1])  # विस्तृत पथ जानकारी

पूर्ण कोड उदाहरण

import numpy as np

np.random.seed(123)  # पुनरुत्पादन के लिए

# टेंसर बनाएं
p = np.random.rand(2, 2)
q = np.random.rand(2, 5)
r = np.random.rand(5, 2)

# न्यूनतम लागत संकुचन क्रम प्राप्त करें
path_info = np.einsum_path('ij,jk,kl->il', p, q, r, optimize='greedy')

# पथ जानकारी प्रदर्शित करें
print(path_info[0])
print(path_info[1])

आउटपुट

['einsum_path', (1, 2), (0, 1)]
Complete contraction: ij,jk,kl->il
    Naive scaling: 4
    Optimized scaling: 3
    Naive FLOP count: 1.200e+02
    Optimized FLOP count: 5.700e+01
    Theoretical speedup: 2.105
    Largest intermediate: 4.000e+00 elements
--------------------------------------------------------------------------
scaling        current        remaining
--------------------------------------------------------------------------
   3              kl,jk->jl     ij,jl->il
   3              jl,ij->il     il->il

व्याख्या: आउटपुट दर्शाता है कि इष्टतम क्रम पहले q और r (सूचकांक 1,2) को संकुचित करना है, फिर परिणाम को p (सूचकांक 0) के साथ संकुचित करना है। इससे FLOP काउंट 120 से घटकर 57 हो जाता है (2.1× तेज़)।

  1. पायथन प्रोग्राम: न्यूनतम लागत पथ पायथन प्रोग्राम: न्यूनतम लागत पथ

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लागत मैट्रिक्स और एक स्थिति (m, n) दी गई है, हमें (0, 0) से (m, n) तक पहुंचने के लिए न्यूनतम लागत पथ की लागत ज्ञात करनी है। प्रत्येक सेल एक सेल से दूसरे सेल तक पार करने की लागत को दर्शाता है। उदाहरण # डायनामिक दृष्टिकोण R =

  1. - पायथन में बैलेंस्ड पैरेंथेसेस की जांच

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

  1. - पायथन में शब्दों को लेक्सिकोग्राफिकल क्रम में सॉर्ट करना

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