Educação

O que é algoritmo? »Sua definição e significado

Índice:

Anonim

Em matemática, ciência da computação e outras doutrinas relacionadas, o algoritmo é definido como um conjunto de preceitos estabelecidos e inequívocos, encontrados metodicamente e de forma limitada, que permitem realizar cálculos, processar certas informações, dar soluções para problemas e realizar atividades diversas.. Depois de começar de um estado inicial e de uma entrada, seguindo os procedimentos exigidos, o estado final é alcançado e um resultado é obtido. Algoritmos são o objeto de investigação de algoritmos e embora muitos possam não acreditar, eles também podem ser usados ​​em todos os aspectos da vida cotidiana.

O que é um algoritmo

Tabela de conteúdos

Na computação, geralmente é definido como uma sucessão de instruções sequenciais, nas quais alguns processos são realizados a fim de dar respostas a certas decisões ou necessidades. Da mesma forma, algoritmos são frequentemente utilizados em lógica e matemática, além de servir de base para a elaboração de manuais do usuário, folhetos ilustrativos, entre outros. Um dos mais destacados da matemática é o atribuído ao geometrista Euclides, para atingir o maior divisor comum de dois inteiros positivos e o conhecido "método gaussiano" para determinar sistemas de equações lineares.

Em relação à informática, esse cálculo pode ser conhecido como a sequência de diretrizes a serem seguidas para a determinação de um problema por meio do uso de um computador.

Portanto, a algorítmica é entendida como uma disciplina que se concentra na análise e projeto de algoritmos. Em consideração ao primeiro, procura examinar propriedades como sua correção e sua eficácia com respeito ao tempo e ao espaço, para entender os problemas que podem ser resolvidos algoritmicamente. Quanto ao segundo, busca estudar os paradigmas já estabelecidos e propõe novos exemplos.

O algoritmo está localizado no centro do progresso da computação e é importante nas diferentes áreas do mesmo. Desse modo, seria impossível para serviços tão bem-sucedidos como o Facebook e o Google lidar com a magnitude das informações que possuem sem a colaboração de algoritmos ou estruturas de dados especializadas. Porém, no cotidiano também são utilizados algoritmos, exemplo disso é o acendimento do fogão, pois começa no momento em que a pessoa vai à cozinha, observa e termina, quando passa a acendê-la.

Características de um algoritmo

Apesar de o algoritmo ser conhecido como o conjunto finito e ordenado de várias etapas que levam à resolução de um problema, diz-se que a natureza dessas dificuldades varia de acordo com o contexto em que se encontram, desta forma, existem problemas. química, matemática, filosófica, entre outras. Assim, pode-se dizer que sua natureza é variada e sua execução pelo computador não é necessária. Além de tudo o que foi explicado anteriormente, os algoritmos possuem características que são elementares para determinar o que são hoje e serão mencionadas a seguir.

  • As orientações contidas em um algoritmo devem ser específicas para evitar qualquer tipo de confusão, isso significa que as instruções correspondentes devem ser seguidas de forma adequada ou, pelo contrário, a representação gráfica do fluxo em que você está se inscrevendo não facilitará a solução. corrigir.
  • Deve estar em perfeita definição, tentando o máximo possível segui-lo quantas vezes forem necessárias, para obter o mesmo resultado e caso ocorra o contrário, o algoritmo não será confiável e não servirá de guia na tomada de decisão.
  • São conhecidos pela particularidade de serem finitos, geralmente terminam em algum ponto e posteriormente lançam um resultado no final de cada etapa. Se o algoritmo se estende indefinidamente, voltando a algum ponto inicial que nunca pode ser resolvido, há a presença de um paradoxo ou do conhecido “loop” de repetições.
  • Por fim, afirma-se que a legibilidade dos algoritmos é o elemento chave, pois se seu argumento for ininteligível, as instruções correspondentes não poderiam ser seguidas, além disso, implica uma redação direta, clara e lacônica do texto encontrado em cada um.

Partes de um algoritmo

Cada operação algorítmica possui três partes diferentes que estão sujeitas à estrutura básica de um sistema e são elas:

  • Entrada: também chamada de cabeçalho ou ponto de partida, é a instrução inicial que representa a gênese do algoritmo e que motiva sua leitura.
  • Processo: também chamado de declaração, é a elaboração precisa oferecida pelo algoritmo e é basicamente o tronco de suas chaves para a formulação de instruções.
  • Saída: nesta última fase encontram-se as instruções específicas determinadas pelo algoritmo, por exemplo, seus comandos ou resoluções.

Exemplos de algoritmos

Exemplos comuns de cálculos matemáticos incluem 2 + 3 = 5 para adição e 15-9 = 6 para subtração. Outra forma de visualizar algoritmos simples é em receitas de cozinha, uma vez que descrevem um processo específico e ordenado, por exemplo, "primeiro você deve colocar meia panela de água para aquecer, depois adicionar uma pitada de sal e, finalmente, a pimenta será dividida para extrair as sementes e os nervos. " Neste modelo são apresentados um início, um processo e um fim, que são basicamente o que definem os algoritmos.

Tipos de algoritmo

Entre os vários tipos de algoritmos existentes em todo o mundo, destacam-se aqueles que são classificados segundo um sistema de signos e outros segundo a sua função. O algoritmo é basicamente a solução mais conhecida para resolver qualquer problema em particular e de acordo com suas estratégias e suas funções existem diferentes tipos destas, entre as quais são dinâmicas, reversas, força bruta, oportunistas, marcantes., aleatório, etc. Além dos algoritmos citados, existem milhares deles adequados para solucionar dificuldades em qualquer área.

De acordo com o seu sistema de sinalização

Qualitativo e quantitativo estão localizados nesta categoria.

  • Os algoritmos qualitativos são caracterizados por possuírem elementos verbais, a exemplo destes são as instruções ou o reconhecido “passo a passo” que se conferem oralmente, como receitas de artes culinárias ou procedimentos para realização de trabalhos manuais.
  • Os algoritmos quantitativos são completamente opostos aos qualitativos, devido à presença de certos elementos numéricos e ao uso da matemática para realizar cálculos, por exemplo, quando se encontra a raiz quadrada ou se resolvem equações.

Dentro desta classificação também existem algoritmos computacionais e não computacionais. Os computacionais são realizados por meio de um computador e caracterizam-se por serem tão complexos a ponto de exigir que uma máquina seja executada, além disso, são algoritmos quantitativos que podem ser otimizados. Os não computacionais não têm a obrigação de serem executados por meio de máquina ou computador; um exemplo claro disso é a programação de uma televisão.

De acordo com sua função

Os itens a seguir estão localizados nesta classificação.

1. Algoritmo de marcação

Caracteriza-se por utilizar a automação para definir preços de forma diligente, com foco em fatores como o comportamento do usuário e também é conhecida como a capacidade de determinar automaticamente preços para desvalorizar componentes, a fim de aumentar os lucros dos usuários. vendedores. Ele desempenhou um papel muito importante nas práticas comuns das indústrias aéreas desde o início dos anos 1990.

O algoritmo de marcação distingue-se por ser uma das práticas mais comuns em indústrias altamente competitivas, referindo-se a agências de viagens ou a esses estabelecimentos online. Este tipo de algoritmo pode ser extremamente complexo ou relativamente simples, já que em muitos casos percebe-se que são otimizados ou autoaprendidos com a continuidade de determinados testes. Além de tudo isso, os algoritmos de marcação também podem se tornar impopulares entre a clientela, já que os indivíduos tendem a valorizar tanto a estabilidade quanto a justiça.

2. Algoritmos probabilísticos

São aqueles em que a forma como os resultados são obtidos depende das probabilidades, estes são comumente conhecidos como algoritmos aleatórios.

Em algumas aplicações, o manejo desse tipo de operação é comum, por exemplo, quando o comportamento de qualquer sistema existente ou idealizado é simulado ao longo do tempo, em que uma solução fortuita é obtida como consequência. Em outras circunstâncias, o problema a ser resolvido costuma ser determinístico, mas existe a possibilidade de transformá-lo em fortuito, para resolvê-lo por meio da aplicação do algoritmo de probabilidade. O positivo do aleatório é que sua aplicação não requer estudos matemáticos altamente sofisticados.

Além disso, dentro deste grupo existem três tipos principais que são conhecidos como numéricos, Monte Carlo e Las Vegas.

  • Algoritmos numéricos podem fornecer um resultado aproximado do problema e geralmente são aplicados em engenharia.
  • Os algoritmos de Monte Carlo podem dar a solução certa ou errada e ter uma certa margem de erro e por último.
  • Os algoritmos de Las Vegas se diferenciam por nunca deixarem uma resposta incorreta, na verdade, eles encontram a solução correta ou simplesmente informam sobre uma possível falha.

A programação dinâmica se refere ao método em que o algoritmo calcula os resultados. Às vezes, as soluções de certos elementos que apresentam problemas dependem dos resultados de outros problemas menores. Então, para resolvê-los, os mesmos valores devem ser recalculados para resolver os menores subproblemas, porém, isso pode gerar uma perda de ciclos. Para corrigir isso, pode-se usar a programação dinâmica e neste caso a solução de cada subproblema é lembrada, para usar este mesmo valor ao invés de repeti-lo várias vezes.

3. Algoritmos heurísticos

Eles se diferenciam por encontrar soluções e ainda não garantem que o melhor das respostas seja encontrado, por isso, podem ser considerados como algoritmos aproximados. Eles podem ser usados ​​quando encontrar uma solução por uma rota normal for considerado impossível. As heurísticas fornecem os usos que serão explicados abaixo. No planejamento, eles são usados ​​para programar atividades em um curto período de tempo, no projeto eles são usados ​​para delinear sistemas elétricos ou digitais e na simulação eles são usados ​​para verificar determinados procedimentos.

4. Algoritmos de retrocesso

São conhecidas como estratégias recursivas que resolvem problemas como quebra-cabeças, labirintos ou peças semelhantes, nas quais é feita uma busca profunda para encontrar uma possível solução. O seu nome refere-se ao facto de nas consultas feitas para obter um resultado, voltar sempre ao ponto anterior para poder testar alternativas. Geralmente são revogados para observar seu impacto na economia, nos mercados, na marcação de preços, em determinadas operações e até na própria sociedade.

5. Algoritmo ganancioso

É conhecido como destruidor ou dente doce e é aplicável em problemas de otimização, em cada etapa deste algoritmo é feita uma escolha lógica e ótima para se chegar ao melhor das soluções globais. No entanto, deve-se levar em conta que, uma vez que um julgamento é alcançado, absolutamente nada pode ser feito para corrigi-lo ou alterá-lo no futuro. Essa operação tem esse nome porque a cada passo é escolhida a melhor fração que pode "engolir" sem se preocupar com o que acontece depois.

Propriedades de um algoritmo

Vários autores tentaram definir algoritmos de maneira formal ao usar modelos matemáticos. No entanto, esses espécimes estão intimamente relacionados a um tipo peculiar de informação que inclui números, símbolos e alguns gráficos, enquanto operam em uma vasta quantidade de distribuição de dados. Em geral, a ação comum de cada uma das definições é resumida nas três propriedades a seguir:

Declaração do problema

A resolução de problemas por meio de um computador pode consistir em um processo no qual um problema é descrito e um programa capaz de resolvê-lo pode ser desenvolvido. Este processo requer a análise do problema, o desenho de um algoritmo e sua transformação em programa, bem como sua implementação e validação. As duas primeiras etapas são as mais complexas neste processo, mas depois de examinar o problema e obter um algoritmo que pode resolvê-lo, sua tarefa se baseia principalmente em traduzi-lo para a linguagem de programação desejada.

Análise da solução geral

Depois de definir o problema, é hora de analisar o seguinte:

  • A informação dos bilhetes que nos fornecem.
  • Os resultados desejados.
  • O domínio do trabalho, declarações ou outros elementos necessários.

A análise de algoritmos é conhecida como a parte mais importante da teoria mais ampla da complexidade computacional, uma vez que fornece cálculos teóricos para os recursos que qualquer algoritmo requer para resolver um determinado problema computacional. Ao executar uma investigação teórica, é comum calcular suas complicações em um sentido assintótico para obter um tamanho de entrada grande o suficiente. O limite superior assintótico junto com as notações teta e ômega são usados ​​para esse propósito e deve-se notar que a medida não assintótica pode ser calculada.

Medidas precisas de eficiência são realmente úteis para quem realmente usa os algoritmos, pois têm mais precisão e isso permite determinar o tempo que levará para executar. Para alguns indivíduos, como criadores de videogames, a constante oculta pode significar uma grande diferença entre o sucesso e o fracasso. As avaliações de tempo podem vir a depender de como uma determinada etapa é definida e, para que a análise faça sentido, deve-se garantir que o tempo seja marcadamente limitado por uma constante.

Elaboração do algoritmo

Para realizar o desenvolvimento de uma operação, é importante que uma série de procedimentos sejam executados para dar cumprimento à própria resolução de um problema. Para começar, uma análise prévia da dificuldade deve ser realizada e isso é feito através de um estudo que demonstra o verdadeiro funcionamento do problema muito antes de qualquer algoritmo ser executado. Portanto, avalia-se a definição dos requisitos, nesta etapa você deve ter uma ideia clara de quais são os problemas a resolver, seja a soma de dois números, a ordenação de uma lista de números, etc.

Posteriormente, é executada a respetiva identificação dos módulos, uma vez que dela depende a correta implementação dos algoritmos para fornecer possíveis soluções aos requisitos acima identificados.

Por fim, o cálculo é implementado numa linguagem de programação compreensível por um computador para que este seja capaz de compreender as instruções que modela e assim poder executá-las, alcançando o resultado esperado. Neste último procedimento, já se pode falar de um programa que é composto por uma série de instruções que se ordenam uma após a outra e conseguem resolver os requisitos estabelecidos.

É importante mencionar que em tempo sequencial, os algoritmos desempenham sua função em um tempo discretizado e buscam definir as sequências de estados computacionais em cada entrada considerada válida. No estado abstrato, essas operações são elementos independentes e considera-se que nelas as estruturas de ordem primordial podem se tornar invariantes sob isomorfismo. Na exploração limitada, as transições de um estado para outro são completamente estabelecidas por uma explicação permanente e finita, na qual entre um estado e o próximo, apenas o número limitado de termos no estado atual é levado em consideração.

Também não deve ser esquecido que os algoritmos são geralmente expressos através de linguagens de programação "pseudocódigos" a linguagem usual e até mesmo os diagramas de fluxo bem conhecidos. Da mesma forma, é importante mencionar que os algoritmos desempenham um papel fundamental na computação devido à sua representação dos dados como sequências de bits. De outro ângulo, um programa é definido como o algoritmo que expressa para o computador aquelas etapas específicas que ele deve seguir para cumprir adequadamente certas atividades. Por outro lado, aprender a escrever pseudocódigo torna a programação mais fácil e, portanto, será explicado mais tarde.

As linguagens de programação são conhecidas como linguagem formal ou artificial porque possuem regras gramaticais bem definidas, tem a capacidade de fornecer ao programador a capacidade de textualizar uma série de instruções ou sequências de regulamentos na forma de algoritmos com a finalidade para manter um controle sobre o comportamento físico e lógico do computador, desta forma, os vários tipos de informações podem ser alcançados. Esse conjunto de preceitos escritos por meio de uma linguagem de programação é denominado programa.

As linguagens de programação geralmente são compostas por um conjunto de símbolos e regras gramaticais e semânticas que definem as estruturas atuais da linguagem e seu significado. De outra perspectiva, as linguagens de computador também incluem as linguagens de programação, um exemplo claro disso é o HTML, que é o que cumpre certas instruções para realizar o conteúdo de diferentes documentos. A linguagem de programação pode permitir a especificação precisa dos dados que devem ser operados por software específico em uma ampla gama de circunstâncias.

Por outro lado, pseudocódigo é a linguagem de descrição algorítmica que usa as convenções elementares de uma linguagem de programação real, mas que é projetada para leitura humana em vez de leitura por meio de uma máquina, mantendo a independência de qualquer outro tipo de linguagem de programação. O pseudocódigo ignora detalhes que não são considerados essenciais para a compreensão humana do algoritmo, como códigos de sistema, declarações de variáveis ​​e até mesmo algumas sub-rotinas. Dessa forma, a linguagem de programação busca complementar-se com descrições precisas em linguagem natural ou com notações matemáticas compactas.