Что такое алгоритм? »Его определение и значение

Оглавление:

Anonim

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

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

Содержание

В вычислениях это обычно определяется как последовательность последовательных инструкций, в которых некоторые процессы выполняются, чтобы дать ответы на определенные решения или потребности. Таким же образом алгоритмы часто используются в логике и математике, и они также являются основой для разработки руководств пользователя, иллюстративных брошюр и прочего. Один из самых выдающихся в математике - метод, приписываемый геометру Евклиду, который достиг наибольшего общего делителя двух положительных целых чисел, и хорошо известный «метод Гаусса» для определения систем линейных уравнений.

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

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

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

Характеристики алгоритма

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

  • Руководящие принципы, содержащиеся в алгоритме, должны быть конкретными, чтобы не оставлять места для любого типа путаницы, это означает, что соответствующие инструкции должны соблюдаться надлежащим образом или, наоборот, графическое представление потока, в котором вы регистрируетесь, не будет способствовать решению. верный.
  • Он должен быть в идеальном виде, стараясь как можно больше следовать ему столько раз, сколько необходимо, чтобы получить тот же результат, и в случае обратного алгоритм не будет надежным и не будет служить руководством при принятии решения.
  • Они известны своей конечностью, они обычно заканчиваются в какой-то момент, а позже дают результат в конце каждого шага. Если алгоритм расширяется до бесконечности, возвращаясь к некоторой начальной точке, которая никогда не может быть разрешена, это наличие парадокса или хорошо известного «цикла» повторений.
  • Наконец, говорится, что удобочитаемость алгоритмов является ключевым элементом, потому что, если его аргумент непонятен, соответствующие инструкции не могут быть соблюдены, кроме того, это влечет за собой прямую, ясную и лаконичную формулировку текста, найденного в каждом из них.

Части алгоритма

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

  • Вход: также называется заголовком или начальной точкой, это начальная инструкция, которая представляет собой генезис алгоритма и мотивирует его чтение.
  • Процесс: также называется декларацией, это точная разработка, предлагаемая алгоритмом, и в основном это ствол его ключей для формулирования инструкций.
  • Вывод: на этой последней стадии - конкретные инструкции, определяемые алгоритмом, например, его команды или разрешения.

Примеры алгоритмов

Общие примеры математических вычислений включают 2 + 3 = 5 для сложения и 15-9 = 6 для вычитания. Другой способ визуализировать простые алгоритмы - это кухонные рецепты, поскольку они описывают конкретный и упорядоченный процесс, например, «сначала вы должны поставить половину кастрюли воды для нагрева, затем вы должны добавить щепотку соли и, наконец, перец будет разделен, чтобы извлечь семена и прожилки ». В этой модели представлены начало, процесс и конец, которые в основном определяют алгоритмы.

Типы алгоритмов

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

Согласно вашей системе знаков

Качественные и количественные находятся в этой категории.

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

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

По своей функции

В эту классификацию входят следующие.

1. Алгоритм маркировки

Это характеризуется использованием автоматизации для тщательного установления цен с упором на такие факторы, как поведение пользователей, и также известно как способность автоматически определять цены на обесценивающиеся компоненты, чтобы увеличить прибыль от продуктов. продавцы. Он играет очень важную роль в общей практике авиационной отрасли с начала 1990-х годов.

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

2. Вероятностные алгоритмы.

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

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

Кроме того, в этой группе есть три основных типа, которые известны как числовые: Монте-Карло и Лас-Вегас.

  • Численные алгоритмы могут дать приблизительный результат решения проблемы и обычно применяются в инженерии.
  • Алгоритмы Монте-Карло могут дать правильное или неправильное решение и, наконец, иметь определенную погрешность.
  • Алгоритмы Лас-Вегаса отличаются тем, что никогда не оставляют неправильных ответов, по сути, они находят правильное решение или просто сообщают вам о возможном сбое.

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

3. Эвристические алгоритмы

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

4. Алгоритмы поиска с возвратом

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

5. Жадный алгоритм

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

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

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

Постановка задачи

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

Анализ общего решения

Как только проблема определена, пора проанализировать следующее:

  • Информация о билетах, которые они предоставляют нам.
  • Желаемые результаты.
  • Область работы, заявления или другие необходимые элементы.

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

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

Разработка алгоритма

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

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

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

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

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

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

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

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