Алгоритм определения вероятности достижения цели

Хорошо, я буду здесь как можно более подробным.

Представьте, что пользователь просматривает набор «вариантов», которые он может выбрать. Каждый раз, когда он выбирает, он получает, скажем, 4 разных варианта.В этих 4 «слотах» может появиться еще много вариантов. У каждого из них есть определенная и известная вероятность появления. Не все варианты одинаково вероятны для появления, и некоторые варианты требуют, чтобы другие уже были выбраны ранее - в сложном дереве взаимозависимостей. (это я уже определил)

Когда пользователь выбирает один из 4, ему предоставляется другой выбор из 4 вариантов. Пул опций определяется снова и может зависеть от того, что пользователь выбрал ранее.

Среди всех возможных «вариантов», которые могут когда-либо появиться, есть несколько избранных, которые являются специальными, назовите их КЛЮЧЕВЫМИ опциями.

При запуске программы пользователю предлагаются первые 4 варианта. Для каждого из этих 4 программ необходимо вычислить общую вероятность того, что пользователь «достигнет» всех параметров KEY за период (переменная) N вариантов.

например. если всего есть 4 варианта, вероятность достижения любого из них равна 1, поскольку все они появляются в самом начале.

Если кто-нибудь может посоветовать мне, с какой логики мне следует начать, я был бы очень благодарен . Я думал о подсчете всех возможных последовательностей выбора и подсчете тех, которые приводят к тому, что параметры KEY выбираются в пределах N шагов, но проблема в том, что вероятность появления всех из них не одинакова, а также пул вариантов изменяется по мере того, как пользователь выбирает и накапливает свои варианты.

Мне трудно реализовать четко определенные вероятности и зависимости вариантов в алгоритме, который может дать разумную полную вероятность. Таким образом, пользователь знает каждый раз, какая из 4-х ставит его в наилучшее положение для получения КЛЮЧЕВЫХ опций.

Есть идеи?

РЕДАКТИРОВАТЬ: вот пример:

скажем, что в пуле есть 7 вариантов. option1, ..., option7 option7 требует option6; option6 требует option4 и option5; от option1 до 5 ничего не требуется и может появиться немедленно с соответствующими вероятностями option1.p, ..., option5.p; КЛЮЧЕВАЯ опция, скажем, option7; пользователь получает 4 случайно выбранных (но взвешенных) варианта из 1-5, и программа должна сказать что-то вроде: «если вы выберете (первый), у вас есть ##% шанс получить option7 не более чем за N попыток». аналогично остальным 3 вариантам.

естественно, для некоторого малого N получить вариант 7 невозможно, а для некоторого большого N - точно. Можно выбрать N.

РЕДАКТИРОВАТЬ: Итак, дело НЕ в том, что пользователь выбирает случайным образом. Дело в том, что программа предлагает, какой вариант выбрать, чтобы максимизировать вероятность того, что в конечном итоге, после N шагов, пользователю будут предложены все ключевые варианты.

Для приведенного выше примера; скажем, мы выбрали N = 4. поэтому программа должна сообщить нам, какой из первых 4 появившихся вариантов (любые 4 из вариантов 1–5), какой из них при выборе дает наилучшие шансы на получение option7. так как для option7 вам понадобится option6, а для этого вам нужны option4 и option5, ясно, что вы ДОЛЖНЫ выбрать вариант4 или вариант5 в первом наборе вариантов. один из них, конечно, обязательно появится. Допустим, мы получили это для первого выбора {option3, option5, option2, option4}. Затем программа говорит: если вы выбрали вариант 3, вы никогда не получите вариант 7 за 4 шага. р = 0; если вы выбрали option5, вы можете получить option7, p = ....; ... option2, p = 0; ... option4, p = ...;

Что бы мы ни выбрали, для следующих 4 вариантов p вычисляются заново. Ясно, что если мы выберем вариант 3 или вариант 2, каждый следующий выбор имеет ровно 0 вероятностей перехода к варианту 7. Но для option4 и option5 p> 0;

Теперь стало яснее? Я не знаю, как получить эти вероятности стр.

6
задан vedran 17 June 2011 в 06:23
поделиться