Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 518 сообщений
Cообщения с меткой

монте-карло - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

[Перевод] Логарифмируй это: метод логарифмической производной в машинном обучении

Понедельник, 21 Августа 2017 г. 16:06 (ссылка)



Прием, о котором пойдет речь — метод логарифмической производной — помогает нам делать всякие штуки, используя основное свойство производной от логарифма. Лучше всего этот метод зарекомендовал себя в решении задач стохастической оптимизации, которые мы исследовали ранее. Благодаря его применению, мы нашли новый способ получения стохастических градиентных оценок. Начнем с примера использования приема для определения оценочной функции.



Довольно математично.
Читать дальше ->

https://habrahabr.ru/post/335614/

Комментарии (0)КомментироватьВ цитатник или сообщество
casinozru

Казино в Монте-Карло

Воскресенье, 23 Июля 2017 г. 12:15 (ссылка)


6998_le-casino-de-monte-carlo-monaco (700x490, 197Kb)



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



Читать далее...
Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
ovenca

Японский сад. Монако

Понедельник, 17 Июля 2017 г. 04:12 (ссылка)

Это цитата сообщения Трииночка Оригинальное сообщение


Японский сад. Монако



 



Японский сад в Монако создавался по просьбе князя - принца Монако Реньера, адресованной японскому ландшафтному проектировщику Ясую Беппу, который на тот момент уже получил высокую оценку своего профессионального рейтинга, став победителем цветочной выставки в г. Осака в 1990 году. Сад принадлежит акционерному обществу Монако, владеющему сетью отелей, курортов и игорного бизнеса в государстве. Монако – крошечное, изумительное по красоте княжество на Лазурном берегу. Богатое историей и легендами, это государство самым невероятным образом умудрилось сохранить не только свою независимость, но и неповторимое своеобразие в ряду курортов Средиземноморья. Кто не знает знаменитое казино Монте-Карло или футбольный клуб «Монако»? Только мало кому известно, что из примерно двухсот гектаров территории страны пятая часть занята садами и парками. При таком колоссальном недостатке площади отдать под сады 39 га! Уже только этот факт заставляет обратить внимание людей, интересующихся ландшафтным дизайном и архитектурой, на эту удивительную страну.







Японский сад



Монако – крошечное, изумительное по красоте княжество на Лазурном берегу. Богатое историей и легендами, это государство самым невероятным образом умудрилось сохранить не только свою независимость, но и неповторимое своеобразие в ряду курортов Средиземноморья. Кто не знает знаменитое казино Монте-Карло или футбольный клуб «Монако»? Только мало кому известно, что из примерно двухсот гектаров территории страны пятая часть занята садами и парками. При таком колоссальном недостатке площади отдать под сады 39 га! Уже только этот факт заставляет обратить внимание людей, интересующихся ландшафтным дизайном и архитектурой, на эту удивительную страну.



Японский сад. Монако



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Трииночка

Японский сад. Монако

Воскресенье, 16 Июля 2017 г. 10:00 (ссылка)


Японский сад. Монако



 



Японский сад в Монако создавался по просьбе князя - принца Монако Реньера, адресованной японскому ландшафтному проектировщику Ясую Беппу, который на тот момент уже получил высокую оценку своего профессионального рейтинга, став победителем цветочной выставки в г. Осака в 1990 году. Сад принадлежит акционерному обществу Монако, владеющему сетью отелей, курортов и игорного бизнеса в государстве. Монако – крошечное, изумительное по красоте княжество на Лазурном берегу. Богатое историей и легендами, это государство самым невероятным образом умудрилось сохранить не только свою независимость, но и неповторимое своеобразие в ряду курортов Средиземноморья. Кто не знает знаменитое казино Монте-Карло или футбольный клуб «Монако»? Только мало кому известно, что из примерно двухсот гектаров территории страны пятая часть занята садами и парками. При таком колоссальном недостатке площади отдать под сады 39 га! Уже только этот факт заставляет обратить внимание людей, интересующихся ландшафтным дизайном и архитектурой, на эту удивительную страну.







Японский сад



Монако – крошечное, изумительное по красоте княжество на Лазурном берегу. Богатое историей и легендами, это государство самым невероятным образом умудрилось сохранить не только свою независимость, но и неповторимое своеобразие в ряду курортов Средиземноморья. Кто не знает знаменитое казино Монте-Карло или футбольный клуб «Монако»? Только мало кому известно, что из примерно двухсот гектаров территории страны пятая часть занята садами и парками. При таком колоссальном недостатке площади отдать под сады 39 га! Уже только этот факт заставляет обратить внимание людей, интересующихся ландшафтным дизайном и архитектурой, на эту удивительную страну.



Японский сад. Монако



В ноябре 1992 г. Японский сад в Монако был освящен высокопоставленным синтоистским священником из японского Храма Dazaifu. С этих пор Японский сад стал местом, которое туристические агентства с превеликим удовольствием включают во все свои экскурсионные маршруты и туры по карликовому государству Монако, тем более, что сад находится рядом с пляжем на проспекте Принцессы Грейс (проспект назван в честь погибшей жены принца Грейс Келли, мечтавшей о подобном саде). На строительство сада, занимающего 7000 квадратных метров, ушло 17 месяцев (1,5 года), со дня проектировки до момента официального открытия в общем ушло 3 года. Официально сад был открыт для посещений в 1994 году.



P1030180.JPG



Одним из чудес Монако, бесспорно, является японский сад, который находится на проспекте Принцессы Грейс, прямо возле пляжа. По насыщенности и полету фантазии он сравним с лучшими садами и парками мира. Недаром сотни тысяч туристов, приезжающие в Монако, обязательно включают этот объект в свои экскурсионные маршруты.



Японский сад. Монако



Сад был заказан Акционерным Обществом Купален Монако японскому архитектору-пейзажисту Ясюо Беппю, обладателю Гран-При на цветочной выставке «Осака-90». Строительство заняло 17 месяцев кропотливого труда целой команды японских дизайнеров, которым пришлось решать множество технически сложных задач в условиях Средиземноморья. Деревянные стройматериалы, бамбук, черепица и каменные фонари были завезены из Японии. Скалы и каменные блоки, использованные вокруг бассейна, привезены с Корсики, гранит – из окрестностей района Овернь, известняк – из долины Тинэ. Несколько десятков японских садовников в течение многих недель разыскивали нужный материал для сада по всей территории Франции. Около 1000 тонн камней было собрано и доставлено в Монако.



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Трииночка

Княжество Монако

Воскресенье, 16 Июля 2017 г. 09:55 (ссылка)


Княжество Монако



4059776_0_4a4ea_3cda9bbc_XXL (500x164, 70Kb)



Легенда рассказывает, что своим основанием Монако было обязано Геркулесу, который, возвращаясь из Испании, решил отдохнуть в этом чудесном уголке Лазурного берега. На площадке скалы он заложил город и дал ему имя «Портус Херкулис Монеки». Последнее слово, означающее «уединенный», и легло в основу современного названия города и всего княжества.







Ницца-сердце Ривьеры. Монако


Монако, страна роскоши, красоты и казино!


Вильфранш-сюр-Мер. Франция


Монако


Фонари


Монако Гавань Геркулес



Этот уголок роскоши и богатства расположен на Лазурном Побережье, с берега окруженный территорией Франции. В 1865 г. в Монте-Карло было открыто казино и создан таможенный союз с Францией. Эти события ускорили экономическое развитие страны. Благодаря инвестициям расширили территорию княжества, построили порт и создали развлекательную индустрию, сделавшую Монако богатой страной, в которую съезжается вся мировая элита. Там проходит один из этапов «Формулы 1». Активным строительством в Монако занимался также князь Ренье III. В 2005 г., он передал свои полномочия сыну и наследнику князю Альберу II, который правит страной в настоящее время.



Гавань - порт Монако



Монако - независимое княжество находится на юго -востоке Франции, в 12 км от Итальянской Ривьеры. Длина Монако составляет 4 км, ширина в некоторых местах сужается до 200 м. И всё это пространство вплотную застроено высотными бетонными домами. На фото Ла-Кондами́н— один из пяти районов (коммун) - деловой центр страны. Гавань Геркулес или порт Монако - это глубоководный порт Французской Ривьеры, и главная гавань государства. Ежегодно здесь проводится крупнейшая в мире выставка яхт, в которой принимают участие около сотни яхт. Днем здесь во всей красе видны белоснежные яхты миллионеров. По территории района вдоль кромки моря на набережной Альберта I проходит часть трассы Формулы-1, проходящей ежегодно в мае. В Монако «Формулу-1» и придумали – ее автором стал близкий друг семьи Гримальди Энтони Нож(Antony Noghes), он провел первые соревнования ‘F-1’ в 1929 г.



Читать далее...
Метки:   Комментарии (20)КомментироватьВ цитатник или сообщество
Комфортариум (Автор -butikovanv)

Бузова о Монте-Карло: Работаю круглосуточно и могу себе позволить этот курорт!

Вторник, 20 Июня 2017 г. 12:17 (ссылка)


Снимок экрана (720) (603x402, 279Kb)



Минувший уик-энд телеведущая и певица Ольга Бузова провела в одном из самых престижных курортов мира — в Монте-Карло. За коротким, но ярким отдыхом в княжестве Монако наблюдали миллионы подписчиков знаменитости, теряясь в догадках, кто и зачем вывез Бузову на частном джете. Масла в огонь Ольга подливала интригующими хештегами #спасибо и #мнесейчасэтопростонеобходимо. По одной из версий интернет-пользователей, телеведущая рассекала по средиземным водам на яхте миллиардера Андрея Мельниченко. Впрочем, сама девушка в разговоре с Super заявила, что отдыхала с подругами.

Читать далее...
Метки:   Комментарии (6)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Dagaz: Забегая вперёд

Четверг, 08 Июня 2017 г. 14:10 (ссылка)

image Сто тринадцать раз в секунду оно тянется, и достает все дальше. Если бы пришло подтверждение, сигнал — оно могло бы остановиться, и оно не останавливается. Оно тянется и находит всё новые способы. Оно импровизирует, оно изучает. Оно не сознает, что делает…



Джеймс Кори «Пожар Сиболы»




Вообще говоря, «сильный» игровой AI не является моим приоритетом. Глупо соревноваться со специализированными игровыми движками, занимаясь универсальным и имея лишь однопоточный JavaScript, встроенный в браузер, в качестве вычислительного ресурса. Кроме того, есть целый ряд игр, в которых потребности в сложном AI просто не возникает. Вот здесь, например, весь AI сводится к поиску кратчайшего пути, а в этой игре с задачей прекрасно справляется рандом. Увы, такие игры скорее исключение чем правило. Гораздо чаще, приходится изрядно потрудиться, чтобы программа делала ходы, которые не казались бы попросту идиотскими.



Целью моего проекта является популяризация настольных игр. Я ищу малоизвестные или просто забытые настольные игры и стараюсь вернуть их к жизни. Самые разные игры: древние, современные, сложные и совсем детские, для двух игроков или большего их количества. Даже для одного игрока (головоломки — это тоже игры). Критерий один — игры должны быть интересны! По крайней мере, мне.



На текущей стадии развития проекта не подразумевается серверная часть хоть сколь-нибудь более сложная чем просто набор html-страничек с сопутствующим кодом на JavaScript. Я хочу чтобы игра загружалась и работала в любом современном Web-браузере, в том числе и локально, без доступа к Internet. Всевозможные соревнования, рейтинги и всё что связано со взаимодействием игроков-людей между собой — всё это не про мой проект. Возможно это будет, но вряд ли в ближайшем будущем.



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



Основной инстинкт



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



Имея на своей стороне полную шахматную «армию», требуется поймать (съесть) всего одну фигуру — Махараджу, сочетающую в себе ходы шахматного коня и ферзя. Это очень сильная фигура, но, при правильной игре белых, исход предрешён. С другой стороны, игра за чёрных довольно тривиальна. Реализация бота мало чем отличается от рандомного. Он делает следующее:




  1. Среди всех доступных ходов ищет ход непосредственно ведущий к победе (в нашем случае, это взятие короля противника)

  2. Если такого хода нет, ищет любой ход берущий фигуру противника и не подставляющий «Махараджу» под ответный удар

  3. Если подходящих ходов нет — делает любой безопасный ход

  4. Если нет безопасных ходов — передаёт эстафету другому боту (как правило, рандомному)



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







Вот ещё один пример. В "Трёх мушкетёрах" взятия выполняются только одним из противников, но зато на каждом ходу. Задача другого игрока — направить «мушкетёров» таким образом, чтобы они оказались на одной вертикали или горизонтали. Если цель не будет достигнута и любая из сторон не сможет сделать очередной ход — «мушкетёры» победят:







Играя за «мушкетёров», вполне можно было бы обойтись рандомом, но было бы обидно, если бы компьютер выстраивал линию случайно, имея в запасе другой, безопасный ход. Бот должен играть более осторожно. Код прост настолько, насколько это возможно.



Выбор безопасного хода
CarefulAi.prototype.getMove = function(ctx) {
var result = [];
// Генерируем все ходы из текущей позиции
_.chain(Dagaz.AI.generate(ctx, ctx.board))
// Просто проверка наличия действий внутри хода, на всякий случай
.filter(function(move) {
return move.actions.length > 0;
})
// Для каждого хода
.each(function(move) {
// Применяем ход к текущей позиции, получая новую позицию
var b = ctx.board.apply(move);
// Если цель противника не достигнута
if (b.checkGoals(ctx.design, ctx.board.player) >= 0) {
// Добавляем ход к списку безопасных ходов
result.push(move);
}
}, this);
if (result.length > 0) {
// Выбираем любой случайный ход из списка безопасных
var ix = this.params.rand(0, result.length - 1);
return {
done: true,
move: result[ix],
ai: "careful"
};
}
// Если нет безопасных ходов
if (this.parent) {
// Обращаемся к Рандому
return this.parent.getMove(ctx);
}
}


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



Игры для одного



В случае головоломок, игровой AI является не столько необходимостью, сколько способом «набить» руку. В конце концов, предполагается, что человек будет решать их сам! С другой стороны, можно до бесконечности смотреть, как компьютер пытается решить головоломку вместо тебя:







Простой алгоритм перебора (ничего более эффективного для этого класса головоломок пока не придумали). Чтобы позиции не повторялись, используем Zobrist Hash. В этом видео, можно заметить, что одиночные квадратики как то слишком уж долго вальсируют друг с другом. Всё потому что бот считает их разными фигурами. Это легко исправить. Теперь решение находится гораздо быстрее:







Другой момент, который лично меня очень сильно нервировал, заключался в том, что не дойдя до заветной цели всего пару шагов «по прямой», бот мог сделать шаг «в сторону» и двигать плашки ещё с полчаса, уходя от решения всё дальше и дальше. Чтобы решить эту проблему, я использовал время выделяемое для анимации хода. За 100 миллисекунд, практически незаметные для человека, можно успеть перебрать сотни позиций.



Забегание вперёд
  var x = [];
var queue = [ ctx.board ];
var timestamp = Date.now();
while ((Date.now() - timestamp < this.params.AI_FRAME) && queue.length > 0) {
var board = queue.shift();
var moves = cache(x, board);
if (board.checkGoals(Dagaz.Model.getDesign(), board.player) != 0) {
return {
done: true,
move: traceMove(ctx, board),
ai: "win"
};
}
for (var i = 1; i < moves.length; i++) {
var b = board.apply(moves[i]);
var k = getKey(b);
if (_.isUndefined(x.cache[k]) && !isLoop(ctx, b)) {
queue.push(b);
}
}
}
...


Просто перебираем всевозможные ходы, пока есть время. Если находим цель — идём к ней по прямой! Хотя работа этого бота довольно наглядна, он использует не лучший способ, чтобы решить задачу. Было бы разумнее потратить больше времени вначале, чтобы заняться анимацией уже после того как решение найдено. Именно так я и поступил при разработке бота для решения пасьянсов "Солитёра":







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



Немного текста
Goal: 10,16,17,18,24,31

Current: 22,23

Current: 22,25,24

Current: 22,27,24,26

Current: 22,27,38,26,31

Current: 24,27,38,26,31,23

Current: 22,27,38,24,31,25

Current: 22,27,38,26,29,30

Current: 22,27,38,26,33,32

Current: 22,27,38,26,17,24

Current: 22,27,10,26,17

Current: 24,27,10,26,17,23

Current: 22,27,10,24,17,25

Current: 22,27,10,26,15,16

Current: 22,27,10,26,19,18

Current: 22,27,10,26,31,24

Current: 22,39,24,32

Current: 22,37,24,32,38

Current: 22,23,24,32,38,30

Current: 22,37,26,32,38,25

Current: 22,37,10,32,38,17

Current: 22,37,24,30,38,31

Current: 22,37,24,34,38,33

Current: 22,37,24,46,38,39

Current: 22,37,24,18,38,25





Можно заметить, что я прерываю перебор по достижении набора из 6 позиций (из такого количества фигур состоял искомый пасьянс). Разумеется, это не единственная оптимизация. При наивном подходе, описанном выше, позиции могут повторяться. Как всегда, когда речь заходит о повторении позиций, на помощь приходит Zobrist Hash (на самом деле, он помогает ещё раньше: прежде чем сравнивать позиции поэлементно гораздо эффективнее в начале сравнить их хэши).



Кстати говоря
С отладкой этого бота произошёл забавный казус. Так получилось, что разработанные игры я запускаю, в основном, под FireFox-ом лишь изредка проверяя их на Chrome и IE. Однажды, уже при выкладывании релиза, выяснилось, что solitaire-ai, прекрасно работая под IE и FireFox, под Chrome работает в десятки раз медленнее! Это было не сильно критично, но очень странно.



Для выяснения ситуации пришлось использовать профайлер. В результате оказалось, что причиной тормозов в Chrome является этот самый console.log. Даже если сама консоль закрыта. После того как я убрал консольный вывод, всё заработало с примерно одинаковой скоростью. Мораль в этой истории очень проста. Если вам необходимо выводить большой объём текста (например, в отладочных целях) и вы собираетесь использовать для этого console.log — подумайте ещё раз.



Изрядно потренировавшись на пазлах, можно переходить к более сложным материям.



Оно тянется



Довольно очевидно, что для более менее серьёзных игр, вроде шахмат или шашек, потребуется более сложный AI, чем всё то, о чём я писал выше. Выбор, по большому счёту, невелик: Минимакс, с его "Альфа-бета отсечением" и метод "Монте-Карло" (и по тому и по другому имеются замечательные статьи на Хабре). Каждый из этих подходов универсален. У каждого из них есть свои плюсы и минусы. Не претендуя на полноту обзора, перечислю первое, что приходит в голову.




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

  2. Альфа-бета отсечение особенно эффективно при выполнении поиска в глубину, либо комбинированного поиска (в ширину, до некоторой гарантированной глубины, например на 2-3 хода, после чего, в глубину, не более чем на N уровней). Это делает его малопригодным в условиях ограниченных вычислительных ресурсов и, самое главное, при необходимости вывода ответа не позднее заданного времени (пусть знающие люди поправят меня, если я ошибаюсь).

  3. Эффективность альфа-бета отсечения можно значительно улучшить, применяя предварительно ранжирование ходов по их качеству (как я скажу ниже, при использовании метода «Монте-Карло» такие эвристики тоже полезны).

  4. При использовании метода минимакса, перебор в глубину нельзя останавливать в произвольном месте. При обнаружении форсированных ходов (в Шахматах такими являются шахи и взятия фигур) поиск следует продолжать до возникновения более «спокойной» позиции.

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



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



Это простая игра со взятиями, целью которой является лишение противника всех его фигур или возможности хода. Взятие в Коно довольно своеобразно. Чтобы забрать фигуру противника, на неё необходимо «приземлиться», перепрыгнув одной из своих фигур через другую (благодаря этому, можно начать игру, несмотря на то, что в начальной позиции доска полностью забита фигурами). Вот отладочный вывод при расчёте одного из ходов (ограничение времени ~3 секунды):



Отладочный лог
Player: Black

d2 — c2

Goal: 1; Deep: 26; Player: 1; P1: a2; P2: a4,a3,b3,c3,c2

Goal: 1; Deep: 20; Player: 1; P1: a1; P2: a4,b4,c4,d4,b3

Goal: 1; Deep: 16; Player: 1; P1: b1; P2: a4,b4,d4,a3,c3,d3

Goal: 1; Deep: 34; Player: 1; P1: c2; P2: a4,b4,d4,b3

Goal: 1; Deep: 22; Player: 1; P1: c3; P2: a3,b3,d3,b2,d2

Goal: 1; Deep: 24; Player: 1; P1: b1; P2: a4,b4,c3,b2,c2

Goal: 1; Deep: 30; Player: 1; P1: d2; P2: a4,c4,b3,b2

Goal: 1; Deep: 12; Player: 1; P1: a1; P2: a4,b4,c4,b3,d3,d2

Goal: 1; Deep: 34; Player: 1; P1: b1; P2: a4,b4,a3,c1

Goal: 1; Deep: 60; Player: 1; P1: d2; P2: a4,b4,b3,b1,c1

Goal: 1; Deep: 34; Player: 1; P1: d2; P2: a3,c2,a1,b1

Goal: 1; Deep: 36; Player: 1; P1: b1; P2: a4,d4,a3,d3,c2

Goal: 1; Deep: 32; Player: 1; P1: c1; P2: b4,a3,c3,a2,c2

Goal: 1; Deep: 24; Player: 1; P1: c2; P2: b3,b2

Goal: 1; Deep: 70; Player: 1; P1: a1; P2: b3,b2

Goal: 1; Deep: 38; Player: 1; P1: b1; P2: a4,b4,c3,a2,b2

Goal: 1; Deep: 28; Player: 1; P1: a1; P2: a4,d4,b3,c3,c2

Goal: 1; Deep: 34; Player: 1; P1: b2; P2: a4,b4,d4,a3,d3

Goal: 1; Deep: 20; Player: 1; P1: c1; P2: a4,b4,c4,d4,a3,c3

Goal: 1; Deep: 18; Player: 1; P1: c2; P2: a4,c4,a3,c3,b2,d1

Goal: 1; Deep: 28; Player: 1; P1: a2; P2: d4,c3,d3,c2

Goal: 1; Deep: 34; Player: 1; P1: d1; P2: b4,a3,b3,d3,a2

Goal: 1; Deep: 30; Player: 1; P1: b1; P2: a4,a3,b3,c3,b2,c2

Goal: 1; Deep: 36; Player: 1; P1: a2; P2: b4,a3,b3

Goal: 1; Deep: 24; Player: 1; P1: c1; P2: b4,a3,b3,d3

Goal: 1; Deep: 36; Player: 1; P1: a1; P2: a4,c3,a2,c2

Goal: 1; Deep: 22; Player: 1; P1: c1; P2: a4,b4,c4,d4,b2,c2

Goal: 1; Deep: 38; Player: 1; P1: c3; P2: a4,d4,b3,b2,c2

Goal: 1; Deep: 46; Player: 1; P1: a1; P2: a4,b4,c4,b2,c2

Goal: 1; Deep: 38; Player: 1; P1: a1; P2: a4,b4,d3,c2,d2

Goal: 1; Deep: 28; Player: 1; P1: b1; P2: b4,c4,d4,c3,a2

Goal: 1; Deep: 20; Player: 1; P1: d2; P2: a4,b4,c4,b3,c2

Goal: 1; Deep: 20; Player: 1; P1: c1; P2: a4,b3,c3,b2

Goal: 1; Deep: 48; Player: 1; P1: d1; P2: a3,a2,b2

Win = 5; All = 11; Move = d3 — c3

Win = 6; All = 12; Move = d3 — d2

Win = 13; All = 18; Move = a3 — b3

Win = 7; All = 13; Move = c4 — c3

Win = 3; All = 8; Move = b4 — b3

Player: White

a3 — b3



Имея перед глазами такой вывод, можно оценивать корректность работы алгоритма. Первое, на что следует обратить внимание это то, соответствуют ли «цели», зафиксированные алгоритмом, целям игрока согласно правилам игры. В процессе отладки, у меня была пара ситуаций, когда алгоритм пытался искать попросту «не то». Если с целями всё нормально, смотрим на оценку ходов (Win — количество зафиксированных побед, All — общее количество сыгранных игр). UCT «из коробки» работает, в принципе неплохо, но я внёс пару изменений:




  1. Ограничил глубину поиска (100 по умолчанию)

  2. Добавил эвристики ходов



Для Коно эвристика выглядит следующим образом
Dagaz.AI.heuristic = function(ai, design, board, move) {
var r = 1;
if (move.actions.length > 0) {
var pos = move.actions[0][1][0];
if (board.getPiece(pos) !== null) {
r += 9;
}
}
return r;
}


То есть, взятия в 10 раз более предпочтительны чем «тихие» ходы. Здесь следует заметить, что в отличии от метода минимакса, сортировать ходы в Монте-Карло (в соответствии с их эвристиками) бесполезно. Необходимо строить алгоритм таким образом, чтобы вероятность выбора хода была пропорциональна его эвристической оценке. Оба нововведения благоприятно сказались на статистике побед/сыгранных игр для Коно и я взялся за другие игры.







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



Эвристика довольно очевидна
Dagaz.AI.heuristic = function(ai, design, board, move) {
var r = 1;
for (var i = 0; i < move.actions.length; i++) {
if ((move.actions[i][0] !== null) && (move.actions[i][1] !== null)) {
var d = move.actions[i][1][0] - move.actions[i][0][0];
if ((board.player == 1) && (d < -1)) {
r += 10;
}
if ((board.player == 2) && (d == 1)) {
r += 10;
}
}
if ((move.actions[i][0] !== null) && (move.actions[i][1] === null)) {
r += 5;
}
}
return r;
}


Если фигура двигается вперёд, а не вбок — считаем ход предпочтительным.



С точки зрения отладки, игра дала информацию о поведении алгоритма на больших досках. Все оценки количества побед для ходов мгновенно обнулились. Алгоритм просто не успевал найти ни одной победы, в результате чего начал делать первые попавшиеся ходы (совсем не лучшие). Увеличение глубины поиска помогло не сильно — трёх секунд явно не хватало на набор «критической» массы партий, сыгранных в фазе симуляции. Пришлось учитывать эвристики при выборе хода:



Изменения в UCT
function UctAi(params) {
this.params = params;
...
if (_.isUndefined(this.params.UCT_COEFF)) {
this.params.UCT_COEFF = Math.sqrt(2);
}
}

UctAi.prototype.getMove = function(ctx) {
this.generate(ctx, ctx.board);
...
var mx = null;
for (var i = 0; i < ctx.childs.length; i++) {
var u = 0;
if (ctx.childs[i].win > 0) {
u = ctx.childs[i].win / ctx.childs[i].all;
}
var h = this.heuristic(ctx.design, ctx.board, ctx.childs[i].move);
var w = this.params.UCT_WEIGHT * u + (1 - this.params.UCT_WEIGHT) * h;
if ((mx === null) || (w > mx)) {
mx = w;
ctx.result = ctx.childs[i].move;
}
console.log("Weight: " + w + "; Win = " + ctx.childs[i].win + "; All = " + ctx.childs[i].all + "; Move = " + ctx.childs[i].move.toString());
}
...
}


Ходы по эвристикам конечно хуже чем то, что даёт UCT, но, в не очень сложных играх, они дают компьютеру «дожить» до того момента, когда UCT сможет работать. Весовые коэффициенты подобраны таким образом, чтобы эвристики оказывали заметное влияние лишь в тех случаях, когда алгоритм Монте-Карло не работает.



Следующей игрой стала Камисадо. Я уже писал о ней раньше. Нельзя сказать, что метод Монте-Карло работает здесь вполне удачно. Программа делает вполне адекватные ходы, но если задаться целью, победить её совсем не сложно:







Главная причина в том, что я не смог придумать для этой игры простую и адекватную эвристику. В результате, программа делает свои ходы «на ощупь». При наличии достаточных вычислительных ресурсов это не было бы проблемой (алгоритм Монте-Карло подходит для этой игры как нельзя кстати), но 3 секунды расчёта хода в одном потоке — это пока максимум того, что я могу себе позволить (кстати, UCT можно очень хорошо масштабируется при наличии нескольких потоков).



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

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/330320/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Трииночка

Монако

Понедельник, 24 Апреля 2017 г. 13:09 (ссылка)


Монако







Монако Монако



Княжество Монако - карликовое государство на юге Европы на берегу Лигурийского моря.



Монако



Монако является одним из самых маленьких и густонаселенных государств мира. Его площадь всего 2,02 квадратных километра, плотность же населения составляет 18 713 человек на квадратный километр.



Монако



За последние 20 лет территория страны увеличилась на 40 га за счет осушения морских территорий.

Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Беж

10 раз по Монте-Карло

Воскресенье, 23 Апреля 2017 г. 20:19 (ссылка)


Пора бы уже про Рафу что-нибудь написать, а то, чувствую, вы забыли, кто это.)))



Надаль выиграл десятый турнир в Монте-Карло. Классно. Первый был в 2005 году. Он единственный, кто выиграл десять раз один турнир. И еще он больше всех выиграл турниров на грунте - 50!



Поздравляю всех болельщиков! Сегодня все рафаманы празднуют. Пойду тоже упьюсь.



Время рекордов начинается тогда, когда на голове появляется лысинка.



36 (421x600, 167Kb)

Метки:   Комментарии (21)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Надаль выиграл турнир в Монте-Карло

Воскресенье, 23 Апреля 2017 г. 19:48 (ссылка)


В финальном матче Рафаэль Надаль со счетом 6-1, 6-3 обыграл Альберта Рамоса-Виноласа и выиграл десятый турнир в Монте-Карло, установив рекорд. Никто в Открытой эре не выигрывал один турнир 10 раз.



Это 70-й титул Надаля и 50-й на грунте (тоже рекорд). Первый титул в 2017 году. Поздравляем!



40 (700x341, 327Kb)



Фотографии с матча
Метки:   Комментарии (4)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Надаль вышел в финал на турнире в Монте-Карло

Суббота, 22 Апреля 2017 г. 19:11 (ссылка)


В полуфинальном матче Рафаэль Надаль со счетом 6-3, 6-1 обыграл Давида Гоффена и вышел в финал. Поздравляем! Его следующим соперником станет Альберт Рамос-Винолас. Желаем Рафе победы!



21 (496x700, 324Kb)



Фотографии с матча
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Надаль вышел в полуфинал на турнире в Монте-Карло

Пятница, 21 Апреля 2017 г. 22:16 (ссылка)


В четвертьфинальном матче Рафаэль Надаль со счетом 6-4, 6-4 обыграл Диего Шварцмана и вышел в полуфинал. Поздравляем! Его следующим соперником станет Давид Гоффен. Желаем Рафе победы!



9 (456x600, 170Kb)



Фотографии с матча
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Надаль вышел в четвертый круг на турнире в Монте-Карло

Четверг, 20 Апреля 2017 г. 20:05 (ссылка)


В матче третьего круга Рафаэль Надаль со счетом 6-1, 6-1 обыграл Александра Зверева и вышел в четвертый круг. Поздравляем! Его следующим соперником станет Диего Шварцман. Желаем Рафе победы!



8 (600x379, 157Kb)



Фотографии с матча
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Надаль вышел в третий круг турнира в Монте-Карло

Среда, 19 Апреля 2017 г. 20:26 (ссылка)


В матче второго круга Рафаэль Надаль со счетом 6-0, 5-7, 6-3 обыграл Кайла Эдмунда и вышел в третий круг. Поздравляем! Его следующим соперником станет Александр Зверев. Желаем Рафе победы!



29 (600x397, 168Kb)



Фотографии с матча
Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
Rafael_Nadal (Автор -Беж)

Монте-Карло

Пятница, 14 Апреля 2017 г. 23:10 (ссылка)


Сегодня в Монте-Карло прошла жеребьевка, в которой участвовал Рафаэль Надаль. Также он провел фотосессию с кубком турнира. Надаль посеян под 4 номером. Первый круг пропускает.



Сетка: http://www.protennislive.com/posting/2017/410/mds.pdf&nbsp;



4 (700x700, 596Kb)



Фотографии
Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
Басёна

КАЗИНО «МОНТЕ-КАРЛО»

Вторник, 07 Марта 2017 г. 22:25 (ссылка)


Если одни отказываются платить, надо найти других. Потеряв мятежные города Рокбрюн и Ментону, княжество Монако сделало ставку на игорный бизнес



1860-monacomontecarlo.jpg



1858 год



Строительство казино началось в районе Cпелюг. Однако Монако практически оторвано от остальной Европы — добираться сюда игрокам было непросто. С огромным трудом княжеская семья выманила из Германии Франсуа Блана — звезду игорного бизнеса, директора казино в Бад-Хомбурге. Ему дали карт-бланш и долю прибыли в будущем казино. Для управления игорным домом создали Общество морских купаний и кружка иностранцев (оно до сих пор владеет этим бизнесом).



1900-09975u.jpg



1870-е годы



С появлением в 1860-х железной дороги, идущей из Парижа к Лазурному Берегу через Монако, игроков в казино прибавилось. Для строительства нового здания приглашен самый модный архитектор Франции — Шарль Гарнье (автор Гранд-опера). К 1879 году первый корпус с роскошным игорным залом и оперным театром окончен. Вокруг еще много лет кипела работа: разбивались парк и террасы, возводились новые корпуса, виллы и гостиницы. В конце XIX века расходы окупились. Казино стало любимым местом отдыха европейской аристократии и символом роскоши. И основной статьей дохода для карликового княжества.



iStock-534212854.jpg



2016 год



Граждане Монако могут лишь любоваться казино — игра им запрещена княжеским указом Карла III: казино в Монако строили для того, чтобы обогащать жителей, а не для того, чтобы их разорять.



Фото: Internet Archive, Library of Congress, iStock

Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
Туристка

Казино Монте-Карло в городе миллионеров

Среда, 22 Февраля 2017 г. 18:15 (ссылка)


На правах рекламы



Монте-Карло город миллионеров, не имеющий почти пешеходных дорожек, по ним просто не кому ходить! Так же здесь крайне мало общественного транспорта по той же причине. Общественным транспортом пользуется только обслуживающий персонал и туристы, для них есть несколько маршрутов. На улицах роскошного города Монте-Карло можно увидеть только самые дорогие и статусные автомобили Феррари, Ламборджини и Порше здесь почти как сама обыденность.



3364688_154531 (699x450, 219Kb)



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

Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
COGITOPLANET

Княжество Монако

Понедельник, 20 Февраля 2017 г. 21:09 (ссылка)

Княжество Монако

Княжество Монако одно из самых маленьких государств мира. Расположено на юге Европы, на берегу Средиземного моря. Княжество Монако включает слившиеся округа-города Монако, Монте-Карло, Ла-Кондамин и Фонвьей. | Далее » Княжество Монако

Княжество Монако

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<монте-карло - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda