Рубрика «эвристика»

В тактических играх ИИ очень важен. Если ИИ видится как «искусственный идиот», то игру может спасти потрясающий мультиплеер, сюжет, атмосфера и графика (это неточно). Решение очевидное: делай хороший ИИ, в чём тут могут быть проблемы?

Cat terminator by CoolAI

В деталях. Ниже описаны мои шаги по конструированию сильного ИИ с характером. Не супер сильного [1], но способного быстро отработать локально в прожорливом браузере любого средне-слабого ПК. Мною применён подход экспертных систем с использованием набора эвристик и мутаций. Описаны 15 шагов постепенного преображения ИИ, каждый из шагов можно пощупать.
Читать полностью »

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

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

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

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

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

Когда-то давно я уже писал довольно большую статью об использовании эвристик в программировании, но сегодня я хочу привести небольшой практический пример. Этим летом я плавал на теплоходе по маршруту Москва — Ростов-на-Дону — Москва, и заметил, что каждый вечер директор круиза пытается найти оптимальную рассадку туристических групп по автобусам. Задача не такая сложная, но минимум 15 минут в день на её решение тратится. Разумеется, я попробовал автоматизировать этот процесс.Читать полностью »

Грязное программирование с чистой душой: разработка эвристических систем (часть 1)Химики любят говорить, что химия занимается исследованием грязных веществ чистыми методами, физика — чистых веществ грязными методами, а физическая химия, дескать, исследует грязные вещества грязными методами. В областях, традиционно относящихся к искусственному интеллекту или смежных с ними (распознавание образов, решение NP-трудных задач, обработка текста и т.д.), большинство задач являются грязными. Т.е. плохо поддающимися формальному описанию и не имеющими четких критериев правильности решения. Не знаю, как выкручиваются химики, а программистам редко удается порешать такие задачи, не запачкавшись. Программирование грязных задач тоже грязно, и здесь грязное — не значит плохое. Эта статья не о том, как сохранить чистоту и стерильность. Эта статья о том, как, вооружившись ломом мужеством и терпением, погрузиться в глубинные литосферные слои и выжить.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js