Монте-Карло Симуляторы Python

Я использую симуляции Монте-Карло для симуляции системы сохранения. У меня есть устройства в моей симуляции с определенной частотой отказов. Допустим, частота отказов составляет 1/100000, что означает, что 1 из 100000 устройств выходит из строя каждый год. Если устройство выходит из строя, я плачу за замену. Но я не понимаю, как случайно отловить сбой устройства в симуляции. Как я понимаю, мне нужно использовать распределение вероятностей для имитации этого поведения. Но я не понимаю, как это сделать.

Функции в случайном пакете, кажется, предоставляют случайное число в определенном диапазоне, которого у меня нет. Также я не знаю, что это за дистрибутив.

Я надеюсь, что вопрос имеет смысл для людей. Любая помощь будет оценена.

Обновите это:

я сделал это

    #/usr/bin/python
    import random 

    def main():
        count =0
        #fail rate is 1% of 100000, I need to do this probabilistically
        for _ in range(1,100000):
            x=random.random()
            if x <= 1.0/100000:
                count += 1

                print "x = "+str(x)+" fail device"
        print "device failed "+str(count)+"  times"

    if __name__ == '__main__':
        main()

и я получаю вывод, как

        x = 0.000743343826396 fail device
        device failed 1  times
        [Finished in 0.0s]

Спасибо Timgeb за помощь! Однако мне интересно, является ли это поведение таким же, как при рассмотрении частоты отказов 1/100000?

1 ответ

Решение

Количество неисправных устройств в год (или в любую другую единицу времени) следует распределению Пуассона. Если у вас есть n единицы для m лет, и частота отказов в год p, затем вы можете получить случайное число для количества неисправных единиц, используя numpy.random.poisson:

import numpy as np

n = 100000
m = 5
p = 1.0 / 100000

failed = np.random.poisson(n * m * p)

Функция np.random.poisson будет случайным образом определять количество неисправных единиц. Запустите последнюю строку несколько раз, чтобы увидеть, что происходит.

AFAIK, чистый питон не имеет распределения Пуассона, даже если его можно вычислить с помощью некоторой математики, скажем, из гауссовских случайных чисел.

Другие вопросы по тегам