2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 15:30 
Аватара пользователя


09/04/12
72
nikvic в сообщении #673664 писал(а):
Всё это выглядит как задача линейного программирования - неотрицательность вероятностей, около 200 линейных уравнений (64*3-2?). Но уж больно много переменных... Зато ищем не экстремум, а какое-нибудь решение 8-)
Правда, может оказаться, что таковых вообще нет.

Решение задачи как системы уравнений, вычислительно невозможно (жесткие временные рамки как на формирование генератора, так и на генерацию новых значений - в релаьном примере и клеток может быть болше 8, и ладей больше 3х). А так, конечно, это идеальное решение.
nikvic в сообщении #673664 писал(а):
Представим, что у нас есть много решений, но с другими распределениями. Их смесь (линейная комбинация с весами >=0 суммой 1) - тоже решение. Если повезёт, удастся найти смесь с нужными распределениями.
Эти решения можно пытаться искать и случайно, каждый раз распределяя вероятности позиций по относительно небольшому множеству допустимых ячеек, порядка нескольких сотен.
Стратегия отбора - пытаться вычитанием из уже достигнутого результата приблизить к равномерным распределениям...

Я, к сожалению, не понял этого решения. Вообще, любые попытки решить задачу как систему уравнений вычислительно обречены. Для некоторых случаев у меня не хватит ресурсов даже только на то, чтобы пробежаться один раз по всем переменным уравнения - то есть, не хватит машинного времени даже на пустой цикл соответствующей длины, не то, что на какие-то там вычисления.

-- 19.01.2013, 15:37 --

_hum_ в сообщении #673629 писал(а):
Sinclair в сообщении #673609 писал(а):
Дело не в этом, если я понимаю правильно.

Sinclair, еще раз. Я привел подход с применением режект-метода к решению вашей задачи, который, если бы он был полностью корректным, давал нужный результат. Вы заметили, что этот подход изначально не может давать нужные маргинальные распределения. Отсюда вытекало, что он в чем-то некорректен. Осталось найти, в чем именно. Это место было найдено - взаимное влияние просеивания, которое я не учел. Вот и все.
Грубо говоря, мы оба привели контраргументы к применению этого метода, только вы опирались на "следствие", а я на "причину".

Все, я понял, что вы имели ввиду. Да, если удовлетворить изначальные условия, то удовлетворятся и все следствия из этих условий. В связи с чем, можно пытаться удовлетворить только исходным условиям (равенство выдаваемых генератором маргинальных распределений исходным, и запрет стоять на одной клетке), не следя за соблюдением следствий из этих условий, так как они при этом будут выполнеты автоматически.
Это называется не надо в сонном виде пытаться решить то, где думать надо.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 15:44 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Спрашивайте. Имеем исходную тройку распределений как начальный член последовательности.
В частности, "получить очередное решение" - случайно выбрать ~три сотни позиций, назначить туда вероятности (тоже случайно). Сосчитать тройку распределений. Оценить, насколько она "коллениарна" и, в зависимости от этого, "поправить" предыдущий член последовательности, приближая к равномерному.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 15:57 
Аватара пользователя


09/04/12
72
Sinclair в сообщении #673662 писал(а):
Я думаю над этим сейчас. Судя по всему, в уме я могу представить решение этим методом упрощенной задачи (про фишки):
Предположим, исход, по фишке, стоящей на 1й клетке отсеиваться не будет вовсе, а по фишке, стоящей на 2й или 3й клетке он будет отсеиваться с большой вероятностью, например, 99%.
В таком случае исходы (2, 3) и (3, 2) будут отсеиваться в 100 раз чаще, чем исходы, в которых одна из фишек стоит на 1м месте.
То есть, это решение, судя по всему, дает в пределе нужное решение.
Правда, сразу видны недостатки:
1) во-первых, по мере уменьшения маргинальной вероятности 2й и 3й клеток, у нас будет браковаться все больше подходящих нам исходов. В приведенном мною примере 99 исходов (1, 2) из 100 будут отсеиваться.
2) во-вторых, я не знаю, подойдет ли это решение для исходной задачи с доской. Интуитивно пока похоже на то, что подойдет (но первый недостаток сохранится)

Так. Вот можно заметить, как можно усовершенствовть это решение.
Если у нас все исходы бракуются с минимум 99% веростностью, то можно умножать вероятность прохождения всего исхода (то есть, домножать вероятность того, что он не будет забракован ни по одной из компонент) на 100.
Таким образом, решения, содержание фишку на 1й клетке вообще не будут браковаться, а решения вида (2, 3) и (3, 2) будут браковаться в 99% случаев (и вообще с любой заданной вероятностью). Это, конечно подходит.
Итак, похоже, что упрощенная задача решена. Выпишу ход решения для ясности:
Дано:
Ч и Б фишки.
3 клетки.
распределения Ч и Б фишек по клеткам: 50/25/25.
Мы сначала применяем алгоритм _hum_, и пересчитываем маргинальные вероятности. Если они не совпали - увеличиваем вероятность "недостающих" исходов. После некоторого числа итераций, мы получаем такую ситуацию:
Маргинальные вероятности нахождения фишек на 1й клетке близки к 1, маргинальные вероятности нахождения на 2й или 3й близки к кулю.
После чего генерируем произвольные исходы, оставляя исходы, содержание фишку на 1й клетке с веротяность 1(вероятность того, что мы не отсеим этот исход по фишке, стоящей на 1й клетке)*0.01(вероятность того, что мы не отсеим этот исход по фишке, стоящей на второй клетке)/0.01(максимальная вероятность неотсеивания исхода) = 1, а исходы без фишки на 1й клетке отсеивая в 99% случаев (1 - 0.01*0.01/0.01).

Сразу, к сожалению, понятно, что это решение вычислительно не подходит для исходной задачи. По мере приближения каких-то маргинальных вероятнстей к 0 будет расти коэффициент С, экспоненциально уменьшая число проходящих вариантов. Да и итерационное схождение будет достаточно медленным. Например, при указанном мною отклонении от исходных маргинальных вероятностей в 7%, будет требоваться где-то 5-6 итераций для сокращения этой ошибки вдвое, и всего будет требоваться порядка 20 итераций для доведения ее до статистически незначительной. Впрочем, если уметь быстро пересчитывать маргинальные распределения, с этим смириться можно. Тем более, что ускорить сходимость задача леко решаемая. А вот слишком большое C делает алгоритм неработоспоосбным.

-- 19.01.2013, 16:11 --

nikvic в сообщении #673686 писал(а):
Спрашивайте. Имеем исходную тройку распределений как начальный член последовательности.
В частности, "получить очередное решение" - случайно выбрать ~три сотни позиций, назначить туда вероятности (тоже случайно). Сосчитать тройку распределений. Оценить, насколько она "коллениарна" и, в зависимости от этого, "поправить" предыдущий член последовательности, приближая к равномерному.

Ничего не понял. Давайте по шагам.
Вот у нас есть 3 исходных маргинальных распределения.
Далее, мы выбираем 3 сотни позиций. Позиций чего? 3 сотни совместных исходов? То есть, 3 сотни наборов вида (E4, A2, H3)? Ок, выбрали 300 наборов.
"Назначаем туда вероятности" - Это значит, что каждому исходу мы случайным образом присваиваем некоторую вероятность? Ок, присвоили произвольную вероятность.
Далее, нам "надо сосчитать тройку распределений". Мы просто суммируем вероятности всех исходов, в которых конкретная ладья стоит на конкретном месте, и присваиваем соответствующему исходу маргинального распределения для данной ладьи получившуюся вероятность, так?
До этого момента понятно.
nikvic в сообщении #673686 писал(а):
Оценить, насколько она "коллениарна" и, в зависимости от этого, "поправить" предыдущий член последовательности, приближая к равномерному.

Вот тут уже не понятно. Как нам оценить получившуюся тройку распределений?

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 18:16 


23/12/07
1763
Sinclair в сообщении #673662 писал(а):
Правда, сразу видны недостатки:
1) во-первых, по мере уменьшения маргинальной вероятности 2й и 3й клеток, у нас будет браковаться все больше подходящих нам исходов. В приведенном мною примере 99 исходов (1, 2) из 100 будут отсеиваться.

Чтобы не отбрасывать слишком много нужных вариантов, можно смягчить условие отбрасывания с "бракуется черным" ИЛИ "бракуется белым" на "бракуется черным" И "бракуется белым". В этом случае выборка не с такой сильной скоростью будет уменьшаться, но зато прореживать ее придется большее число раз для получения той же точности. Вот, например, что у меня вышло для фишек:
Изображение Изображение
рис. 1. Абсолютная ошибка от итераций рис. 2. Размер выборки от итерации

А еще, возможно, стоит подумать над следующим:

делаем первое прореживание выборки Sample, в процессе которого отбираем из нее все варианты для которых НЕ "бракуется черным" И НЕ "бракуется белым". Получаем декомпозицию исходной выборки на две:
Sample -> (SampleGood_1, SampleBad_1),
В SampleBad_1 частота встречаемости "плохих случаев" выше, потому резонно делать дальше прореживание именно ее:
SampleBad_1 -> (SampleGood_2, SampleBad_2). Ну, и так далее. В результате получится набор выборок
SampleGood_1, SampleGood_2, .....
Дальше придумать какой-нибудь не портящий независимости способ объединения их опять в одну. Ну, и повторить процесс...

-- Сб янв 19, 2013 20:04:39 --

А еще, в порядке бреда. На примере фишек - вам надо получить $0.5, 0.25, 0.25$. Это значит, что в большой выборке должно быть 50% единиц и поровну остальных. Так а давайте просто от этого и отправляться. Найдем набор пар $(i,j), i\neq j$, у которых по координатам 50% единиц и поровну остальных. Чем нас это будет не устраивать - правильно, оно в общем случае не пройдет проверку на независимость. Так давайте попробуем "перемешать" их так, чтобы они стали "независимыми". Есть же такие методы улучшения качества генераторов (тот же генератор Маклорена-Марсальи), вот ими и можно попытаться воспользоваться. То есть, задача сводится к поиску такой перестановки исходной последовательности, чтобы ее можно было считать реализациями случайной величины :)

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 19:04 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Sinclair в сообщении #673691 писал(а):
nikvic в сообщении #673686 писал(а):
Оценить, насколько она "коллениарна" и, в зависимости от этого, "поправить" предыдущий член последовательности, приближая к равномерному.

Вот тут уже не понятно. Как нам оценить получившуюся тройку распределений?

У нас есть две тройки. Первая - последний готовый элемент последовательности, вторая - только что полученная.
Будем вычитать из первой вторую, умноженную на положительный множитель. Цель - приблизиться к "равномерному распределению". Метрику близости можно пытаться брать разную, степень приближения на шаге - тоже.

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

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 19:54 


23/12/07
1763
Немного модифицировал исходный алгоритм ( см. сообщение #673476)

1 для $k = 1,2,...$
1.1 $x_B = \mathbf{A}_{*}[k][1]$
1.2 $l_B = C\Tilde{P}^*_{B}(x_B)$
1.3 $y_B =$ генерируем значение с.в. $U[0, l_B) $
1.4 $x_W = \mathbf{A}_{*}[k][2]$
1.5 $l_W  =  C\Tilde{P}^*_{W}(x_W)$
1.6 $y_W =  (l_W/l_B) y_B$ // вместо "генерируем значение с.в. $U[0, l_W)$ "
1.7 если $ (P_{B}(x_B) < y_B)$ AND $(P_{W}(x_W) < y_W)$, то
1.7.1 перейти к п.1,
иначе
1.7.2 печатать $\mathbf{A}_{*}[k]$ как очередной элемент прореженной выборки $\mathbf{A}_{**}$.

Получил (если ничего не напутал) следующие зависимости абсолютной ошибки и размера выборки от итераций соответственно:

Изображение Изображение

Главное нововведение (помимо замены в п. 1.7 операции OR на AND) - п. 1.6 - я решил использовать одну и ту же реализацию $y$ для двух компонент, чтобы хоть как-то связать их между собой. Видимо, этот момент и позволил начать лучше "чувствовать" "плохие" варианты наподобие $(2,3), (3,2)$.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 19:55 
Аватара пользователя


09/04/12
72
_hum_ в сообщении #673783 писал(а):
Чтобы не отбрасывать слишком много нужных вариантов, можно смягчить условие отбрасывания с "бракуется черным" ИЛИ "бракуется белым" на "бракуется черным" И "бракуется белым". В этом случае выборка не с такой сильной скоростью будет уменьшаться, но зато прореживать ее придется большее число раз для получения той же точности.

Так, во-первых, я это вариант вообще не до конца понимаю. Если мы будем отсеивать по одной ИЛИ по другой компоненте - у нас просто не получится нужных маргинальных распределений, разве не так? Или вы это признаете, но предлагаете сделав отбор через или, потом сгонять вероятности к нужным, путем итераций, изменяя распределения в нужном направлении? Если так, то для меня вообще неочевидно то, что они таким методом можно получить маргинальные распределения, которые, будучи использованы в описанном вами генераторе через ИЛИ дадут на выходе маргинальные распределения близкие к исходным.
_hum_ в сообщении #673783 писал(а):
А еще, возможно, стоит подумать над следующим:

Извиняюсь, но я не понял данный алгоритм.

_hum_ в сообщении #673783 писал(а):
А еще, в порядке бреда. На примере фишек - вам надо получить $0.5, 0.25, 0.25$. Это значит, что в большой выборке должно быть 50% единиц и поровну остальных. Так а давайте просто от этого и отправляться. Найдем набор пар $(i,j), i\neq j$, у которых по координатам 50% единиц и поровну остальных. Чем нас это будет не устраивать - правильно, оно в общем случае не пройдет проверку на независимость. Так давайте попробуем "перемешать" их так, чтобы они стали "независимыми". Есть же такие методы улучшения качества генераторов (тот же генератор Маклорена-Марсальи), вот ими и можно попытаться воспользоваться. То есть, задача сводится к поиску такой перестановки исходной последовательности, чтобы ее можно было считать реализациями случайной величины :)

Да, это, кстати, интересный подход - создать генератор с плохими спектральными характеристиками, и улучшить их перемешиванием. Это может улучшить некоторые мои решения.
Что до решения, я тоже как то его не очень понял. Вы предлагаете перемешать маргинальные распределения в одно, и выбирать по нему? Вряд ли при этом повысится точность. Мы же так теряем информацию.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 20:16 


23/12/07
1763
Sinclair в сообщении #673835 писал(а):
Так, во-первых, я это вариант вообще не до конца понимаю. Если мы будем отсеивать по одной ИЛИ по другой компоненте - у нас просто не получится нужных маргинальных распределений, разве не так? Или вы это признаете, но предлагаете сделав отбор через или, потом сгонять вероятности к нужным, путем итераций, изменяя распределения в нужном направлении?

Да, так. Аналогия такая - есть два члена жюри, каждый из них отбраковывает тех игроков, которые ему не подходят. Может быть две стратегии:
1) оба друг другу не уступают, и как только появляется кто-то не подходящий хотя бы для одного - они сразу же отбраковывают, не считаясь с нуждами друг друга;
2) оба учитывают мнение друг друга, сходясь на том, что "ну раз вам он нравится, то, так и быть, дам ему второй шанс, ведь если он плох, рано или поздно вы это тоже поймете, и при очередной отборе мы его вместе выгоним ".

Sinclair в сообщении #673835 писал(а):
Да, это, кстати, интересный подход - создать генератор с плохими спектральными характеристиками, и улучшить их перемешиванием. Это может улучшить некоторые мои решения.
Что до решения, я тоже как то его не очень понял. Вы предлагаете перемешать маргинальные распределения в одно, и выбирать по нему? Вряд ли при этом повысится точность. Мы же так теряем информацию.

При чем тут перемешивание маргинальных? Я предлагаю перемешивать исходные пары, ведь если в самом начале вы их подобрали так, что по компонентам выполняются нужные пропорции, то перемешивание эти пропорции никак не сможет нарушить (как и условия наподобие непопадания в одну клетку), и значит, можно применять какие угодно перемешивающие алгоритмы. В итоге - у вас получится набор пар, которые будут "неотличимы" от реализаций некоторого случайного вектора. Автоматом (по построению) они будут давать нужные маргинальные распределения и удовлетворять нужным условиям на совместимость.


П.С. Вы мой предыдущий пост видели? Каковы ваши соображения по его поводу?

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 20:23 
Аватара пользователя


09/04/12
72
nikvic в сообщении #673814 писал(а):
Sinclair в сообщении #673691 писал(а):
nikvic в сообщении #673686 писал(а):
Оценить, насколько она "коллениарна" и, в зависимости от этого, "поправить" предыдущий член последовательности, приближая к равномерному.

Вот тут уже не понятно. Как нам оценить получившуюся тройку распределений?

У нас есть две тройки. Первая - последний готовый элемент последовательности, вторая - только что полученная.
Будем вычитать из первой вторую, умноженную на положительный множитель. Цель - приблизиться к "равномерному распределению". Метрику близости можно пытаться брать разную, степень приближения на шаге - тоже.

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

Мы берем случайные исходы, назначаем им случайные вероятности, и суммирование таких последовательностей приведет нас к искомой?
А где в этом алгоритме вообще исходные маргинальные распределения используются. В общем, я его совсем не понял. Вообще. Но если, как я понял, он работает с совместными исходами, да еще и перебирает их до сходимости - то вычислительные требования значительно превышены.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 20:46 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Sinclair в сообщении #673853 писал(а):
А где в этом алгоритме вообще исходные маргинальные распределения используются

Исходная тройка.
Можно, кстати, двигаться и в противоположном направлении - от тривиального (равномерного) распределения к данной тройке.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 20:51 
Аватара пользователя


09/04/12
72
_hum_ в сообщении #673849 писал(а):
Да, так. Аналогия такая - есть два члена жюри, каждый из них отбраковывает тех игроков, которые ему не подходят. Может быть две стратегии:
1) оба друг другу не уступают, и как только появляется кто-то не подходящий хотя бы для одного - они сразу же отбраковывают, не считаясь с нуждами друг друга;
2) оба учитывают мнение друг друга, сходясь на том, что "ну раз вам он нравится, то, так и быть, дам ему второй шанс, ведь если он плох, рано или поздно вы это тоже поймете, и при очередной отборе мы его вместе выгоним ".

Это я понимаю. При этом понятно, что в первом случае совместное распределение будет соответствовать заданным маргинальным (без отбраковки). Второе - нет. Мне кажется недоказаным, что меняя поведение членов жюри, которые сотрудничают по варианту 2) вообще можно получить заданные маргинальные распределения.

_hum_ в сообщении #673849 писал(а):
При чем тут перемешивание маргинальных? Я предлагаю перемешивать исходные пары, ведь если в самом начале вы их подобрали так, что по компонентам выполняются нужные пропорции, то перемешивание эти пропорции никак не сможет нарушить (как и условия наподобие непопадания в одну клетку), и значит, можно применять какие угодно перемешивающие алгоритмы. В итоге - у вас получится набор пар, которые будут "неотличимы" от реализаций некоторого случайного вектора. Автоматом (по построению) они будут давать нужные маргинальные распределения и удовлетворять нужным условиям на совместимость.

Это я понимаю. Я спросил, как вы подбирали эти пары, а не как вы их перемешивали.
Одно из моих решений из заглавного поста звучит так:
Sinclair в сообщении #671902 писал(а):
Так же, я набрел еще на одно решение: Генерировать ладьи любым способом, но каждый раз, когда ладья попадает на какую-то позицию, вычитать из данного элемента распределения некоторую величину, уменьшая, таким обрзом, вероятность попадания сюда в дальнейшем. Таким образом, "экранируемые" элементы распределения будут получать со временем бонус вероятности и выпадать, в соответствии с заданным распределением. Проблема в том, что у данного подхода отвратительные спектральные характеристики. То есть, при большом числе генераций ладьи достигнут заданного распределения, но при первых, например, 100 генерациях таким алгоритмом, распределение будет заведомо сдвинуто. А это тоже недопустимо.

Вы имеете ввиду это же? Просто каким то образом соблюсти распределение, а потом перемешать?
Sinclair в сообщении #671902 писал(а):
П.С. Вы мой предыдущий пост видели? Каковы ваши соображения по его поводу?

Я так понимаю, что вы описали свой текущий вариант с ИЛИ.
У меня 2 вопроса по нему:
1) Как вы, при создании генератора путем итераций пересчитываете опорные маргинальные вероятности для генератора?
То есть вот у вас есть какие-то опорные вероятности. Как вы получаете следующую итерацию этих вероятностей? Просто долго гоняете генератор, и смотрите, к чему сошлось?
2) Еще вопрос в том, сколько этот генератор будет отбрасывать при работе с исходной задачей? Мне интуитивно кажется, что очень много - и за счет большого C, и за счет того, что мы генерируем исходы для просева путем равномерного распределения.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 21:37 


23/12/07
1763
Sinclair в сообщении #673869 писал(а):
при этом понятно, что в первом случае совместное распределение будет соответствовать заданным маргинальным (без отбраковки). Второе - нет.

Про какие распределения вы здесь ведете речь - эмпирические или теоретические, к которым эмпрические будут сходиться в пределе (при стремлении объема выборки к бесконечности)? В любом случае принципиальной разницы нет - эмпирические и те, и другие не будут полностью совпадать с теоретическими, а предельные теоретические скорее всего будут одни и те же, так как при увеличении выборки и числа прореживаний "плохие пары игроков" будут становиться все более и более редкими и в том, и в другом случае.

Sinclair в сообщении #673869 писал(а):
Это я понимаю. Я спросил, как вы подбирали эти пары, а не как вы их перемешивали.

Я не подбирал, я думал, это простая задача :) Ну хоть брать напрямую генерировать случайные пары (удовлетворяющие совместности) и вести подсчет, сколько уже единиц, двоек и троек для каждой компоненты встретилось. Если где-то "перебор", то отбрасывать текущую сгенерированную пару.
Хм...А ведь он же вроде бы и перемешивания тогда требовать не будет, или я уже к вечеру плохо соображаю?

Цитата:
Я так понимаю, что вы описали свой текущий вариант с ИЛИ.
У меня 2 вопроса по нему:
1) Как вы, при создании генератора путем итераций пересчитываете опорные маргинальные вероятности для генератора?
То есть вот у вас есть какие-то опорные вероятности. Как вы получаете следующую итерацию этих вероятностей? Просто долго гоняете генератор, и смотрите, к чему сошлось?

В конце каждой итерации полагаю $\mathbf{A}_{*} = \mathbf{A}_{**}$ и запускаю заново прореживание $\mathbf{A}_{*} $.
Цитата:
2) Еще вопрос в том, сколько этот генератор будет отбрасывать при работе с исходной задачей? Мне интуитивно кажется, что очень много - и за счет большого C, и за счет того, что мы генерируем исходы для просева путем равномерного распределения.

Не совсем понял. Откуда большое С? Во-первых, оно на каждой итерации разное, а во-вторых, чем ближе текущее маргинальное к заданному, тем оно меньше.
Если у вас в исходной задаче много "членов жюри", то с ИЛИ у вас наоборот очень редко будут отбрасывания происходить (даже, может, слишком редко) :)

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 22:07 
Аватара пользователя


09/04/12
72
_hum_ в сообщении #673890 писал(а):
<...>

Я так понимаю, что мы снова начали говорить о разных вещах. Вместо того, чтобы задавать вопросы по каждому предложению, я хотел бы попросить вас с нуля написать алгоритм генерации опорных маргинальных распределений (не тех, которые надо получить в итоге, а тех, которые используются вашим алгоритмом для генерации исходных).
Вот вы написали алгоритм генерации значений. Его я понимаю, только не понимаю, откуда берутся опорные распределения для него.
То есть, объясните подробно с нуля вот эту строку:
1.2 $l_B = C\Tilde{P}^*_{B}(x_B)$
Откуда берется $\Tilde{P}^*_{B}$? Каков алгоритм его получения?

_hum_ в сообщении #673890 писал(а):
Я не подбирал, я думал, это простая задача :) Ну хоть брать напрямую генерировать случайные пары (удовлетворяющие совместности) и вести подсчет, сколько уже единиц, двоек и троек для каждой компоненты встретилось. Если где-то "перебор", то отбрасывать текущую сгенерированную пару.
Хм...А ведь он же вроде бы и перемешивания тогда требовать не будет, или я уже к вечеру плохо соображаю?

Ну в данном случае значит мы говорим об одном и том же. Я полагаю, что перемешивания все таки понадобятся. Ну, по крайней мере в общем случае.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 22:20 


23/12/07
1763
На каждой итерации имеем выборку размера $n$
$$
   \mathbf{A}_{*} = \big(\mathbf{a}_1,\mathbf{a}_2,\dots, \big),\, \text{ где } \mathbf{a}_k =  (a^{(k)}_1,a^{(k)}_2)
$$
Тогда
$$\Tilde{P}^*_{B}(i) = n^{-1}\sum_{k=1}^n \delta(i, a^{(k)}_1),\quad  
\Tilde{P}^*_{W}(i) = n^{-1}\sum_{k=1}^n \delta(i,a^{(k)}_2), \quad i = 1,2,3,$$
где $\delta$ - аналог дельта-функции для дискретного случая.

 Профиль  
                  
 
 Re: Генератор для 3х зависимых дискретных величин.
Сообщение19.01.2013, 22:33 
Аватара пользователя


09/04/12
72
_hum_ в сообщении #673919 писал(а):
На каждой итерации имеем выборку размера $n$
$$
   \mathbf{A}_{*} = \big(\mathbf{a}_1,\mathbf{a}_2,\dots, \big),\, \text{ где } \mathbf{a}_k =  (a^{(k)}_1,a^{(k)}_2)
$$
Тогда
$$\Tilde{P}^*_{B}(i) = n^{-1}\sum_{k=1}^n \delta(i, a^{(k)}_1),\quad  
\Tilde{P}^*_{W}(i) = n^{-1}\sum_{k=1}^n \delta(i,a^{(k)}_2), \quad i = 1,2,3,$$
где $\delta$ - аналог дельта-функции для дискретного случая.

Два вопроса.
1) Откуда берется выборка $\mathbf{A}_{*}$?. Это просто какой-то набор исходов совместного распределения? И чем он больше, тем аккуратнее пересчитываются распределения?
2) Я не понял смысл выражений под суммой. Что такое дельта функция я посмотрел в википедии, но смысл использования ее в данном контексте мне не понятен. Почему здесь дельта функция получает два аргумента? Вообще, как она себя ведет в данном случае?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 127 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group