2013-07-10 2 views
2

Я хочу, чтобы вероятностно выбрал «n» ребра из «e» edge_in_sorted_order в векторе. Но я хочу использовать вероятность при выборе. И я также хочу не выбирать большие края в начале.Какая вероятностная функция для использования

, так что это дает больше веса меньшим краям в начале, и, как я беру края, я бы дал больше и больше веса к большим оставшимся краям тоже.

какую вероятностную функцию от n и e я должен выбрать?

while(edgesTaken < n) { 
    for each edge i and edgesTaken < n 
     probability = pdf(edgesTaken, i) 
     if (prob > THRESHOLD) 
       take the edge 
} 

enter image description here

+0

Я посмотрел на нормальное распределение, но заменил x для i_edge и sigma^2 для edgeTaken, положил f (x) очень маленьким для больших i_edge. Может ли это быть CDF нормального распространения? –

+0

Не обязательно, чтобы графики были только такими. Это просто мое представление. Он должен позаботиться об ограничениях, связанных с медленным добавлением большего веса к большим краям. –

+0

Одна (непроверенная) возможность: Начиная с края '0', берет край' i' с вероятностью '((n-edgeTaken)/(ei)) ** (1/7) '. Вы можете настроить '7' на досуге, более высокие значения будут способствовать более низким значениям краев. – Teepeemm

ответ

0

Вам необходимо квантили функцию распределения вы хотите. Нарисуйте случайное число, используя стандартный генератор, чтобы дать вам равномерно распределенное в [0, 1]. Затем вызовите функцию квантиля с q в качестве параметра. Полученное случайное множество будет иметь требуемое распределение.

+0

где мои n и e вставляются в него? –

+0

Ваша функция квантиля будет функцией n и e. – Bathsheba

+0

из моих исследований я обнаружил, что квантиль дает нам то место, где дается распределение и процент CDF, он указывает точку, где CDF пересекает этот процент. Я не могу понять, как применять ваши q, n и e здесь. ? –

0

Вероятность того, что первое ребро равна 1, выбирает (n-1, e-1)/выбирает (n, e).

В целом, вероятность того, что первое ребро к является [выбрать (п, е-1)/выбрать (п, е)] * 1/к

Вы также можете вероятность того, что есть является точно одним ребром в 1-k: [выберите (nk, e-1)/выберите (n, e)]

Отсюда я думаю, вы можете обернуть все!

P.S. Просто для объяснения, три функции дают отношение количества способов выбора ребер, удовлетворяющих их условиям, выбирать (n, e), что является количеством способов выбрать e ребер из n.

+0

n всегда меньше или равно e здесь. –

+0

Что такое k в вашем решении? –

+0

Это означает, что 'n' и' e' переключились с OP (чтобы быть справедливым, 'n' чаще всего является итогом, а не' e'). 'k' является первым выбранным ребром. Но я не думаю, что это благоприятствует небольшим краям. – Teepeemm

Смежные вопросы