Блог им. bosco

Гипотеза Коллатца и метод Монте-Карло при поиске Грааля.

    • 28 августа 2021, 18:26
    • |
    • П М
  • Еще
Все знают известную гипотезу Коллатца о числовых рядах и метод численных экспериментов Монте-Карло, который применяли в Лос-Аламосе при создании ядерной бомбы США. *)

Я хотел поднять тему проверки алго-стратегий на примере этой задачи и этого подхода. Гипотеза Коллатца, на настоящий момент не доказана и связана с большим массивом цифр и рядов. Её можно либо доказать математически, либо опровергнуть численными методами, например случайно подобрав число, которое покажет что гипотеза не верна.
Очевидно, что одно число случайным образом найти легче, если оно есть, особенно если предположить что их много **). Легче найти одно из многих, чем перебрать абсолютно все что есть.

Теперь к нашим алго-стратегиям. По сути поиск Грааля — это постройка некоей гипотезы (ради хвастовства их называют стратегиями), и затем тестирование её на истории. История же это всего-навсего некий случайный ряд, который уже есть. В будущем ряд будет другим, и столь же случайным как и в прошлом. Можем ли мы перебрать все возможные варианты прошлого и будущего? По-моему непосильная задача.
То есть у нас есть лишь одно прошлое, которое мы можем использовать лишь чтобы опровергнуть нашу гипотезу. Либо чтобы её доказать, мы должны сгенерировать _все_ возможные варианты прошлого и будущего, численно и прогнать нашу стратегию-гипотезу через них.
Ну или математически доказать, что вот именно такая торговля будет бесконечно приносить доход. Тоже выглядит как нонсенс.
Остаётся только верить, что история, на которой не разоряется робот, даст нам прибыль в будущем. Доказать это историей вчистую — «в общем» мы не можем! Только «не опровергнуть».
И вот на этом краешке рациональности и сидят болтая ножками над пропастью убытков и сливов успешные алготрейдеры.

Отдельно наверное стоит подумать, что с научной точки зрения представляет собой процесс подгонки случайным методом параметров стратегии, для того чтобы она не развалилась на истории. Это не простая и не приятная мысль, отложу её до следующего раза.

*) Если вы при этих словах почувствовали неудобство, значит этот кликбейкт-хайп-метод сработал.
**) Вот, например, программка, которая выдаёт «предположительно» числа, которые не складываются за 1 000 000 итераций в 1, то есть возможно нарушают гипотезу (надо проверять «до конца»)
public class ГипотезаКоллатца {
	static Random rnd = new Random();
	static BigInteger THREE = new BigInteger("3");
	static BigInteger genBig() {
		return new BigInteger(1000, rnd);
	}
	static boolean isOdd(BigInteger b) {
		return b.testBit(0);
	}
	static BigInteger iterate(int maxSteps, BigInteger b) {
		BigInteger bi = b;
		for (int i=0;i<maxSteps&&BigInteger.TWO.compareTo(bi)<1;i++){
			if (isOdd(b)) {
				bi = bi.divide(BigInteger.TWO);
			} else {
				bi = bi.multiply(THREE).add(BigInteger.ONE);
			}
		}
		return bi;
	}
	public static void main(String[] args) {
		for (int i=0;i<10;i++){
			var b = genBig();
			var bi = iterate(1000000, b);
			if (bi.compareTo(BigInteger.TWO)>0){
				System.out.println(i);
				System.out.println("'" + b + "'");
				System.out.println("'" + bi + "'");
				System.out.println();
			} else {
				System.out.println(".");
			}
		}
	}
} 
и первое же найденное кандидатное число: '9377897214047052446413091867867321397445267849887049287258514180855217329810859699227025543377461888005571102855313298648307974925660684942079487950339751789142749255403203631352114865462610029549753930151308853962071139769859558597477464671896308522755977736482286896117305008600237734179912082570506'
Если число итераций поднять с 1 млн, до 10 млн, то вычисления сильно замедлятся, а 1 млн обсчитывается достаточно быстро. Слава богу не вручную.
★3
30 комментариев
Гжегож Бженчышчикевич, аплодирую лёжа!
avatar
ПBМ, если тебя зажимает производительность ПК, попробуй Visual C++ AMP. Распараллеливание на нити графического процессора ускоряет счёт в десятки раз. Но каждое ветвление «if» тормозит на 25%.
avatar
Rostislav Kudryashov, Но вообще-то, там где есть шанс для Монте-Карло, «генетические алгоритмы» предпочтительнее.
avatar
Ну или математически доказать, что вот именно такая торговля будет бесконечно приносить доход.
Вопрос первый. Зачем бесконечно?
avatar
Остаётся только верить, что история, на которой не разоряется робот, даст нам прибыль в будущем.  
Ну, это не вариант.
avatar
Я думаю (чистое IMHO), что все адепты метода Монте-Карло — и ТС, и уважаемый 3Qu, возможно, совершают методологическую ошибку.

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

Если же оптимальные или субоптимальные стратегии образуют тонкое множество (скажем, меры 0), то метод тыка никогда ничего не даст...

С уважением
avatar
Мальчик Buybuy, на счет метода тыка вы сильно заблуждаетесь. Монте-Карло не для тыка, а для проверки гипотез.
avatar
3Qu, ну Ок

Пусть устраивающие нас субоптимальные системы образуют в пространстве параметров гиперповерхность коразмерности 2 (к примеру, кривую в 3-х мерном пространстве).

Как мы будем применять метод Монте-Карло для поиска чего-то субоптимального?

С уважением

P.S. Для завершения вычислений нам потребуется пара гипотез о том, что субоптимальное решение лежит гиперповерхности коразмерности 1. Но тогда можно получить аналитическое решение, так что метод тыка вроде и не нужен…
avatar
Мальчик Buybuy, хорошо. У нас иголки в стоге сена и не оч чувствительный магнитометр, который еще и реагирует непонятно на что. Ну, и учтем, что стог многомерный.
avatar
3Qu, и что?

Найдете?

С уважением
avatar
Мальчик Buybuy, что-то наверное найдем, если не стремиться найти все.
ЗЫ Это как и с рудой. Стоимость процесса обогащения растет по экспоненте по мере увеличения степени чистоты или желания выбрать из руды все до крохи.
avatar
Мальчик Buybuy, ну методы гуглятся же.
вот например https://studfile.net/preview/5389870/page:6/

но я честно говоря монте-карло использую просто как нарицательное имя случайных алгоритмов.
в частности «генетический алгоритм». он просто легче и дешевле.
и ничто не мешает встроить туда несколько вариантов «поискать подальше» и «поискать поближе», а потом варианты «рекомбинировать» и «сравнить».
самое сложное — это когда параметров много (большая размерность), и когда часть размерностей имеют зависимости, уже метазадача оптимизации оптимизатора.
avatar
Мальчик Buybuy, это же философский вопрос. или вопрос теории вероятности.
да, мы условно ищем ключи там где светло. но мы в отличие от анекдота, никакие ключи не теряли и не факт что они вообще есть. а если есть, то почему они должны быть только одни? и фонарик-то у нас в руках, а не к полу прибит. мы сначала тут поищем, ошибёмся, разочаруемся, поищем в другом месте. не найдём, ну так что с того. люди смертны.

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

avatar
ПBМ, это все теория из учебников

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

С уважением
avatar
«История же это всего-навсего некий случайный ряд, который уже есть.» — здесь ашибка большинства алгоритмистов, история это не случайный ряд.
avatar
Ну  хотим мы этого или не хотим, но
1.: Любая торговля — это осознаваемый или не осознаваемый прогноз будущего приращения цены.
2. Лучший статистический прогноз будущего приращения цены — некоторая функция от известной прошлой информации. Только не обязательно одна и та же во времени — это раз. А два — вопрос выбора прошлой информации при построении функции прогноза  — это тоже задача, которая в общем случае не имеет однозначного решения.

Поэтому «разложив» стратегию в рамках пп. 1 и 2 достаточно просто понять — рабочий это вариант или туфта. Самое сложное — это найти нетуфтовую стратегию, т. е. функцию, дающую нетривиальный статпрогноз будущего приращения цены. Так как это задачка из серии «пойди туда, не знаю куда».
avatar
читаю я вас, технарей с мат образованием, и радуюсь, что финанс астрология предлагает истинные алгоритмы, которые не надо придумывать, а только грамотно собрать и толково применять.
avatar
Astrolog, ага-ага-да!

Чтобы стать самым богатым человеком в Мире нужно совершить всего порядка 30 сделок. Ну плюс-минус. Где-то пытались подсчитывать. Я почему-то верю. 

Просто «ниразу не ошибиться».
“Всего-то”! ))

Если вы обладаете «истинным алгоритмом»©, по Вашему скромному мнению, то Вы обладаете самым настоящим Граалем.

Который по этой незамысловатой логике позволяет вам взлететь в топ богатейших людей Мира.

И то! Это только при первых 30 сделках. 

Дальше я не знаю что Вам даже и делать! 


Весь фокус всей этой факаналии вакханалии в том, что НИКТО не знает будущего. «Смысл жизни»®™©

И даже… не должен знать! 
avatar
P.S. Если кому не нравится цифра. То подставьте свою. Какая вам больше нравится.

40?
50?

Но она априори “конечна”. И даже очень мала.

И как назвал бы Нассим Талеб «Среднестан»®™© против «Крайнестана»®™©. Разброс на самом деле небольшой.

То же самое, если кто не знал. Лист бумаги любого размера. Ну то есть АБСОЛЮТНО ЛЮБОГО РАЗМЕРА!!!… Можно сложить только 8 раз.

Но если создать лист бумаги размером с футбольное поле.

… То 9! :D

И даже не 10. 


Сила «геометрических прогрессий».
avatar
не ради рекламы, а именно для подтверждения возможностей прогнозирования как на прошлом, так и в будущем…

показываю свой плейлист Астро Алгоритмы

m.youtube.com/playlist?list=PLxHiioiXmEDtG4h5u28eqJz2OyLCnKhuf
avatar
Все знают известную гипотезу Коллатца о числовых рядах и метод численных экспериментов Монте-Карло, который применяли в Лос-Аламосе при создании ядерной бомбы США. *)

Да, коллега!

Пишешь тут всякие банальности.
А потом удивляешься.

Отсюда и столько мало лайков! 
avatar
Борян Буффетoff, вот ты такой крутой, бро...

Что клейма негде ставить
А что такое гипотеза Коллатца — знаешь?
Про то, какое отношение она имеет к существу вопроса — расскажешь?!

С уважением
avatar

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

Вот скрин на момент публикации теории (то есть на максимуме биткоина в ноябре) 


Полный график гипотезы Коллатца выглядит так:


Сейчас ситуация на графике курса битка + модель гипотезы Коллатца имеет следующий вид:


(Все графики взяты с его постов).

Как вы думаете это банальное совпадение курса битка и модели гипотезы Коллатца? Или тут даже нет никаких совпадений?

avatar
Zep, а курс битка после прогноза, когда он был около 70 000 долл за монету (именно тогда и был опубликован этот прогноз) идёт чётко спрогнозируемому курсу и его стоимость уже около 20 000 долл. Вроде прогноз работает… а там хз. Время покажет, а я пока посмотрю.
avatar

А тем временем биток уже 15 600 долл. Вроде всё идёт по прогнозу .

Если же учитывать весь прогноз данный пользователем, то биток ждёт скам!

avatar

теги блога П М

....все тэги



UPDONW
Новый дизайн