Хочу обсудить возможность построения торгового робота по аналогии с программой играющей в шахматы.
Насколько я знаю (а я не большой спец), шахматные программы имеют в себе такие составляющие:
— просчитанную таблицу 99.99 (а то и 100%) N первых ходов партий — т.н. таблица дебютов, наверное ходов на 10 точно
— функция подсчёта «стоимости»-рейтинга позиции, т.е. ранжирования, какая позиция для программы-игрока лучше из двух, трёх и M разных позиций
— эмулятор своих и чужих ходов (часть которая знает как ходят фигуры)
— функция принятия решения
дальше уже нюансы — как глубоко подсчитываются варианты (2-3 хода в глубину считается средней сложностью), какие оптимизации применяются (некоторые позиции заведомо проигрышные, а ходы глупые, на них не надо тратить время)
вот я и подумал что тут наверное есть много общего с программой по торговле.
— часть по оценке позиции
— эмулятор своих (покупка продажа) и чужих (ход цены) ходов
— база знаний (паттернов, искуственных нейронов, таблиц)
— функция по принятию решения.
Наверняка такая простая мысль пришла уже во многие головы. Вопрос, кто-нибудь что-нибудь пробовал из вас подобное? Как оно, стоит ли свеч? Может есть какие-то интересные статьи про подобного рода роботов?
В последнее время что-то делать не тянет. А вот почитать и подумать интересно.
дальше уже делается расчёт на 2-3 хода для простых программ, для обычного человека хватит. для очень сложных программ расчёт идёт на побольше, 5-6 ходов наверное. для тех что с чемпионами играют может быть и полный перебор делается.
рынок безусловно сложнее. но и вероятности можно запрограммировать.
математики между прочим подсчитали, что бесконечная сумма
1+2+3+4… = -1/12 (минус одна двенадцатая)
так что невозможных задач нет.
про детерминированность компьютерных программ — тоже не правда. искусственные нейронные сети не детерминированы.
твой телефон без всякой подстройки и тренировки распознает и твой голос. и голос твоей жены. и ребёнка. (через облако, конечно)
но это всё отвлечение от темы, вопрос был про роботов аналогичных игре в шахматы.
Ну я свое мнение высказал. На мой взгляд, именно аналогичный шахматному алгоритму — алгоритму тупого перебора — невозможно. Вы можете продолжать верить рекламе гугл, дело Ваше.
В CS общеизвестным фактом является то, что единственная недетерминированная модель вычислений — это Модель Акторов (Carl Hewitt)а также CSP Хоара, которая, фактически, является частным случаем. Доказано, что даже недетерминированная машина Тьюринга обладает лишь ограниченным недетерминизмом, есть алгоритмы, которые она не может реализовать. Если интересно, я могу привести пруфы и пояснения. А Вы давайте пруф, что нейроные сети недетерминированны. Нейросети — это вообще что? модель или инструмент реализации?
перебор — не тупой, уж точно не совсем тупой — в этом дело.
одно -двух полуходовые форсированные варианты — сразу обсчитываются, т е если есть большое количество форсированных вариантов с ясной оценкой — их очень быстро и качественно обсчитывает прога (всякие грубые ошибки и маты в 1-3 полухода).
Дальше — выбор вариантов обсчет с оценкой позиции на каждом полуходе.
Стиль игры можно задавать путем приоритетов в оценке позиции (от тактических до стратегических).
Математики, как всегда, бредят. У них даже нет четкого понимания того, сука, что никаких чисел в реальности вообще не существует. Это абстракции, вопрос чисто конвенциальный. Машина не может достичь предела подсчета бесконечного индуктивного ряда, она никогда не остановится, это ли ни есть наилучшее доказательство их маразма. Они там даже что-то пытаются кукарекать, что матиндукция == дедукция(белое == черное, ога). Если так рассуждать, там все что угодно доказать можно, вопрос лишь в том, какую аксиоматику всунуть
Ну! Вы совсем не играли с компом в шахматы и шашки!!!!
Поиграйте и посмотрите строку рассчета — увидите! глубину можно временем ограничивать или на сколько полуходов!
Полный перебор — ну это тоже не получится (хотя бы пока), у людей круглыми сутками машины стоят!!!
иногда да, ограничивают 1 минутой, т.е. временем.
в шахматы играл. как-то целое лето убил, месяца полтора, чтобы обыграть программу с сайта ICC — Dasher, с программой которая у них называется Jennifer. нарочно не пользовался записями. только своей памятью. откатывать неверные ходы у программы нельзя, каждая партия сначала.
нашел где-то на 31ом ходу чтоли ошибку у программы. и потом долго и мучительно пытался из неё выиграть.
Вы вручную торгуете в плюс? Если ответ да, то вопрос 2.
Хватит ли ваших навыков программирования чтобы перевести ваш положительный опыт торговли в работающий алгоритм? Я этого сделать не смог. Мне нужна была программа способная отличить кошку от собаки, на рисунках детей. Для моего ручного алгоритма больше подходит программа распознавания образов, а не шахматная программа.