Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALGORITMO
Algoritmos de búsqueda
Los algoritmos de búsqueda localizan uno o varios elementos que presenten una
serie de propiedades dentro de una estructura de datos.
Ejemplos de algoritmos de búsqueda
Algoritmos de ordenamiento
Reorganizan los elementos de un listado según una relación de orden. Las más
habituales son el orden numérico y el orden lexicográfico. Un orden eficiente
optimiza el uso de algoritmos como los de búsqueda y facilitan la consecución de
resultados legibles por personas y no solo máquinas.
Ejemplos de algoritmos de ordenamiento
Algunos algoritmos de ordenamiento son:
Ordenamiento de burbuja. Compara cada elemento de la lista a ordenar con el
siguiente e intercambia su posición si no están en el orden adecuado. Se revisa
varias veces toda la lista hasta que no se necesiten más intercambios.
Ordenamiento por selección. Vamos colocando el elemento más pequeño
disponible en cada una de las posiciones de la lista de forma consecutiva.
Algoritmos voraces
Los algoritmos voraces consisten en una estrategia de búsqueda que sigue una
heurística en la que se elige la mejor opción óptima en cada paso local con el
objetivo de llegar a una solución general óptima. Es decir, en cada paso del proceso
escogen el mejor elemento (elemento prometedor) y comprueban que pueda
formar parte de una solución global factible. Normalmente se utilizan para
resolver problemas de optimización.
Ejemplos de algoritmos voraces
Programación dinámica
La programación dinámica es un método de resolución de problemas en el que
dividimos un problema complejo en subproblemas y calculamos y almacenamos sus
soluciones, para que no haga falta volver a calcularlas más adelante para llegar a la
solución del problema. La programación dinámica reduce el tiempo de ejecución de
un algoritmo al optimizar la recursión.
Eso sí, para poder aplicarse a un problema, éste debe tener subestructuras
óptimas y subproblemas superpuestos. Es decir, que en él se puedan usar
soluciones óptimas de subproblemas para encontrar la solución óptima del
problema en su conjunto y que el problema se pueda dividir en subproblemas que
se reutilizan para ofrecer el resultado global.
Usos de programación dinámica
Problema de la mochila.
Algoritmos probabilísticos
Es una técnica que usa una fuente de aleatoriedad como parte de su lógica.
Mediante un muestreo aleatorio de la entrada llega a una solución que puede no
ser totalmente óptima, pero que es adecuada para el problema planteado.
Se utiliza en situaciones con limitaciones de tiempo o memoria y cuando se puede
aceptar una buena solución de media, ya que a partir de los mismos datos se
pueden obtener soluciones diferentes y algunas erróneas. Para que sea más
probable ofrecer una solución correcta, se repite el algoritmo varias veces con
diferentes submuestras aleatorias y se comparan los resultados.
En la etapa del diseño se determina cómo hace el programa la tarea solicitada. Los métodos más eficaces
para el proceso de diseño se basan en el conocido por divide y vencerás.
El proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos
sucesivos que permitan una posterior traducción a un lenguaje se denomina diseño de algoritmo.
El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar
posteriormente. Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son:
VARIABLES
DIAGRAMA DE FLUJO
Solución de problemas; Todos los días resolvemos problemas, aún sin ser consiente de
esto. Comúnmente tenemos que definir el problema, decidir con que información
necesitamos trabajar y cuales deben ser los resultados esperados. En particular, los
ingenieros en ciencias de la computación son resolvedores o solucionadores de
problemas computacionales.
Antes que se busque la solución, se debe entender el problema. Así que aquí cabe
preguntarnos: ¿qué es un problema? ¿Qué es un problema? Según Newell y Simón un
problema se define como “una situación en la cual un individuo desea hacer algo, pero
desconoce el curso de la acción necesaria para lograr lo que quiere” Otra definición es
la dada por Chi y Glaser, la cual lo define “como una situación en la cual un individuo
actúa con el propósito de alcanzar una meta utilizando para ello alguna estrategia en
particular”
Consideremos el siguiente ejemplo: “Anita tiene una muñeca y quiere vestirla con
pantalón y blusa. Tiene cuatro pantalones: rojo, blanco, azul y negro y tiene tres
blusas: verde, amarillo y rosado. Ella quiere hacer diferentes combinaciones con todos
los pantalones y las blusas verde y rosada. ¿Cuántas combinaciones diferentes puede
hacer?” Para nuestro ejemplo la meta, consiste en saber cuántas combinaciones
diferentes puede hacer Anita con los pantalones y las blusas. Los datos son 4
pantalones y 3 blusas. Las restricciones son que Anita solo quiere utilizar 2 de las 3
blusas: la verde y rosada. En consecuencia, no todas las blusas van a ser consideradas
para las combinaciones. Por último, los métodos son las operaciones requeridas para
obtener el número de combinaciones. Una vez entendido qué es un problema, el
siguiente paso es comprender cómo podemos resolverlo, es decir, qué es la resolución
de problemas. ¿Qué es la resolución de problemas? Según Dijkstra (1991), la
resolución de problemas es un proceso cognoscitivo complejo que involucra
conocimiento almacenado en la memoria a corto y a largo plazo. Polya (1965) señala
que un problema puede resolverse correctamente si se realizan las fases o etapas
mostradas
Comprender el problema nos lleva a conocer qué es los que se va a resolver; mientras
que concebir un plan para llegar a la solución involucra el cómo. Una buena noticia es
que existen diferentes técnicas o estrategias que nos guían en la resolución de
problemas. 1.2 Técnicas o estrategias para resolución de problemas Las estrategias
para resolver problemas se refieren a las operaciones mentales que se utilizan para
pensar sobre la representación de las metas y los datos, con el fin de transformarlos en
metas y obtener una solución. Algunas técnicas para resolución de problemas
Hacer preguntas Una de las técnicas para resolución de problemas más simples pero
muy importante es la de hacer preguntas. Debemos asegurarnos que estamos
procediendo a resolver el problema real y no el problema que percibimos
Algunas preguntas útiles que podemos hacer son: 1. ¿Qué es lo que sé acerca del
problema? 2. ¿Cuál es la información con la que debo trabajar para encontrar la
solución? 3. ¿Cómo se ve la solución, ¿qué parece? 4. ¿Qué clase de casos especiales
existen? 5. ¿Cómo voy a saber que he encontrado la solución? Siempre que se nos dé
una tarea o un problema que no esté bien definido, o que se requiera información
adicional, debemos hacer preguntas hasta que tengamos claro exactamente qué es lo
que se quiere o tiene que hacer.
https://profile.es/blog/que-es-un-algoritmo-informatico/
https://sites.google.com/site/programacionvisualcetis50/Inicio/contenido/principios-de-
programacion/fases-del-proceso-de-programacion/diseno-del-algoritmo
https://sites.google.com/site/jscalgoritmo/variables
https://www.lucidchart.com/pages/es/que-es-un-diagrama-de-flujo