इवेंट और मेथड का pseudo-randomization

Python में Discrete Event Simulation

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

प्रोसेस (या इवेंट) randomization

Randomization क्या है?

  • किसी चीज़ को रैंडम बनाना
  • यहाँ, इवेंट्स (या प्रोसेस) को रैंडम बनाना
  • non-deterministic प्रोसेस को simulate करने में उपयोगी

ध्यान दें: कंप्यूटर डिज़ाइन से ही truly random नंबर नहीं बना सकते.

  • randomness बढ़ाने के लिए current time और अन्य external वैरिएबल अक्सर कैलकुलेशन में लिए जाते हैं.
Python में Discrete Event Simulation

Random बनाम pseudo-random

"Truly" random generation

  • नंबर सच में रैंडम
  • randomness मशीन की सीमाओं से सीमित

Pseudo-random generation

  • नंबर probability distributions पर आधारित
  • सैंपल बढ़ने पर सांख्यिकीय distribution स्पष्ट होता है

उदाहरण: मैनुअल असेंबली वाले फ़ैक्टरी टास्क

एक स्कैटर प्लॉट जो किसी विशेष मैनुअल असेंबली की अवधि को कई बार दोहराने पर दिखाता है.

  • अगली pseudo-random घटना बनाने के लिए probability distribution अधिक उपयुक्त
Python में Discrete Event Simulation

Pseudo-randomization के पैकेज

कई statistics पैकेज उपयोग कर सकते हैं:

  • NumPy
  • SciPy
  • statsmodels
  • pandas
  • Random
  • scikit-learn

Random पैकेज

  • random और pseudo-random नंबर जनरेट करें

हमारा फोकस

  • discrete-event मॉडल्स में प्रचलित मेथड्स
Python में Discrete Event Simulation

दी गई रेंज के बीच random नंबर

दिए गए रेंज के बीच random integer

मेथड:

random.randint(start, end)

उदाहरण: 3 (शामिल) और 9 (शामिल नहीं) के बीच random integer

random.randint(3, 9)
5

दिए गए रेंज के बीच random float

मेथड:

random.uniform(start, end)

उदाहरण: 3 और 9 के बीच random float

random.uniform(3, 9)
6.4557754
Python में Discrete Event Simulation

Random samples और sequences

सीक्वेंस से random सैंपल

मेथड:

random.sample(mylist, k=number_samples)

उदाहरण: लिस्ट से 2 random एलिमेंट्स

mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']

लिस्ट को shuffle करें (एलिमेंट्स का क्रम बदलें)

मेथड:

random.shuffle(mylist)

उदाहरण: लिस्ट एलिमेंट्स का random re-ordering

mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Python में Discrete Event Simulation

Gaussian और exponential distributions

Gaussian distribution

मेथड:

random.gauss(average, standard_dev)

उदाहरण: mean 100 और standard deviation 50 के साथ pseudo-random float

random.gauss(100, 50)
123.59383

Exponential distribution

मेथड:

random.expovariate(lambda)
  • अगर lambda>0, रिज़ल्ट [0, infinity]
  • अगर lambda<0, रिज़ल्ट [-infinity, 0]

उदाहरण: lambda 1.5 के साथ exponential distribution से pseudo-random float: random.expovariate(1.5)

0.2234355
Python में Discrete Event Simulation

अभ्यास करते हैं!

Python में Discrete Event Simulation

Preparing Video For Download...