Bei Optimierungsproblemen ist es gut, die Log-Wahrscheinlichkeit zu verstehen. Wenn Sie beispielsweise versuchen, eine Quadratsumme zu minimieren, entspricht dies der Maximierung des Wahrscheinlichkeitsprotokolls, da (grob gesagt)
log( Product( exp( -(x[i]-mean)^2 )) )
=
- Sum( (x[i]-mean)^2 )
Andere Favoriten im Bereich der Leistungsoptimierung sind Binomial- und Beta-Distributionen. Sie sind sehr einfach zu berechnen.
Wenn Sie 10 zufällige Stichproben des Status eines Programms nehmen und es in einer bestimmten Bedingung für F = 40% der Zeit ist, dann ist es wie ein Münzwurfexperiment mit einer unfairen Münze. Die Häufigkeit, mit der Sie es in diesem Zustand sehen, ist eine Binomialverteilung mit einem Mittelwert von 10 * 0,4 = 4 und einer Standardabweichung von sqrt (10 * 0,4 * 0,6) = sqrt (2,4) = 1,55.
Auf der anderen Seite, wenn Sie 10 Proben nehmen und es zufällig bei 4 Proben in diesem Zustand sehen, was sagt Ihnen das darüber aus, wie groß F ist? Die möglichen Ergebnisse sind 0, 1, 2, 3, 4, ..., 9, 10. Das sind 11 Möglichkeiten, und die Möglichkeit, die Sie gesehen haben (4), ist die 5. Möglichkeit. Also nimm 11 einheitliche (0,1) Zufallszahlen und sortiere sie. Die Verteilung der 5. ist die Verteilung von F, einer Beta-Verteilung. Sein Modus ist 4/10. Sein Mittelwert ist 5/11. Seine Varianz beträgt 5 * 6 / (11 ^ 2 * 12) = 0,021 und die Standardabweichung = 0,144.
Viele Leute denken, dass eine große Anzahl von Beispielen erforderlich ist, um Software-Leistungsprobleme zu lokalisieren und falsche zu vermeiden. Diese Verteilungen zeigen, dass eine kleine Anzahl von Proben viel über ihre Kosten aussagen kann.