По словам Шалкова, Р.Дж. (1990), искусственный интеллект - это «область исследований, которая пытается объяснить и подражать интеллектуальному поведению с точки зрения вычислительных процессов». Сегодня появляется все больше областей, в которых ИИ может быть полезен, таких как робототехника, машинное обучение, компьютерное зрение и т. Д.

Агенты

Одним из распространенных технических подходов к ИИ является концепция рационального агента [Russell & Norvig, 2003]. Агент - это программа, которая развивается в определенной среде, может воспринимать через датчики и действовать через субъектов. Он принимает решения, зная об окружающей среде, рационально.

Среды

Каждая среда имеет свои особенности. Наиболее распространены:

  • Известно или Неизвестно: знаете ли вы что-нибудь о реакции среды. Например, новорожденный ребенок развивается в незнакомой среде, он должен это узнать раньше (поэтому он пробует абсолютно все).
  • Доступен или Недоступен: агенты имеют доступ или не имеют доступа ко всем переменным среды, которые могут использоваться для принятия решения. Например, играя в покер, никто не знает карт других игроков. Если не считать читеров или Человека дождя, это недоступная среда.
  • Детерминированный против Недетерминированного: поведение среды определяется логически и статистически. При игре в шахматы действие всегда будет иметь одни и те же заданные последствия (детерминированные). Для движущегося робота поведение его двигателей неопределенно (недетерминировано).
  • Статический или Динамический: меняется ли среда, пока агент принимает решение. Для беспилотного автомобиля кто-то может появиться на дороге, пока он думает, что делать дальше. Это динамичная среда.
  • Дискретное против Непрерывного: конечное или бесконечное количество возможных действий агента.

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

CodinGame & A.I.

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

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

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

Агент CodinGame

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

CodinGame устраняет языковой барьер программирования, предлагая на платформе более 20 языков программирования.

Среда CodinGame

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

В каждой игре агентам противостоят многочисленные ситуации. Затем создается таблица лидеров с использованием алгоритма TrueSkill. Это позволяет каждому измерять производительность своего ИИ и автоматически получать рейтинг в соответствии с другими.

Графическое представление каждой игры доступно для визуализации окружающей среды. Это упрощает отладку и делает кодирование по-настоящему увлекательным!

Примеры

В CodinGame есть 2 основные категории игр с искусственным интеллектом:

Будущее

Моя работа в CodinGame - всегда создавать новые типы контента и игр для программистов. Мне нравится представлять, каким будет кодирование в ближайшие несколько лет.

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

Узнать больше об ИИ