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

पायथन में एक इन्सम अभिव्यक्ति के लिए न्यूनतम लागत संकुचन आदेश का मूल्यांकन करें

एक ईन्सम अभिव्यक्ति के लिए न्यूनतम लागत संकुचन आदेश प्राप्त करने के लिए, पायथन में numpy.einsum+path() विधि का उपयोग करें। पहला पैरामीटर, सबस्क्रिप्ट सारांश के लिए सबस्क्रिप्ट निर्दिष्ट करता है। दूसरा पैरामीटर, ऑपरेंड ऑपरेशन के लिए सरणियाँ हैं।

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

स्पष्ट मोड में, einsum अन्य सरणी संचालनों की गणना करने के लिए और अधिक लचीलापन प्रदान करता है जिन्हें शास्त्रीय आइंस्टीन योग संचालन नहीं माना जा सकता है, अक्षम करके, या संक्षेप में निर्दिष्ट सबस्क्रिप्ट लेबल को मजबूर करके।

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

कदम

सबसे पहले, आवश्यक पुस्तकालयों को आयात करें -

import numpy as np

टेंसर -

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

एक इन्सम व्यंजक के लिए न्यूनतम लागत संकुचन आदेश प्राप्त करने के लिए, numpy.einsum+path()विधि का उपयोग करें -

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)

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

# To get the lowest cost contraction order for an einsum expression, use the numpy.einsum+path() method in Python
path_info = np.einsum_path('ij,jk,kl->il', p, q, r, optimize='greedy')

# Displaying Path info
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

  1. न्यूनतम लागत पथ के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक लागत मैट्रिक्स और एक स्थिति (एम, एन) दी गई है, हमें (0, 0) से (एम, एन) तक पहुंचने के लिए न्यूनतम लागत पथ की लागत का पता लगाना होगा। प्रत्येक सेल एक सेल से दूसरे सेल में जाने की लागत का प्रतिनिधित्व करता है। आ

  1. पायथन में संतुलित कोष्ठक की जाँच करें

    कई बार हमें यह पता लगाने की आवश्यकता होती है कि क्या कोई व्यंजक उसमें मौजूद कोष्ठकों के संबंध में संतुलित है। संतुलित से हमारा मतलब है कि प्रत्येक बाएँ कोष्ठक के लिए एक संगत दायाँ कोष्ठक होता है और कोष्ठकों का क्रम ठीक से व्यवस्थित होता है। एक प्रोग्राम या गणितीय अभिव्यक्ति लिखने में इसका महत्व है ज

  1. पायथन में शब्दों को शब्दावली क्रम में क्रमबद्ध करें

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