SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Destacado (8)

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

Más de Rafael Bermúdez Míguez

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

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

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

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 

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