Tiempo actual: 0:00Duración total:5:28
0 puntos de energía

¿Qué es un algoritmo y por qué debería importarte?

Transcripción del video
¿Qué es un algoritmo? Una definición puede ser: Un conjunto de pasos para realizar una tarea. Quizá tengas un algoritmo para llegar a casa desde la escuela, para hacer un sándwich tostado de queso, o para encontrar lo que buscas en el supermercado. En las ciencias de la computación, un algoritmo es un conjunto de pasos para que un programa de computadora pueda realizar una tarea. Los algoritmos son la ciencia en las ciencias de la computación. y encontrar buenos algoritmos y saber cuándo implementarlos te permitirá escribir interesantes e importantes programas. Hablemos de algunos algoritmos famosos. ¿Cómo es que Google Hangouts transmite video en vivo a través de Internet tan rápido? Usan algoritmos de compresión de audio y video. ¿Cómo es que Google Maps averigua como llegar desde Dallas, Texas a Orlando, Florida para que tú puedas ir a Disney World? Usan un algoritmo para encontrar rutas. ¿Cómo es que Pixar colorea un modelo 3D de un personaje basado en la iluminación en una habitación virtual? Usan un algoritmo de renderizado. Cómo decide Nasa cómo colocar los panales solares en la Estación Espacial Internacional y cuándo recolocarlos? Usan un algoritmo de optimización y planificación. Esos algoritmos son más complejos que nuestros algoritmos cotidianos, como hacer un sándwich tostado de queso, pero se reducen a la misma cosa: Un conjunto de pasos para realizar una tarea. Si sabes algo sobre los algoritmos ya existentes, puedes ahorrarte mucho esfuerzo, y hacer que tus programas sean más rápidos al implementar el adecuado. Por ejemplo, digamos que estás escribiendo un juego, y quieres que el usuario pueda jugar en contra de la computadora, Bien, puedes comprobar el juego de las damas para inspirarte. Los científicos de la computación han averiguado como escribir programas de damas que nunca pierden usando el algoritmo de búsqueda Minimax para buscar entre el enorme "árbol" de todos los movimientos posibles. Si tu juego es parecido al de Damas, quizá puedas usar algoritmos basados en estas técnicas. Si no, saber las limitaciones de esos algoritmos algoritmos podría llevarte a rediseñar tu juego si requiere tener un hábil jugador controlado por la computadora. También es importante saber diseñar nuevos algoritmos y también analizar su exactitud y eficiencia. En las ciencias biológicas, se diseñan continuamente nuevos algoritmos con fines como diseñar estructuras moleculares, que son la base de medicamentos que combaten enfermedades. En la física, los algoritmos simulan patrones climáticos y de tiempo, y otros buscan y analizan las grandes cantidades de datos de las estrellas en el universo que son recopilados por telescopios automatizados. En todas las ciencias, e incluso en páginas web como Khan Academy se necesitan algoritmos eficientes para analizar conjuntos de datos enormes , o para elegir inteligentemente entre un número enorme de decisiones. En casi todas las áreas que te puedan interesar, nuevos algoritmos permitirán cosechar poder computacional masivo para hacer cosas que las personas necesitan y que les preocupan Ahora, no todos los algoritmos son creados iguales. ¿Qué es lo que hace un buen algoritmo? Los dos criterios más importantes son que resuelva el problema, y que lo haga eficientemente. La mayor parte del tiempo, queremos que el algoritmo nos dé una respuesta que sea siempre correcta. De vez en cuando, podemos vivir con un algoritmo que no nos da una respuesta correcta, o la mejor respuesta porque los únicos algoritmos perfectos que conocemos para esos problemas tardan mucho tiempo. Por ejemplo, digamos que queremos un programa que determinaría la ruta más eficiente para un camión que entrega paquetes empezando y terminando el día en una estación. Tardaría semanas en examinar todas las posibilidades. Pero si nos conformamos con un programa que determinaría una ruta que es buena, pero tal vez no la mejor, solo tardaría segundos en ejecutarse Y algunas veces, tener una solución es suficiente ¿Cómo mides la eficiencia de un algoritmo? Podríamos medir cuánto tiempo tarda en ejecutar el código, pero eso solo nos diría sobre esa implementación en particular en un lenguaje de programación particular, en un equipo particular, y solo para la entrada que se le dio. En cambio, los científicos de la computación usan una técnica llamada "análisis asintótica", la cual permite comparar los algoritmos independientemente de un lenguaje o hardware particular. Así, podríamos concluir que sí, algunos algoritmos son más eficientes que otros. Ahora puedes aprender sobre los algoritmos y la análisis asintótica en Khan Academy gracias a la contribución de dos de los profesores de la universidad de Dartmouth. Thomas Cormen es el primer autor del libro de algoritmos más popular en el mundo, además de ser el autor de Algorithms Unlocked (Algoritmos Desbloqueados). Devin Balkcom diseñó el curso introductorio a CS de Dartmouth e investiga sobre la robótica. Construyó el primer robot del mundo que hace origami Tom y Devin te enseñarán muchos de los algoritmos que aprenderías en APCS o CS-101, como algoritmos de búsqueda, ordenamiento, algoritmos recursivos y mi favorito personal, algoritmos de grafos. Habrá muchas visualizaciones interactivas, pruebas y desafíos de codificación para ayudarte a entender mejor a lo largo de tu viaje de aprendizaje.