• Autor de la entrada:
  • Categoría de la entrada:Coursera / Cursos
  • Tiempo de lectura:14 minutos de lectura


El siguiente curso gratuito está dirigido para todas aquellas personas interesadas en aprender sobre los Algoritmos Avanzados y Complejidad.

Este curso forma parte de un programa especial, siendo este, el quinto de 6.

Por lo que te dejamos lo anterior aquí abajo.



Acerca de Programa especializado: Estructuras de datos y algoritmos

La leyenda de la informática Donald Knuth dijo una vez: «No entiendo las cosas a menos que intente programarlas». También creemos que la mejor manera de aprender un algoritmo es programarlo.

Sin embargo, muchos libros excelentes y cursos en línea sobre algoritmos, que se destacan en la introducción de ideas algorítmicas, aún no han logrado enseñarle cómo implementar algoritmos, la habilidad informática crucial que debe dominar en su próxima entrevista de trabajo.

Intentamos llenar este vacío formando un equipo diverso de instructores que incluye expertos líderes mundiales en algoritmos teóricos y aplicados en UCSD (Daniel Kane, Alexander Kulikov y Pavel Pevzner) y un ex ingeniero de software en Google (Neil Rhodes).

Esta combinación única de habilidades hace que esta especialización sea diferente de otros excelentes MOOC sobre algoritmos que son desarrollados por científicos informáticos teóricos. Si bien estos MOOC se centran en la teoría, nuestra especialización es una combinación de teoría/práctica/aplicaciones algorítmicas con ingeniería de software.

Sobre el Curso (Por la Plataforma)

En cursos anteriores de nuestra especialización en línea, aprendió los algoritmos básicos y ahora está listo para ingresar al área de problemas más complejos y algoritmos para resolverlos. Los algoritmos avanzados se basan en los básicos y utilizan nuevas ideas.

Comenzaremos con flujos de redes que se utilizan en aplicaciones más típicas, como coincidencias óptimas, búsqueda de caminos disjuntos y programación de vuelos, así como otras más sorprendentes como la segmentación de imágenes en visión por computadora.

Luego procedemos a la programación lineal con aplicaciones en la optimización de la asignación presupuestaria, la optimización de la cartera, la búsqueda de la dieta más barata que satisfaga todos los requisitos y muchos otros.

A continuación, discutimos problemas intrínsecamente difíciles para los que no se conocen buenas soluciones exactas (y no es probable que se encuentren) y cómo resolverlos en la práctica.

Terminamos con una introducción suave a los algoritmos de transmisión que se utilizan mucho en el procesamiento de Big Data. Dichos algoritmos generalmente están diseñados para poder procesar grandes conjuntos de datos sin siquiera poder almacenar un conjunto de datos.

Te Puede Interesar


Habilidades que obtendrás

  • Programación Python
  • Programación Lineal (PL)
  • Np-Completitud
  • Programación dinámica

Ofrecido por

Universidad de California en San Diego

UC San Diego es una potencia académica y un motor económico, reconocida como una de las 10 mejores universidades públicas por US News and World Report. La innovación es fundamental para lo que somos y lo que hacemos. Aquí, los estudiantes aprenden que el conocimiento no solo se adquiere en el salón de clases, la vida es su laboratorio.

Programa (Contenido)

Flujos en Redes

Los flujos de red aparecen en muchas situaciones del mundo real en las que un bien debe transportarse a través de una red con capacidad limitada. Puede verlo cuando envía productos a través de carreteras y enruta paquetes a través de Internet.

En esta unidad, analizaremos los fundamentos matemáticos de los flujos de red y algunos algoritmos de flujo importantes. También daremos algunos ejemplos sorprendentes sobre problemas aparentemente no relacionados que pueden resolverse con nuestro conocimiento de los flujos de red.

Videos: 9

Duración: 72 Minutos

Programación lineal

La programación lineal es una herramienta algorítmica muy poderosa. Esencialmente, un problema de programación lineal le pide que optimice una función lineal de variables reales restringidas por algún sistema de desigualdades lineales.

Este es un marco extremadamente versátil que generaliza inmediatamente los problemas de flujo, pero también se puede utilizar para discutir una amplia variedad de otros problemas, desde optimizar los procedimientos de producción hasta encontrar la forma más económica de lograr una dieta saludable.

Sorprendentemente, este marco tan general admite algoritmos eficientes. En esta unidad, analizaremos parte de la importancia de los problemas de programación lineal junto con algunas de las herramientas utilizadas para resolverlos.

Videos: 10

Duración: 84 Minutos

Problemas NP-completos

Aunque muchos de los algoritmos que ha aprendido hasta ahora se aplican mucho en la práctica, resulta que el mundo está dominado por problemas del mundo real sin un algoritmo conocido demostrablemente eficiente.

Muchos de estos problemas se pueden reducir a uno de los problemas clásicos llamados problemas NP-completos que, o bien no se pueden resolver con un algoritmo polinomial o resolver cualquiera de ellos te haría ganar un millón de dólares (ver Problemas del Premio del Milenio) y la fama mundial eterna por resolviendo el problema principal de la informática llamado P vs NP.

Es bueno saber esto antes de tratar de resolver un problema antes de la fecha límite de mañana 🙂 Aunque es muy poco probable que estos problemas se resuelvan de manera eficiente en el futuro cercano, las personas siempre encuentran varias soluciones.

En este módulo estudiarás los problemas clásicos NP-completos y las reducciones entre ellos. También practicará la resolución de grandes instancias de algunos de estos problemas a pesar de su dificultad utilizando un software especializado muy eficiente basado en toneladas de investigación en el área de problemas NP-completos.

Videos: 16

Duración: 115 Minutos

Hacer frente a la integridad NP

Después del módulo anterior, es posible que se sienta triste: acaba de realizar 5 cursos de Algoritmos solo para descubrir que no son adecuados para la mayoría de los problemas del mundo real.

Sin embargo, ¡no te rindas todavía! Las personas son creativas y necesitan resolver estos problemas de todos modos, por lo que en la práctica a menudo hay formas de hacer frente a un problema NP-completo en cuestión.

Primero mostramos que algunos casos especiales de problemas NP-completos pueden, de hecho, resolverse en tiempo polinomial.

Luego consideramos algoritmos exactos que encuentran una solución mucho más rápido que el algoritmo de fuerza bruta. Concluimos con algoritmos de aproximación que trabajan en tiempo polinomial y encuentran una solución que está cerca de ser óptima.

Videos: 11

Duración: 119 Minutos

Algoritmos de transmisión (opcional)

En la mayoría de las conferencias anteriores, estábamos interesados ​​en diseñar algoritmos con tiempo de ejecución rápido (por ejemplo, polinomio pequeño) y asumimos que el algoritmo tiene acceso aleatorio a su entrada, que se carga en la memoria.

Sin embargo, en muchas aplicaciones modernas de análisis de big data, la entrada es tan grande que no se puede almacenar en la memoria. En cambio, la entrada se presenta como un flujo de actualizaciones, que el algoritmo escanea mientras mantiene un pequeño resumen del flujo visto hasta el momento.

Esta es precisamente la configuración del modelo de flujo de computación, que estudiamos en esta lección. El modelo de transmisión es adecuado para diseñar y razonar sobre algoritmos de espacio pequeño.

Ha recibido mucha atención en la literatura y se han diseñado varias primitivas algorítmicas poderosas para calcular estadísticas básicas de flujo en este modelo, varios de ellos impactan en la práctica del análisis de big data.

En esta lección veremos uno de esos algoritmos (CountSketch), un algoritmo de espacio pequeño para encontrar los k elementos más frecuentes en un flujo de datos.

Videos: 10

Duración: 72 Minutos

Preguntas Frecuentes

¿Cuándo podré acceder a las lecciones y tareas?

El acceso a las clases y las asignaciones depende del tipo de inscripción que tengas. Si tomas un curso en modo de oyente, verás la mayoría de los materiales del curso en forma gratuita. Para acceder a asignaciones calificadas y obtener un certificado, deberás comprar la experiencia de Certificado, ya sea durante o después de participar como oyente. Si no ves la opción de oyente:

  • Es posible que el curso no ofrezca la opción de participar como oyente. En cambio, puedes intentar con una Prueba gratis o postularte para recibir ayuda económica.
  • Es posible que el curso ofrezca la opción ‘Curso completo, sin certificado’. Esta opción te permite ver todos los materiales del curso, enviar las evaluaciones requeridas y obtener una calificación final. También significa que no podrás comprar una experiencia de Certificado.

¿Qué recibiré si me suscribo a este Programa especializado?

Cuando te inscribes en un curso, obtienes acceso a todos los cursos que forman parte del Programa especializado y te darán un Certificado cuando completes el trabajo. Se añadirá tu Certificado electrónico a la página Logros. Desde allí, puedes imprimir tu Certificado o añadirlo a tu perfil de LinkedIn. Si solo quieres leer y visualizar el contenido del curso, puedes auditar el curso sin costo.

¿Hay ayuda económica disponible?

Sí. En ciertos programas de aprendizaje, puedes postularte para recibir ayuda económica o una beca en caso de no poder costear los gastos de la tarifa de inscripción. Si hay ayuda económica o becas disponibles para tu selección de programa de aprendizaje, verás un enlace para postularte en la página de descripción.

Escanea aquí abajo con tu móvil para acceder al curso

O ingresa con el botón de aquí abajo si así lo deseas

¿Quieres Más?

Encuentra cursos y libros gratuitos, además de cupones de Udemy, en nuestros Telegram.

Jesús

Experto en procrastinación desde 1997.