Créditos
6
Tipos
Obligatoria de especialidad (Computación Avanzada)
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
CS
Mail
erodri@cs.upc.edu
Programa del curso (resumen).
Ejemplos de problemas combinatorios. Paradigmas generales: programación lineal entera, SAT y extensiones, programación con restricciones. Técnicas de modelado y lenguajes.
Profesorado
Responsable
- Enric Rodriguez Carbonell ( erodri@cs.upc.edu )
Horas semanales
Teoría
2
Problemas
0
Laboratorio
1
Aprendizaje dirigido
0
Aprendizaje autónomo
6.4
Competencias
Advanced computing
Genéricas
Razonamiento
Básicas
Objetivos
-
Modelar problemas surgidos de la informática y otras disciplinas en los paradigmas de resolución considerados en el curso: programación con restricciones, programación lineal entera, satisfactibilidad proposicional.
Competencias relacionadas: CG1, CG3, CEE3.3, CB6, CTR6, -
Familiarizarse con las herramientas del estado del arte de los paradigmas de resolución considerados en el curso: programación con restricciones, programación lineal entera, satisfactibilidad proposicional.
Competencias relacionadas: CG3, CEE3.2, CTR6, -
Comprender los fundamentos algorítmicos de cada uno de los paradigmas de resolución considerados en el curso: programación con restricciones, programación lineal entera, satisfactibilidad proposicional.
Competencias relacionadas: CEE3.2,
Contenidos
-
Problemas Combinatorios.
Definición informal. Problemas NP-completos vs. problemas de tiempo polinómico. Algunos ejemplos y aplicaciones: satisfactibilidad proposicional, coloración de grafos, mochila, empaquetamiento de contenedores, etc. Enfoques para la resolución de problemas. -
Programación con Restricciones.
Definiciones básicas. Problemas de satisfacción de restricciones. Ejemplos. Consistencia local: consistencia de arco, consistencia de arco direccional, consistencia de límites. Propagación de restricciones para restricciones globales: all different. Algoritmos de búsqueda: retroceso básico, verificación anticipada, búsqueda parcial / completa. Heurísticas de orden de variable y de valor. Problemas de optimización de restricciones. Modelado y resolución de problemas con CP. -
Programación Lineal.
Revisión de programación lineal: el algoritmo del símplex. Dualidad y símplex dual. Modelado y resolución de problemas con programación lineal. Programación lineal entera mixta. Branch & bound, planos de corte, branch & cut. Matrices totalmente unimodulares. Algoritmo del símplex para redes. Modelado y resolución de problemas con programación lineal entera mixta. -
Resolución de SAT y extensions.
Lógica proposicional. El problema de la satisfactibilidad (SAT). Algoritmo DPLL. Resolución. Resolvedores de SAT con aprendizaje de cláusulas guiado por conflictos. Modelado y resolución de problemas con SAT: restricciones de cardinalidad, restricciones pseudo-booleanas. Satisfactibilidad módulo teorías.
Actividades
Actividad Acto evaluativo
Programación Lineal
Modelado y resolución con programación lineal- Teoría: Understanding of the materials given in theory sessions.
- Laboratorio: Resolution of the practical exercises of each laboratory session.
- Aprendizaje autónomo: Review and extension of the materials given in theory sessions. Resolution of theoretical exercises.
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
20.6h
SAT y Extensiones
Modelado y resolución con SAT y extensiones- Teoría: Understanding of the materials given in theory sessions.
- Laboratorio: Resolution of the practical exercises of each laboratory session.
- Aprendizaje autónomo: Review and extension of the materials given in theory sessions. Resolution of theoretical exercises.
Contenidos:
Teoría
8h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
12.8h
Metodología docente
La característica principal de la metodología docente es el usode materiales accesibles a través de la web, diseñados específicamente
para un curso de autoaprendizaje. Estos materiales permiten reformular la
enseñanza de tal manera que el modelo tradicional de clases desaparece
en gran medida.
Así:
1. Considera la clase como una línea de base para el trabajo, que el
estudiante debe continuar y profundizar por su cuenta.
2. Se basa en materiales de alta calidad (diapositivas, listas de
problemas, problemas resueltos, ejemplos de trabajos prácticos de
laboratorio, software LP / SAT / CP, referencias bibliográficas).
3. Tiene como objetivo motivar a los estudiantes, con ejemplos,
discusiones, comentarios, etc ... Las intuiciones detrás de las
definiciones, propiedades y las técnicas se discuten en grupo.
El laboratorio fomentará el trabajo independiente de los estudiantes.
El papel del profesor será principalmente ayudar y evaluar los
estudiantes, que deberían trabajar principalmente de forma autónoma.
Método de evaluación
El 50% de la nota final corresponde a teoría. Esta nota se obtendrá mediante un examen escrito al final del curso.El otro 50% de la nota final corresponde a laboratorio. Esta nota se obtendrá como la media de tres proyectos sucesivos (uno para CP, otro para LP, y todavía otro para SAT) que los estudiantes deberán haber entregado.
Bibliografía
Básico
-
Handbook of satisfiability
- Heule, Marijn; Walsh, Toby; van Maaren, Hans; Biere, Armin,
IOS Press,
2021.
ISBN: 9781643681603
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=28617772 -
Introduction to algorithms
- Cormen, T.H. [et al.],
MIT Press,
2022.
ISBN: 9780262046305
-
Handbook of constraint programming
- Rossi, F.; Beek, P. van ; Walsh, T. (eds.),
Elsevier,
2006.
ISBN: 0444527264
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003148729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Model building in mathematical programming
- Williams, H.P,
Wiley & Sons,
2013.
ISBN: 9781118443330
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003969709706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
Computational techniques of the simplex method
- Maros, I,
Kluwer Academic Publishers,
2003.
ISBN: 1402073321
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002650079706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Website of the couse with slides, materials and diverse information. http://www.cs.upc.edu/~erodri/cps.html
Capacidades previas
Conocimientos básicos del sistema operativo Linux y del lenguaje de programación C++.Conocimientos básicos de álgebra lineal, algoritmos de grafos y lógica.