Перейти к основному содержимому

117 записей с тегом "Алгоритмы"

Посмотреть все теги

· 5 мин. чтения

1. Введение

В этом руководстве мы узнаем об алгоритме имитации отжига и покажем пример реализации, основанный на задаче коммивояжера (TSP).

2. Имитация отжига

Алгоритм имитации отжига — это эвристика для решения задач с большим пространством поиска.

Вдохновение и название пришли из отжига в металлургии; это метод, который включает нагрев и контролируемое охлаждение материала.

· 9 мин. чтения

1. Введение

В этой статье мы создадим простую нейронную сеть с помощью библиотеки deeplearning4j (dl4j) — современного и мощного инструмента для машинного обучения.

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

2. Что такое глубокое обучение?

Нейронные сети — это вычислительные модели, состоящие из взаимосвязанных слоев узлов.

· 8 мин. чтения

1. Введение

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

Настоящая формулировка была дана Тони Хоаром, который также известен изобретением алгоритма быстрой сортировки. В этой статье мы анализируем эту известную проблему и кодируем популярное решение.

2. Проблема

./44ac2d6fd4d063653544579fe4d86361.png

· 4 мин. чтения

1. Обзор

Если вы изучали CS, вы, несомненно, прошли курс по компиляторам или что-то подобное; на этих занятиях преподается концепция конечного автомата (также известного как конечный автомат). Это способ формализации правил грамматики языков.

Подробнее о теме можно прочитать здесь и здесь .

Так как же эта забытая концепция может быть полезна нам, программистам высокого уровня, которым не нужно беспокоиться о создании нового компилятора?

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

В качестве быстрого примера мы также можем проверить ввод без внешней сторонней библиотеки.

· 7 мин. чтения

1. Обзор

В этом уроке мы покажем алгоритм Hill-Climbing и его реализацию. Мы также рассмотрим его преимущества и недостатки. Прежде чем перейти непосредственно к этому, давайте кратко обсудим алгоритмы генерации и тестирования.

2. Алгоритм создания и тестирования

Это очень простая техника, которая позволяет нам алгоритмизировать поиск решений:

  1. Определить текущее состояние как начальное состояние
  2. Примените любую возможную операцию к текущему состоянию и сгенерируйте возможное решение
  3. Сравните вновь созданное решение с целевым состоянием
  4. Если цель достигнута или новые состояния не могут быть созданы, выйдите. В противном случае вернитесь к шагу 2

· 5 мин. чтения

1. Обзор

В этой статье мы обсудим алгоритм Минимакс и его применение в ИИ. Поскольку это алгоритм теории игр, мы реализуем простую игру, используя его.

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

2. Введение

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

· 9 мин. чтения

1. Обзор

В этой статье мы собираемся изучить алгоритм поиска по дереву Монте-Карло (MCTS) и его приложения.

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

2. Введение

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

· 6 мин. чтения

1. Обзор

В большинстве случаев, когда мы реализуем алгоритмы на основе графов, нам также необходимо реализовать некоторые служебные функции.

JGraphT — это библиотека классов Java с открытым исходным кодом, которая не только предоставляет нам различные типы графиков, но и множество полезных алгоритмов для решения наиболее часто встречающихся проблем с графами.

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

2. Зависимость от Maven

· 15 мин. чтения

1. Введение

Недавно мы рассмотрели алгоритм решения игры 2048 . Мы обсуждали это с теоретической точки зрения, а не с реальным кодом.

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

2. Первоначальная настройка

Первое, что нам нужно, это настройка, в которой мы можем играть в игру и смотреть, как идет прогресс.

· 5 мин. чтения

1. Введение

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

Мы более подробно обсудим так называемую технику складывания и дадим краткое введение в технику мид-сквер и биннинг.

2. Обзор

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