01.00.025 Алгоритм - justjune/AiSD2026 GitHub Wiki
Основные сведения
Алгоритм — это, процедура, которая принимает любой из возможных входных экземпляров и преобразует его в соответствии с требованиями, указанными в условии задачи. (Прим. преобразует в выходные данные.)
Экземпляр — скорее всего, начальные данные, для задачи. (Уточнение автора заметки.)
Задача — , вероятно, понимается в общем смысле этого слова. (Уточнение автора заметки.)
Задача должна быть корректной и определена при помощи описания всего множества входных и выходных данных, являющихся результатом решения задачи.
Все определения выше взяты из книги [ Скиена 2022 с. 25].
Хороший алгоритм должен быть:
- корректным,
- эффективным,
- легкореализуемым. [ Скиена 2022 c. 26].
Корректность (правильность, безошибочность) алгоритма, как правило редко очевидна, поэтому требует процедуры формального математического доказательства. (Прим. автора: К сожалению, в книге Скиена доказательствам не уделяется большого внимания, для упрощения изложения материала. [ Скиена 2022 c. 33].
Эффективность алгоритма рассматривается в [ Скиена 2022 глава 2 02.00.055 Анализ алгоритмов].
Легкореализуемый — ??? Легкореализуемость может подразумевать под собой быстроту написания алгоритма, и не требование им сложных структур для реализации.
Дополнительный материал
Более подробный и, вероятно, лучше изложенный материал по данному вопросу можно найти в главе 2 книги Роджера Пенроуза "Новый ум короля" Пенроуз НУК