DESAFÍO TOTAL:
CÓMO RESOLVER RETOS EXTREMOS
¿Por qué participar?
● ¡Premios!
● Promoción personal
● Conocer gente, socializar
● Aprender y mejorar
● ¡Es divertido!
Concursos extremos
de programación
#ETSChallenge
¡Es hora de probar su efectividad en Chimpancés!
El origen del planeta de los simios
“Un grupo de investigación secreto está desarrollando
un nuevo fármaco que aumenta significativamente la
inteligencia.”
Problema 1
#ETSChallenge
El origen del planeta de los simios
● Todos los interruptores están inicialmente ON
● La caja se abrirá cuando estén todos OFF
● El interruptor de la derecha se puede conmutar siempre
● Cualquier otro interruptor se puede conmutar, si y sólo si,
su interruptor de la derecha está ON y el resto OFF
● Irremediablemente queremos abrir la caja cuanto antes
...
Objetivo: Mínimo número de conmutaciones para N interruptores
#ETSChallenge
111
110
010
011
001
000
El origen del planeta de los simios
1111
1101
1100
0100
0101
0111
0110
0010
0011
0001
0000
...
11111
11110
11010
11011
11001
11000
01000
01001
01011
01010
01110
01111
…
111111
111101
111100
110100
110101
110111
110110
110010
110011
110001
110000
010000
010001
010010
010110
010111
010101
010100
011100
011101
011111
...
11
01
00
n MOV
1 1
2 2
3 5 1 + 2 + 2
4 10 2 + 3 + 5
5 21 5 + 6 + 10
6 42 10 + 11 + 21
N ? ?? + ?? + ??N ? (N-2) + (N-2) +1 + (N-1) = 2(N-2) + (N-1) + 1
+N-1
+N-1
#ETSChallenge
El origen del planeta de los simios
def minMovements= { numSwitches ->
BigInteger result
switch (numSwitches) {
case 1:
result = 1
break
case 2:
result = 2
break
default:
result = 2 * minMovements(numSwitches -2) + minMovements(numSwitches -1) +1
break
}
result
}
2(N-2) + (N-1) + 1
Complejidad:
O(2n
)
O(n)
}.memoize()
#ETSChallenge
¡Es hora de probar su efectividad!
Love is in the air
Problema 2
#ETSChallenge
“Partimos del axioma (no probado) de que ligar es
cuestión de probabilidad. Aprovechemos San Valentín
para enviar masivamente flores con un dron antes de
que se termine la batería”.
Love is in the air
● Un mapa bidimensional indica los N objetivos amorosos
● La batería permite un número limitado de movimientos
● Buena época, la ciudad está plagada de rosas.
● Parar a por una rosa nos supone un coste despreciable
● Existe espacio aéreo reservado o infranqueable
Objetivo: Movimientos mínimos para optimizar entregas
#ETSChallenge
Love is in the air
X X X X X X X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X O D X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X T T X X X X
X X X X X X X X X X
T = Objetivo
X = Infranqueable
O = Espacio aéreo
D = Dron#ETSChallenge
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X O D X X X X
X T O O O O O O T X
X X X X O O X X X X
X T O O O O O O T X
X X X X T T X X X X
Grafo totalmente conexo
Nodos = D y T
Coste de NodoA a NodoB = camino más corto de A a B (Dijkstra)
Love is in the air
#ETSChallenge
Love is in the air
El problema del
viajante
NP - COMPLETO
#ETSChallenge
● Casos pequeños: Fuerza bruta
● Heurísticas o subóptimos
○ El vecino más próximo a mi posición
○ El vecino más próximo a mi y más lejano a meta
○ ...
● Encontrar subproblemas para los cuales heurísticas
mejores o algoritmos exactos son posibles
○ Combinación de heurísticas y fuerza bruta
■ Ramificación y acotación
■ Reordenamiento parcial
■ ...
Love is in the air
El problema del
viajante
NP - COMPLETO
#ETSChallenge
Aprendiendo a competir
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entiende el entorno
● Entiende la evaluación de la competición
○ Número de problemas
○ Puntuación de cada problema
○ Exactitud de las soluciones
○ Importancia de la velocidad de entrega
○ Condiciones bloqueantes
● Comprende qué evalúa cada problema
○ La exactitud es lo más importante
○ Limpieza de código
○ Complejidad computacional
○ Uso de memoria
● Lee (al menos) 5 veces el enunciado
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
¿Qué lenguaje escoger?
● Depende del problema concreto a resolver
● Suelen ser buenos...
○ Lenguajes de alto nivel que permiten scripting
○ Poco verbosos
○ Con excelente manejo de colecciones
○ Capacidades funcionales (pattern matching)
○ Vitaminados
● Por ejemplo:
○ python, groovy, haskell, scala,...
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entrada / salida
● El formato de entrada/salida es importante
○ Entrada por fichero
○ Entrada por línea de comando
○ Consumición de API
○ Función y test
● Ojo con entradas grandes
○ Problemas de rendimiento
○ Desbordamiento de memoria
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Entrada / salida por fichero
● Input
2
5
4 4
O O O X
O X O X
O X O X
M X B X
10
4 4
O O O M
O X O X
M X O X
O X B X
● Output
NO
9
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
Resumiendo
● Tipos de retos
○ Transformaciones I/O
○ Manejo de colecciones
○ Relaciones de recurrencia
○ Pattern matching
○ Problemas N-P
○ Encriptación
● ¡Ojo!
○ Testing de extremos
○ Int overflow
○ Desbordamiento de memoria
○ Complejidad computacional exponencial
Afrontando
competiciones
❏ El envoltorio
❏ Lenguajes
❏ I / O
❏ Generalizando retos
#ETSChallenge
¡Gracias! ¿Preguntas?
DESAFÍO TOTAL …COMPLETADO
@rafbermudez
@EtsFactory ETS Asset Management Factory#ETSChallenge

Más contenido relacionado

PPTX
משאבי אנוש כשותף אסטרטגי בהובלת תוכניות עבודה
PDF
2015-II, Cálculo I, calificada 2
PDF
Ницше Ф. "О пользе и вреде истории для жизни"
PPTX
Електронні таблиці
PPTX
Cross management experiences. mis 7 conclusiones
DOC
Preguntes còmic.
PPTX
Twitter pln
PPTX
Pruebacorta2 anamarinnavarro
משאבי אנוש כשותף אסטרטגי בהובלת תוכניות עבודה
2015-II, Cálculo I, calificada 2
Ницше Ф. "О пользе и вреде истории для жизни"
Електронні таблиці
Cross management experiences. mis 7 conclusiones
Preguntes còmic.
Twitter pln
Pruebacorta2 anamarinnavarro

Destacado (8)

PDF
детектив
PDF
Algunos+tipos+de+polímeros+1
PPT
advisory committee
PDF
Vinoth Resume
PPTX
שרשרת קריטית ניהול פרוייקטים 2
PPT
Fabry Disease Kidney Progression - 14 February 2014
PPS
Vitória no deserto aline barros
PDF
ANGGOTA PAGUYUBAN PURNA WIDYA PRAJA
детектив
Algunos+tipos+de+polímeros+1
advisory committee
Vinoth Resume
שרשרת קריטית ניהול פרוייקטים 2
Fabry Disease Kidney Progression - 14 February 2014
Vitória no deserto aline barros
ANGGOTA PAGUYUBAN PURNA WIDYA PRAJA
Publicidad

Similar a Desafío total: cómo resolver retos extremos (6)

PDF
Como escribir buenos tests al hacer TDD
PDF
claseU201EstructuracionPensamientoAnalisis.pdf
PDF
Desafio bebras problemas 1 con soluciones
DOCX
Reactivos sr
PDF
Ingeniería en Telemática y ejercicios.pdf
PDF
Practicas del proyecto
Como escribir buenos tests al hacer TDD
claseU201EstructuracionPensamientoAnalisis.pdf
Desafio bebras problemas 1 con soluciones
Reactivos sr
Ingeniería en Telemática y ejercicios.pdf
Practicas del proyecto
Publicidad

Más de Rafael Bermúdez Míguez (8)

PDF
Dart como alternativa a TypeScript (Codemotion 2016)
PDF
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)
PDF
Gorm for cassandra
PPTX
Construyendo tu propia bola de cristal predicción de precios con machine lea...
PPTX
Piensa en grande: Big data para programadores
PDF
Acercádonos a dart
PDF
Crea tu propio motor de videojuegos con backbone y canvas (html5)
PDF
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
Dart como alternativa a TypeScript (Codemotion 2016)
Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)
Gorm for cassandra
Construyendo tu propia bola de cristal predicción de precios con machine lea...
Piensa en grande: Big data para programadores
Acercádonos a dart
Crea tu propio motor de videojuegos con backbone y canvas (html5)
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...

Último (20)

PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
Guía_de_implementación_Marco_de_gobierno_y_gestión_de_TI_Universidades.pdf
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
PPTX
Uso responsable de la tecnología - EEST N°1
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPT
Protocolos de seguridad y mecanismos encriptación
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
capacitación de aire acondicionado Bgh r 410
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PPTX
Control de calidad en productos de frutas
PPTX
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
PPTX
Sistema de Gestión Integral TCA Ingenieros.pptx
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Guía_de_implementación_Marco_de_gobierno_y_gestión_de_TI_Universidades.pdf
informe_fichas1y2_corregido.docx (2) (1).pdf
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
Uso responsable de la tecnología - EEST N°1
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
Protocolos de seguridad y mecanismos encriptación
Trabajo informatica joel torres 10-.....................
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
Presentacion de Alba Curso Auditores Internos ISO 19011
capacitación de aire acondicionado Bgh r 410
Estrategia de Apoyo de Daylin Castaño (5).pdf
Control de calidad en productos de frutas
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
Sistema de Gestión Integral TCA Ingenieros.pptx
ccna: redes de nat ipv4 stharlling cande
Mecanismos-de-Propagacion de ondas electromagneticas

Desafío total: cómo resolver retos extremos

  • 2. ¿Por qué participar? ● ¡Premios! ● Promoción personal ● Conocer gente, socializar ● Aprender y mejorar ● ¡Es divertido! Concursos extremos de programación #ETSChallenge
  • 3. ¡Es hora de probar su efectividad en Chimpancés! El origen del planeta de los simios “Un grupo de investigación secreto está desarrollando un nuevo fármaco que aumenta significativamente la inteligencia.” Problema 1 #ETSChallenge
  • 4. El origen del planeta de los simios ● Todos los interruptores están inicialmente ON ● La caja se abrirá cuando estén todos OFF ● El interruptor de la derecha se puede conmutar siempre ● Cualquier otro interruptor se puede conmutar, si y sólo si, su interruptor de la derecha está ON y el resto OFF ● Irremediablemente queremos abrir la caja cuanto antes ... Objetivo: Mínimo número de conmutaciones para N interruptores #ETSChallenge
  • 5. 111 110 010 011 001 000 El origen del planeta de los simios 1111 1101 1100 0100 0101 0111 0110 0010 0011 0001 0000 ... 11111 11110 11010 11011 11001 11000 01000 01001 01011 01010 01110 01111 … 111111 111101 111100 110100 110101 110111 110110 110010 110011 110001 110000 010000 010001 010010 010110 010111 010101 010100 011100 011101 011111 ... 11 01 00 n MOV 1 1 2 2 3 5 1 + 2 + 2 4 10 2 + 3 + 5 5 21 5 + 6 + 10 6 42 10 + 11 + 21 N ? ?? + ?? + ??N ? (N-2) + (N-2) +1 + (N-1) = 2(N-2) + (N-1) + 1 +N-1 +N-1 #ETSChallenge
  • 6. El origen del planeta de los simios def minMovements= { numSwitches -> BigInteger result switch (numSwitches) { case 1: result = 1 break case 2: result = 2 break default: result = 2 * minMovements(numSwitches -2) + minMovements(numSwitches -1) +1 break } result } 2(N-2) + (N-1) + 1 Complejidad: O(2n ) O(n) }.memoize() #ETSChallenge
  • 7. ¡Es hora de probar su efectividad! Love is in the air Problema 2 #ETSChallenge “Partimos del axioma (no probado) de que ligar es cuestión de probabilidad. Aprovechemos San Valentín para enviar masivamente flores con un dron antes de que se termine la batería”.
  • 8. Love is in the air ● Un mapa bidimensional indica los N objetivos amorosos ● La batería permite un número limitado de movimientos ● Buena época, la ciudad está plagada de rosas. ● Parar a por una rosa nos supone un coste despreciable ● Existe espacio aéreo reservado o infranqueable Objetivo: Movimientos mínimos para optimizar entregas #ETSChallenge
  • 9. Love is in the air X X X X X X X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X O D X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X T T X X X X X X X X X X X X X X T = Objetivo X = Infranqueable O = Espacio aéreo D = Dron#ETSChallenge
  • 10. X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X O D X X X X X T O O O O O O T X X X X X O O X X X X X T O O O O O O T X X X X X T T X X X X Grafo totalmente conexo Nodos = D y T Coste de NodoA a NodoB = camino más corto de A a B (Dijkstra) Love is in the air #ETSChallenge
  • 11. Love is in the air El problema del viajante NP - COMPLETO #ETSChallenge
  • 12. ● Casos pequeños: Fuerza bruta ● Heurísticas o subóptimos ○ El vecino más próximo a mi posición ○ El vecino más próximo a mi y más lejano a meta ○ ... ● Encontrar subproblemas para los cuales heurísticas mejores o algoritmos exactos son posibles ○ Combinación de heurísticas y fuerza bruta ■ Ramificación y acotación ■ Reordenamiento parcial ■ ... Love is in the air El problema del viajante NP - COMPLETO #ETSChallenge
  • 13. Aprendiendo a competir Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 14. Entiende el entorno ● Entiende la evaluación de la competición ○ Número de problemas ○ Puntuación de cada problema ○ Exactitud de las soluciones ○ Importancia de la velocidad de entrega ○ Condiciones bloqueantes ● Comprende qué evalúa cada problema ○ La exactitud es lo más importante ○ Limpieza de código ○ Complejidad computacional ○ Uso de memoria ● Lee (al menos) 5 veces el enunciado Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 15. ¿Qué lenguaje escoger? ● Depende del problema concreto a resolver ● Suelen ser buenos... ○ Lenguajes de alto nivel que permiten scripting ○ Poco verbosos ○ Con excelente manejo de colecciones ○ Capacidades funcionales (pattern matching) ○ Vitaminados ● Por ejemplo: ○ python, groovy, haskell, scala,... Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 16. Entrada / salida ● El formato de entrada/salida es importante ○ Entrada por fichero ○ Entrada por línea de comando ○ Consumición de API ○ Función y test ● Ojo con entradas grandes ○ Problemas de rendimiento ○ Desbordamiento de memoria Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 17. Entrada / salida por fichero ● Input 2 5 4 4 O O O X O X O X O X O X M X B X 10 4 4 O O O M O X O X M X O X O X B X ● Output NO 9 Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 18. Resumiendo ● Tipos de retos ○ Transformaciones I/O ○ Manejo de colecciones ○ Relaciones de recurrencia ○ Pattern matching ○ Problemas N-P ○ Encriptación ● ¡Ojo! ○ Testing de extremos ○ Int overflow ○ Desbordamiento de memoria ○ Complejidad computacional exponencial Afrontando competiciones ❏ El envoltorio ❏ Lenguajes ❏ I / O ❏ Generalizando retos #ETSChallenge
  • 19. ¡Gracias! ¿Preguntas? DESAFÍO TOTAL …COMPLETADO @rafbermudez @EtsFactory ETS Asset Management Factory#ETSChallenge