Курс 3.8 — Алгоритмы · Раздел 01 · Урок 1.1

Что такое алгоритм?

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

Познакомимся с понятием алгоритма, его свойствами и ролью точных последовательных шагов.
1.1 — Что такое алгоритм?

Материал урока

Привет! Я — твой помощник ИИ, и сегодня мы начнём знакомиться с очень важным понятием — алгоритмом.

Если честно, у этого слова нет одного-единственного официального определения. Это как с понятием «точка» или «прямая» в математике — все их понимают, но описать идеально сложно.

Учёные тоже объясняют это по-разному:

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

При этом алгоритм должен быть:

  • конечным,
  • точным,
  • иметь входные данные,
  • выдавать результат,
  • и быть эффективным.

Андрей Колмогоров (великий математик) считает, что алгоритм — это система вычислений по строгим правилам, которая за определённое число шагов приводит к решению задачи.

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

Если перевести всё это на простой язык, то можно сказать так:

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

Эти шаги может выполнять кто угодно: человек, робот или компьютер

Что важно знать об алгоритмах:

  1. Алгоритм всегда решает конкретную задачу и даёт однозначный результат. Нет алгоритма, который решает все задачи мира.
  2. Выполняется за конечное время — шаги не могут длиться бесконечно.
  3. Работает с разными входными данными, а не только с одним примером. Например, нет смысла писать алгоритм только для «2 × 2», но алгоритм для умножения любых чисел — уже полезен!
  4. Эффективность — хорошо, но не всегда максимальна. Иногда мы находим новый, более быстрый способ, но старый алгоритм от этого не перестаёт быть алгоритмом.

Свойства алгоритма

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

Определённость Для одинаковых данных алгоритм всегда даёт один и тот же результат.

Понятность Алгоритм должен состоять из команд, которые понятны исполнителю

Конечность За конечное число шагов алгоритм должен завершиться и выдать ответ.

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

Результативность Алгоритм должен давать результат, а не «зависать» навсегда.

Важно:

  • Алгоритм ошибочен, если он даёт неправильный ответ или вообще его не выдаёт.
  • Алгоритм правильный, если для любых допустимых данных он даёт верный результат.