Este documento presenta el examen final para el curso de Diseño de Algoritmos. Incluye definiciones de varios conceptos clave como algoritmos, programación, lenguajes de programación, tipos de datos, complejidad, búsquedas, ordenamientos, recursión y diferentes enfoques para el diseño de algoritmos. El examen consistirá en que los estudiantes definan estos conceptos de manera concisa.
1.1 Aplicación de la lógica en la programación
1.2 Principios en la elaboración de enunciados
1.3 Comprensión y especificación del problema
1.4 Identificación de entradas, procesos y salidas
Ponente: Patricio Abad Espinoza
Introducción a Big Data
Las unidades temáticas y ejemplos están motivados mayormente en problemas actuales derivados de la Web, su estructura y en los datos que ésta genera a partir de sitios de noticias, redes sociales, buscadores de internet, sistemas de comercio electrónico, entre otros. Para ello se han diseñado una recopilación de técnicas, algoritmos y problemas agrupado en ejes temáticos.
Se dará énfasis a la problemática conocida como Big Data que trata sobre el tamaño de los datos, el modelo de arquitectura y file systems distribuidos de gran escala.
Introducción a los problemas sobre volúmenes de datos muy grandes (Big Data); arquitectura de datos y file system distribuidos de gran escala y modelo map reduce para diseñar algoritmos paralelos. Principio de Bonferroni, límite estadístico en el data-mining. Paradoja de Rhine, Detección de gente sospechosa
Referencias:
http://7puentes.com
http://datamining.dc.uba.ar
http://www.mmds.org
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
Los Sistemas de Recomendación (RS), rec. systems, engines, frameworks, platforms es una disciplina derivada del Data Mining que se centra en el diseño de filtros sobre colecciones de items que son del gusto o del interés del usuario.
Para tal fin se utilizan la historia de calificaciones realizada por el usuario y por la comunidad de usuarios.
Se trabajan sobre dominos ligados al gusto como son las películas, programas de TV, video por demanda, música, libros, espectáculos, restaurantes, noticias, entre otros.
Referencias: http://mmds.org
1.1 Aplicación de la lógica en la programación
1.2 Principios en la elaboración de enunciados
1.3 Comprensión y especificación del problema
1.4 Identificación de entradas, procesos y salidas
Ponente: Patricio Abad Espinoza
Introducción a Big Data
Las unidades temáticas y ejemplos están motivados mayormente en problemas actuales derivados de la Web, su estructura y en los datos que ésta genera a partir de sitios de noticias, redes sociales, buscadores de internet, sistemas de comercio electrónico, entre otros. Para ello se han diseñado una recopilación de técnicas, algoritmos y problemas agrupado en ejes temáticos.
Se dará énfasis a la problemática conocida como Big Data que trata sobre el tamaño de los datos, el modelo de arquitectura y file systems distribuidos de gran escala.
Introducción a los problemas sobre volúmenes de datos muy grandes (Big Data); arquitectura de datos y file system distribuidos de gran escala y modelo map reduce para diseñar algoritmos paralelos. Principio de Bonferroni, límite estadístico en el data-mining. Paradoja de Rhine, Detección de gente sospechosa
Referencias:
http://7puentes.com
http://datamining.dc.uba.ar
http://www.mmds.org
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
Los Sistemas de Recomendación (RS), rec. systems, engines, frameworks, platforms es una disciplina derivada del Data Mining que se centra en el diseño de filtros sobre colecciones de items que son del gusto o del interés del usuario.
Para tal fin se utilizan la historia de calificaciones realizada por el usuario y por la comunidad de usuarios.
Se trabajan sobre dominos ligados al gusto como son las películas, programas de TV, video por demanda, música, libros, espectáculos, restaurantes, noticias, entre otros.
Referencias: http://mmds.org
Una de las tecnologías más revolucionarias que ha cambiado para siempre nuestra vida, sin duda es la Internet; y con ella los motores de búsqueda como Google. Google no fue el primer buscador, sino el primero que pudo combatir eficientemente a los spammers quienes intentan intervenir en la propuesta original de información de la Web. Discutiremos la innovación más grande realizada por Google, el PageRank.
La batalla entre quienes hacer la Web más útil y quienes quieren manipularla para su propio beneficio pareciera nunca terminar. Veremos las formas de vencer y manipular el PageRank, construyendo pequeñas webs llamadas link spam.
Referencias: http://mmds.org
Una tarea fundamental del proceso de datamining consiste en encontrar ítems similares. Un ejemplo es buscar dentro de una colección de páginas web para encontrar páginas near-duplicadas. Estas páginas abundan en la Internet; corresponden a plagios, mirrors, campañas, etc.
Comenzaremos con una noción básica de similaridad basada en conjuntos con relativa gran intersección.
Luego avanzamos con una técnica llamada minhashing, que consiste en comprimir grandes conjuntos de elementos en una pequeña firma (signature) donde se mantenga la noción de cercanía.
Referencias: http://mmds.org
Innovación en Big Data
A esta altura parece una verdad de perogrullo: "Las compañías que mejor utilicen la información, serán las más preparadas para afrontar los desafíos de la competitividad en el futuro". Hemos escuchado frases como estas muchas veces. Tenemos plena convicción de que existe valor en los datos que genera nuestra compañía, sentimos que tenemos que hacer algo pronto o pereceremos. Datos emergen a borbotones, la pregunta es: ¿dónde empezamos a buscar el tan prometido valor?
Clase de Introducción a Data Science & Big Data
Maestría en Administración de Empresas de Base Tecnológica - "Seminario límites tecnológicos y tendencias en Informática"
Presentación en el marco de las Séptimas Jornadas Argentinas de Data Mining.
El objetivo del Minado de Opiniones - (OM) es recuperar y extraer la orientación semántica de un conjunto de textos para clasificarlos de acuerdo a ella como positivas o negativas.
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
¿Te preguntaste cómo hace Amazon para recomendarte libros y otros productos? ¿O Netflix para sugerirte nuevas películas o series? ¿Sabías que las ventas a través de recomendaciones superan en varios órdenes de magnitud a las ventas por "top sellers"?
Sistemas de Recomendación es la disciplina derivada del Data Mining que se enfoca en el diseño de filtros personalizados sobre el catálogo de ítems que sean del gusto o del interés del usuario. Para tal fin se utiliza la historia de calificaciones realizada por el usuario y por la comunidad de usuarios.
A los sectores más populares como Video-on-Demand, Contenido Digital y eCommerce se le han sumado recomendación de espectáculos, restaurantes, noticias, gente para conocer, chistes y hasta nombres de bebés.
Daremos un repaso por los hitos más importantes de esta emergente área. Contaremos cuáles son y cómo funcionan las principales técnicas. Charlaremos sobre la problemática actual, tendencias y desafíos.
Y sentaremos las bases para armar un sistema de recomendación de vinos.
Presentación en el marco del Datafest La Nación - Universidad Austral.
El objetivo del Minado de Opiniones - (OM) es recuperar y extraer la orientación semántica de un conjunto de textos para clasificarlos de acuerdo a ella como positivas o negativas.
Int. a la Computación Evolutiva - Informe para cursadamartinp
Este es el informe que entregue para obetener la cursada de la materia optativa llamada Intruducción a la Computación Evolutiva de la Universidad Nacional del Centro de la Provincia de Buenos Aires.
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
Propuesta metodología para enseñar a programar
Enfatiza Métodos /técnicas
Como generar algoritmos
Método de los refinamientos sucesivos de Wirth Nickaus
Clases Objetos arrays
Excelente guía para Profesores para que enseñen realmente a programar y a solucionar problemas
Similar a Curso de Nivelación de Algoritmos - Clase 5 (20)
Metodologia para resolver problemas con Programacion orientada a Objetos
Curso de Nivelación de Algoritmos - Clase 5
1. Diseño de Algoritmos
Examen Final
Curso de Nivelación de Algoritmos
Clase 5
Lic. Ernesto Mislej
emislej@dc.uba.ar
Maestría y Carrera de Especialización en Explotación de Datos y Descubrimiento
de Conocimiento
23 de marzo de 2008
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
2. Diseño de Algoritmos
Examen Final
Diseño de Algoritmos
Es de esperar que con el estudio y formalización de algoritmos,
también se hayan desarrollado técnicas generales para la
producción de soluciones algoríticas.
El primer punto es preguntarse si el problema es un problema
de búsqueda, o uno de optimización.
Veamos nuevamente el problema ”Llegar a Ciudad
Universitaria desde el centro.”
¿A qué llamamos solución?
¿Existe una ruta que una a esos 2 puntos?.
¿Encontrar la ruta de costo mínimo que una a esos 2 puntos?.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
3. Diseño de Algoritmos
Examen Final
¿Saben cómo se come a un elefante?
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
4. Diseño de Algoritmos
Examen Final
¿Saben cómo se come a un elefante?
De a pedacitos. . .
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
5. Diseño de Algoritmos
Examen Final
Divide y reinarás
Ejemplo
Programación de un fixture todos–contra–todos.
La clave es encontrar una división del problema.
Supongamos 2 grupos de 4 jugadores y tambión que entre los
integrante de cada grupo ya se enfrentaron.
Ahora hace falta que cada integrade de los grupos jueguen
entre sí. Podría ser así:
1-5, 2-6, 3-7, 4-8;
1-6, 2-7, 3-8, 4-5;
1-7, 2-8, 3-5, 4-6;
1-8, 2-5, 3-6, 4-7;
Ahora podemos usar la reducción recursiva, hasta el caso base,
que es un fixture para 2 jugadores!
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
6. Diseño de Algoritmos
Examen Final
Divide y reinarás
Ejemplo
Suponemos para 8 jugadores.
Ver una tabla T de n filas por n-1 columnas. T[i,j] responde al
jugador que debe enfrentar i, en el día j.
El fixture para los jugadores 1..4 está en la esquina superior
izquierda.
El fixture para los jugadores 5..8 está en la esquina inferior
izquiera y responde al mismo fixture de los jugadores 1..4, pero
sumándoles el número 4!.
Ya se armó el fixture para los primeros 3 días.
Resta enfrentar a los del primer grupo con los del segundo y
eso ya lo tenemos resuelto. . .
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
8. Diseño de Algoritmos
Examen Final
El árbol que no nos deja ver el bosque
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
9. Diseño de Algoritmos
Examen Final
Búsqueda local
Ejemplo
Una oficina de social-dating, consejeras amorosas, nos piden ayuda
para encontrar parejas compatibles.
1. Suponemos un conjunto igual de mujeres y varones.
2. Cada unión tiene un nivel de compatibilidad.
3. Aleatoriamente unimos a una mujer con algún varón.
4. Iteramos por pares de parejas: Si vemos que si hacemos un
cambio el nivel de compatibilidad general aumenta, lo
hacemos.
5. Lo hacemos hasta que no podemos mejorar más.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
10. Diseño de Algoritmos
Examen Final
Búsqueda local
Ejemplo
Otro enfoque goloso (o ansioso)
Unimos a la pareja de mayor compatibilidad.
Iteramos hasta que no queden parejas.
Existen estrategias de controlar el estado inicial.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
11. Diseño de Algoritmos
Examen Final
Búsqueda Exhaustiva
Ejemplo
Tenemos que salir de un laberinto, sin ciclos.
1. Caminamos derecho. . .
2. Si encontramos la salida, obviamente salimos.
3. Si encontramos una bifurcación, guardamos las alternativas en
una pila, elegimos la opción del tope de la pila y volvemos a 1.
4. Si encontramos una pared, elegimos la siguiente alternativa de
la pila y volvemos a 1.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
12. Diseño de Algoritmos
Examen Final
Búsqueda Exhaustiva
Ejemplo
Se plantea un árbol de opciones.
La manera de guardar y elegir las opciones cada paso va a
guiar la búsqueda.
Búsquedas a lo profundo (DFS) y a lo ancho (BFS).
En el peor de los casos, usé todas las combinaciones.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
13. Diseño de Algoritmos
Examen Final
Búsqueda Exhaustiva
Puzzle 3x3:
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
14. Diseño de Algoritmos
Examen Final
Diseño de Algoritmos
Ejemplo
Encontrar un agrupamiento de un conjunto de datos, o
clustering.
Veamos cómo resolver el siguiente problema para cada
acercamiento.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
15. Diseño de Algoritmos
Examen Final
Examen Final
El examen tendrá la forma de parcial domiciliario.
El examen es individual.
Consiste en definir una serie de conceptos comentados en
clase. Por favor, no transcriban la definición de Wikipedia.
La presentación es sumamente importante. Por favor, pongan
énfasis en la presentación del trabajo. Intenten ser creativos,
buenos ejemplos y gráficos.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
16. Diseño de Algoritmos
Examen Final
Examen Final
Describan los siguientes conceptos (en como máximo 10 renglones):
1. Algoritmo.
2. ¿Qué 3 cosas debe cumplir un algoritmo?
3. Programación.
4. Lenguajes de Programación.
5. Memoria.
6. Variable. Codificación.
7. Tipo de datos básicos.
8. Tipo de datos abstractos. Definan las propiedades de los TDA
que hemos visto en clase.
9. Complejidad.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
17. Diseño de Algoritmos
Examen Final
Examen Final
...
10. Búsquedas. Estructuras de datos. Clasificación y Complejidad.
11. Ordenamientos. Clasificación y Complejidad.
12. Algoritmo de Selección. MergeSort.
13. Recursión.
14. Algoritmos de búsquedas y de optimización.
15. Divide y reinarás.
16. Algoritmos golosos.
17. Búsqueda local.
18. Búsqueda exhaustiva.
Lic. Ernesto Mislej Curso de Nivelación de Algoritmos