Algoritmos y Tecnicas de Representacion de Algoritmos.
Tipos de Algoritmos
Algoritmos Cualitativos:
Son algoritmos que indican los pasos en forma verbal para desarrollar un proyecto. Como puede ser recetas de cocina o instrucciones para ejecutar el trabajo manual, sin solicitar los servicios de un profesional.
Algoritmos Cuantitativos:
Emplean elementos numéricos, los cuales se utilizan ampliamente en las matemáticas para resolver problemas de cálculos y álgebra, asi como también permiten hallar raíces y resolver numerosas ecuaciones.
Algoritmos Computacionales:
Consisten en algoritmos desarrollados por medio de una maquina o computadora, este tipo de algoritmos por lo general suelen ser muy complejos así como también pueden ser representados por algoritmos cuantitativos; que buscan ser perfeccionados o optimizados.
Algorimos de Marcaje:
Este tipo de algoritmos hacen uso de la automatización para establecer valores de forma dinámica fundamentándose en distintos factores como el comportamiento de los usuarios.
Este algoritmo se aplica para determinar precios de aquellos elementos o productos de un almacén con el objetivo de desarrollar al máximo la ganancia que obtiene el vendedor. Es ampliamente utilizado en industrias de viajes y comercio en linea.
Los algoritmos de marcaje pueden llegar a ser muy complejos y confusos de comprender, en ocasiones son sometidos continuamente a numerosas pruebas de optimizacion.
Algoritmos probabilisticos:
Se fundamentan en el resultado de la toma de decisiones de forma aleatoria, para lograr obtener la solucion mas adecuada a un problema especifico para numerosas distribuciones de datos de entradas.
Los algoritmos probabilisticos se clasifican en:
Algoritmos numericos: Brindan una solucion a un problema en general.
-Algoritmos de montecarlo: Son aquellos que aportan respuestas correctas junto con respuestas erroneas con posibilidad minima.
-Algoritmos de las vegas: Nunca ofrecen una respuesta incorrecta, asi mismo si no logran hallar la respuesta correcta informan sobre posibles fallos en el sistema.
Algoritmos eucaristicos:
Consisten en algoritmos que filtran posibles soluciones pero no garantizan que hallen la solución correcta, por lo tanto se definen como algoritmos aproximados o no precisos.
Estos algoritmos se utilizan en ocasiones cuando es imposibles hallar soluciones por medios normales, por lo general buscan una solución cercana a la solicitada de forma rápida y sencilla.
Algoritmos Voraz:
Esta clase de algoritmos son aplicados a problemas de optimatizacion. Cada fase por la cual pasa un algoritmo voraz dispone de una decisión lógica y perfecta, con el objetivo de llegar a la fase final y obtener los mejores resultados.
Así mismo en este tipo de algoritmos al tomar una decisión para implementar, esta no puede ser modificada en el futuro.
Algoritmos de Vuelta Atras:
Se componen de algoritmos que han sido anulados al determinar su comportamiento. Esta clase de algoritmos representan aproximaciones a los algoritmos originales, los cuales han sido desarrollados para intereses como la competición o numerosos estudios.
Estos algoritmos pueden ser utilizados para analizar su impacto en los mercados , asi como en la economía, las operaciones e incluso en la sociedad.
Algoritmos no computacional:
Son aquellos algoritmos que no pueden desarrollasen utilizando un computador, como los algoritmos que utilizan los televisores.
Metodos de Algoritmos
PROGRAMACION DINAMICA:
Tiene como objetivo resolver problemas reduciendo drasticamente su coste computacional aumentando su respectivo coste espacial; empleando metodos como subproblemas, superpuestos y subestructuras optimas.
RAMIFICACION Y PODA:
Consiste en una rama del algoritmo vuelta atras, que suele ser aplicado para resolver problemas de optimizacion.
El metodo de ramificacion y poda se suele explicar por medio de un arbol de soluciones, en el cual cada rama representa una probable solucion.
Una de las caracteristicas que acompañan a esta tecnica consisten en que el algoritmo tiene como funcion detectar en la ramificacion aquellas soluciones brindadas que no estan siendo efectivas.
Asi mismo no continua desaprovechando los recursos junto con los procesoso cuando se desvian de una solucion optima.
METODO METAHURESTICAS:
Consiste en una tecnica huristico para resolver un determinado problema computacional, empleando numerosos parametros brindados por los usuarios acerca de diferentes procedimientos y adstracciones de forma que se espera que sea mas eficiente.
Definicion
Un algoritmo esta compuesto por una agrupación de funciones o reglas definidas y no ambiguas, las cuales están organizadas; que buscan brindar soluciones a numerosos problemas, procesar datos y ejercer distintas tareas.
Están compuestos por un estado inicial junto con una entrada, siguiendo las reglas continuas se obtiene el resultado final.
Algunos ejemplos de algoritmos son:
-En matemáticas podremos encontrar el algoritmo de multiplicación el cual nos permite calcular el producto de una operación.
-El algoritmo de la división utilizado para hallar el cociente de dos números.
También existe el método o algoritmo de Gauss que se utiliza para resolver sistemas de ecuaciones lineales.
-El algoritmo de Euclides permite obtener un máximo común de dos números enteros positivos.
Conceptos relacionados con Algoritmos
Diagrama de Flujo:
Los diagramas de flujo representan especificaciones gráficas de algoritmos, que estan dirigidos por la organización de normalizacion o ISO. Asi mismo emplean símbolos que estan vinculados entre si por medio de flechas, las cuales señalan las secuencia que deben seguir las instrucciones.
Los diagramas de flujo se utilizan para interpretar algoritmos pequeños pues suelen abarcar demasiado espacio y su desarrollo es complejo. Estos diagramas por su sencillez de lectura, se utilizan como introducción al algoritmo, descripción de un lenguaje junto con la descripción de procesos diferentes a la computación.
Pseudocodigo o falso lenguajes:
Consiste en una descripción de alto nivel perteneciente a un algoritmo que utiliza una combinación de lenguaje natural con ciertas acuerdos resumidos propios de lenguaje de programación que incluye asignaciones, ciclos y condiciones; aunque no esta administrado por ningún estándar.
El falso lenguaje tiene como objetivo simplificar la comprencion de un algoritmo, por lo que en ocasiones suele excluir detalles importantes que son indispensables para ejercer una implementación.
Diferentes programadores hacen uso de numerosos símbolos los cuales se fundamentan en la conexión y coordinación de los lenguajes de programación específicos.
El Pseudocodigo es completamente entendible, pues no requiere de un entorno de programación determinando; así mismo es ampliamente estructurado para que su implementación se puede efectuar a partir de el Pseudocodigo desarrollado.
Sistemas Formales:
Las teorías autóctonas junto con las teorías recursivas suministran modelos matemáticos los cuales concretan el concepto de algoritmo. Los modelos mas utilizados son maquina de turing , maquina de registro ademas de las funciones recursivas.
Aquellos modelos suelen ser exactos como un lenguaje maquina aunque les falta expresiones coloquiales y ambiguedad; asi mismo son completamente independientes de distintas computadoras y numerosas implementaciones.
Implementacion:
Numerosos algoritmos son instituidos para incorporarlos en un programa especifico. No obstante los algoritmos se pueden poner en funcionamiento utilizando medios distintos como una red neuronal, circuitos eléctricos, dispositivos mecanicos y dispositivos eléctricos.
Algunos algoritmos se pueden diseñar aplicando papel y lápiz como el algoritmo de multiplicación natural, el algoritmo de euclides, la criba de erastotenes junto con diversas formas de resolver una raiz cuadrada.
Variables:
Consisten en componentes que eligen valores especificos de una clase de datos precisos. La declaracion de un a variable se ejecuta empleando el termino (var). Existen dos formas de conceder valores iniciales a variables.
1.Por medio d eun sentencia de asignacion.
2.Mediante un proceso de entrada de datos, como read.
Estructuras Secuenciales:
Son aquellas que establecen que las acciones siguen a otras secuencias. La operaciones se remplazan, asi como la salida de una; representa la entrada de la siguiente imitando una secuencia hasta concluir el proceso.
La asignacion de las estructuras secuenciales radica en el transito de valores o resultados a una seccion de la memoria. Esta seccion recibe el nombre de de la variable que acoge el valor, la asignacion se puede clasificar de la siguiente forma:
1.Simples: Se trata de enviar un valor constante a una variable especifica.
2.Contador: Permite usar la asignacion como verificador segun la cantidad de veces que se ejcuta un proceso.
3.Acumulador: La asignacion se puede emplear como un sumador en un proceso.
4.De trabajo: Consiste en la seccion que recibe el resultado de una operacion matematica que incorpora numerosas variables.
Algoritmos como funciones
Un algoritmo puede ser comprendido como una funcion que modifica los datos de un problema de entrada en documentos o datos de una solucion de salida. Los datos se pueden manifestar como una cadena de bits incluso por medio de numerosos simbolos.
Cada serie de bits sustituye a un numero natural, por ese motivo los algoritmos son por naturaleza funciones de los numeros naturales que pueden ser calculados, entonces todo algoritmo calcula una funcion F: N---N donde cada numero natural representa la codificacion de un problema o de una solucion.
En ciertos momentos los algoritmos suelen ser ilimitados como por ejemplo cuando se aplican a un bucle infinito. Cuando esto sucede no arrojan ningun valor de salida, por lo tanto se puede concluir que la funcion es indefinida a causa del valor de entrada
Los algoritmos se desempeñan como funciones parciales, en resumen no necesariamente definen todo su dominio de definicion.
Cuando una funcion se calcula empleando medios algoritmicos sin importar el espacio de memoria que logre ocupar o el tiempo que utilice en ejecutarse, se considera una funcion computable.
Analisis de algoritmos
Para que un algoritmo sea eficiente se considera estudiar factores como los recursos, memoria y tiempo que consume el algoritmo.
Por lo tanto se ha desarrollado el analisis de algoritmos que permite obtener valores o datos que de cierta forma que señalan la evolucion del gasto de tiempo y memoria en funcion de las dimensiones de valores de entrada.
La investigacion de algoritmos se considera una disciplina que pertenece a las ciencias de la computacion y en gran parte su estudio suele ser totalmente impreciso, sin emplear ningun tipo de lenguaje de programacion ni cualquier otra implementacion.
Ademas de disponer de las mismas caracteristicas de las numerosas disciplinas matematicas. El analisis de algoritmo se enfoca en aquellos principios primordiales del algoritmos mas no en su respectiva implementacion.
Una de las diversas formas de codificar un algoritmo consiste en escribirlo en pseudocodigo o hacer uso de lenguajes sencillos como el lenguaje de programacion lexico, el cual sus respectivos codigos pueden estar en lenguaje de programador.
Muchos escritores limitan la definicion de algoritmos a procedimientos que deben concluir en algun momento, mientras que otros examinan y establecen, aquellos procedimientos que se pueden efectuar sin detenersen cuando los dispositivos fisicos funcionen eternamente.
EJEMPLO:
Un algoritmo determina que existen mas ceros que en una secuencia binaria infinita que se puede ejecutar en ocasiones; para que pueda devolver un valor apropiado. Si se implementa de forma adecuada el valor arrojado se considera valido hasta que revice el siguiente digito binario.
Asi mismo mientras verifica la respectiva secuencia permiten leersen y comprender dos tipos de señales:
-Señal positiva.
-Señal negativa.