J'ai un modèle où l'état j parmi les M états est choisi avec la probabilité p_j. La probabilité pourrait être n'importe quel nombre réel. Ceci spécifie un modèle de mélange sur les états M. Je peux accéder à p_j pour tout j en temps constant. Je veux faire un grand nombre (N) d'échantillons aléatoires. L'algorithme le plus évident estComplexité de l'échantillonnage à partir du modèle de mélange
1) Calculer la distribution de probabilité cumulative P_j = p_1 + p_2 + ... p_j. O (M)
2) Pour chaque échantillon, choisissez float aléatoire x dans [0,1]. O (N)
3) Pour chaque échantillon, choisir j tel que min (0, P_j-1) < x < = max (1, P_j). O (Nlog (M))
Donc la complexité asymptotique est O (Nlog (M)). Le facteur de N est évidemment inévitable, mais je m'interroge sur log (M). Est-il possible de battre ce facteur dans une mise en œuvre réaliste?
Veuillez corriger le titre. – reinierpost