01.00.025 Алгоритм - justjune/AiSD2026 GitHub Wiki

Основные сведения

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

Экземпляр — скорее всего, начальные данные, для задачи. (Уточнение автора заметки.)

Задача — , вероятно, понимается в общем смысле этого слова. (Уточнение автора заметки.)

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

Все определения выше взяты из книги [ Скиена 2022 с. 25].

Хороший алгоритм должен быть:

  • корректным,
  • эффективным,
  • легкореализуемым. [ Скиена 2022 c. 26].

Корректность (правильность, безошибочность) алгоритма, как правило редко очевидна, поэтому требует процедуры формального математического доказательства. (Прим. автора: К сожалению, в книге Скиена доказательствам не уделяется большого внимания, для упрощения изложения материала. [ Скиена 2022 c. 33].

Эффективность алгоритма рассматривается в [ Скиена 2022 глава 2 02.00.055 Анализ алгоритмов].

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

Дополнительный материал

Более подробный и, вероятно, лучше изложенный материал по данному вопросу можно найти в главе 2 книги Роджера Пенроуза "Новый ум короля" Пенроуз НУК