Тема : Понимание алгоритмов

Всего поколение назад люди не понимали слова алгоритм. Сегодня алгоритмы есть в каждом уголке цивилизации. Алгоритмы планируют полеты, а затем управляют самолетами. Алгоритмы управляют фабриками, торгуют и доставляют товары, обналичивают выручку и ведут учет. Если бы все алгоритмы внезапно перестали работать, это был бы конец света, каким мы его знаем.

Теперь, что, черт возьми, такое алгоритм?

Отец алгоритмов – Мухаммад ибн Муса аль-Хорезми.

Алгоритм — это последовательность инструкций, говорящих компьютеру, что делать. Самый простой алгоритм: щелкнуть выключателем. Состояние одного транзистора — это один бит информации: 1, если транзистор включен, и 0, если он выключен. Этот бит в компьютерах Администрации социального обеспечения говорит, живы вы или мертвы.

Хотите верьте, хотите нет, но каждый алгоритм, каким бы сложным он ни был, можно свести всего к этим трем операциям: И, ИЛИ и НЕ. Простые алгоритмы могут быть представлены в виде диаграмм с использованием различных символов для операций И, ИЛИ и НЕ. Например, если лихорадка может быть вызвана гриппом или малярией, и вам следует принимать Тайленол от лихорадки и головной боли, это может быть выражено следующим образом:

Алгоритм — это не просто набор инструкций: они должны быть точными и однозначными, достаточными для выполнения компьютером. Например, рецепт приготовления не является алгоритмом, потому что он точно не указывает, в каком порядке нужно что-то делать или каков каждый шаг. Сколько именно сахара в ложке? Как знает каждый, кто когда-либо пробовал новый рецепт, следование ему может привести к чему-то вкусному или беспорядку. Напротив, алгоритм всегда дает один и тот же результат.

С другой стороны, следующий алгоритм игры в крестики-нолики:

Если у вас или у вашего оппонента две клетки подряд, играйте на оставшейся клетке.

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

В противном случае, если центральная клетка свободна, играйте там.

В противном случае, если ваш противник сыграл в углу, играйте в противоположном углу.

В противном случае, если есть пустой угол, играйте там.

В противном случае играйте на любой пустой клетке.

У этого алгоритма есть замечательное свойство: он никогда не проигрывает! Но по-прежнему не хватает многих деталей

Со временем ученые-компьютерщики опираются на результаты работы друг друга и изобретают алгоритмы для новых вещей. Алгоритмы объединяются с другими алгоритмами, чтобы использовать результаты других алгоритмов, в свою очередь, создавая результаты для еще большего количества алгоритмов. Каждую секунду миллиарды транзисторов в миллиардах компьютеров переключаются миллиарды раз. Алгоритмы образуют экосистему нового типа — постоянно растущую, сравнимую по богатству только с самой жизнью.

Однако в этом Эдеме неизбежно есть змей. Его называют монстром сложности. Как и у гидры, у сложного монстра много голов. Одним из них является пространственная сложность: количество бит информации, которое алгоритм должен хранить в памяти компьютера. Если алгоритму требуется больше памяти, чем может предоставить компьютер, он бесполезен и должен быть отброшен. Затем есть злая сестра, временная сложность: сколько времени требуется алгоритму для работы, то есть сколько шагов использования и повторного использования транзисторов он должен пройти, прежде чем он даст желаемые результаты. Если это дольше, чем мы можем ждать, алгоритм снова бесполезен. Но самое страшное лицо сложного монстра — это человеческая сложность. Когда алгоритмы становятся слишком сложными для понимания нашим бедным человеческим мозгом, когда взаимодействий между различными частями алгоритма становится слишком много и они слишком запутаны, вкрадываются ошибки, мы не можем их найти и исправить, а алгоритм не справляется. что мы хотим. Даже если мы каким-то образом заставим его работать, он окажется излишне сложным для людей, использующих его, и плохо работает с другими алгоритмами, откладывая проблемы на потом.

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

Решение сложности

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

увидимся в следующей статье!!! где мы подробно поговорим о машинном обучении…

для удивительных курсов посетите: https://pytholabs.com/