Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits
, però té capacitats prèvies
Departament
CS
Professorat
Responsable
- Enric Rodriguez Carbonell ( erodri@cs.upc.edu )
Altres
- Albert Oliveras Llunell ( oliveras@cs.upc.edu )
Hores setmanals
Teoria
2
Problemes
1
Laboratori
1
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències tècniques
Transversals
Bàsiques
Genèriques
Objectius
-
Prendre consciència dels límits de la computació: comprendre les implicacions de la pregunta "P=NP?", entendre l'enunciat del Teorema de Cook-Levin, reconèixer i identificar diversos problemes NP-complets clàssics.
Competències relacionades: CG5, -
Conèixer, explicar, dissenyar, analitzar, comparar i implementar algorismes de cerca exhaustiva fent servir la tècnica de backtracking.
Competències relacionades: CE2, CB5, -
Conèixer l'esquema de programació dinàmica, identificar quan es pot aplicar i com, i familiaritzar-se amb alguns algorismes de programació dinàmica fonamentals.
Competències relacionades: CE2, -
Conèixer l'esquema dels algorismes golafres, identificar quan es pot aplicar i com, conèixer les tècniques més habituals per a demostrar la seva correctesa i familiaritzar-se amb alguns algorismes golafres fonamentals.
Competències relacionades: CE2, -
Completar i modificar implementacions, en el llenguatge de programació Python, de diversos algorismes per resoldre problemes de dificultat mitjana.
Competències relacionades: CT6, CE2, -
Identificar i proposar solucions a possibles problemes d'eficiència en programes escrits en el llenguatge de programació Python.
Competències relacionades: CE2, CT6, -
Desenvolupar projectes de mida mitjana com a membre d'un equip, aprenent així a dividir un projecte en parts petites, distribuir-les entre els seus membres i actuar amb responsabilitat de manera coordinada per a la correcta finalització de les tasques assignades.
Competències relacionades: CT4, CE2, CG1, CT5, CT6, CT7, CG2, -
Conèixer algorismes basats en cerca local per a resoldre eficientment problemes intractables. Conèixer una varietat de metaheurístiques de diferent natura i ser capaç d'identificar quan i com es poden aplicar en problemes concrets computacionalment durs.
Competències relacionades: CE2, -
Conèixer els fonaments d'autòmats finits i expressions regulars per tal de poder-los usar a la pràctica (cerca de patrons en textos, etc.).
Competències relacionades: CE7,
Continguts
-
Tractabilitat: classes de problemes P i NP
Classes P i NP, Teorema de Cook-Levin, reduccions, NP-completesa. -
Cerca exhaustiva
Principis teòrics: espai de solucions, solucions parcials, poda. Exemples: subconjunts, permutacions, viatjant de comerç, suma de subconjunts. -
Programació dinàmica
Esquema top-down (memoització). Esquema bottom-up (tabulació). Exemples: Fibonacci, nombres binomials, motxilla, multiplicació de seqüències de matrius. -
Algorismes golafres
Principis teòrics: esquema general dels algorismos voraços. Exemples: planificació de tasques, etc. -
Metaheurístiques
Cerca local. Simulated Annealing, Tabu Search, GRASP, algorismes genètics. -
Autòmats finits i expressions regulars
Alfabets, mots, llenguatges. Autòmats finits deterministes, autòmats finits indeterministes, autòmats finits amb lambda-transicions, equivalència entre models d'autòmats, minimització d'autòmats. Expressions regulars, equivalència amb autòmats. Operacions.
Activitats
Activitat Acte avaluatiu
Teoria
6h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Teoria
4h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Teoria
4h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Teoria
4h
Problemes
2h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Teoria
4h
Problemes
0h
Laboratori
6h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Teoria
4h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Metodologia docent
El temari s'exposa de forma molt pràctica, a través de la presentació de molts exemples.Les classes de teoria introdueixen tots els conceptes i tècniques necessaris, els quals es posen en pràctica en les classes de problemes i de laboratori mitjançant una col·lecció de problemes i exercicis en un jutge automàtic.
Les dues hores de classes de teoria es fan setmanalment. Les dues hores de classes de laboratori es fan quinzenalment. Les dues hores de classes de problemes es fan quinzenalment.
El projecte integra els coneixements i les competències de tot el curs.
Mètode d'avaluació
NPar = nota examen parcialNFT = nota examen final de teoria
NFL = nota examen final de laboratori
NPro = nota projecte
NOTA FINAL = max( 30%Npar + 30%NFT + 20%NFL + 20% NPro, 60%NFT + 20%NFL + 20% NPro)
La nota de l'examen de reavaluació, si n'hi ha i és més alta, substitueix la nota de l'examen final de teoria (NFT). Les notes de parcial, projecte i laboratori (NPar, NPro, NFL) es conserven.
Bibliografia
Bàsic
-
Introduction to algorithms
- Cormen, T.H [et al.],
MIT Press,
[2022].
ISBN: 9780262046305
https://research-ebsco-com.recursos.biblioteca.upc.edu/c/ik5pvi/search/details/lq2sgumirf?db=nlebk -
Computers and intractability: a guide to the theory of NP-Completeness
- Garey, M.R.; Johnson, D.S,
W.H. Freeman,
1979.
ISBN: 0716710447
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000087999706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Foundations of algorithms
- Neapolitan, R.E,
Jones and Bartlett Learning,
2015.
ISBN: 9781284049190
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004097269706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Metaheuristics
- Siarry, P. (ed.),
Springer,
2017.
ISBN: 9783319832845
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004156469706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Llenguatges, gramàtiques i autòmats: curs bàsic
- Cases, R.; Màrquez, L,
Edicions UPC,
2003.
ISBN: 8483017288
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002699299706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
Handbook of metaheuristics
- Gendreau, M.; Potvin, J.-Y,
Springer,
2018.
ISBN: 9783319910857
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004151509706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithms
- Dasgupta, S.; Papadimitriou, C.; Vazirani, U.,
Mc Graw Hill Higher Education,
2008.
ISBN: 9780073523408
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003202339706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithms
- Sedgewick, R.; Wayne, K,
Addison-Wesley,
2011.
ISBN: 9780321573513
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004156419706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithm design
- Kleinberg, J.; Tardos, É,
Pearson,
2014.
ISBN: 9781292023946
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004001669706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Introduction to automata theory, languages, and computation
- Hopcroft, J.E.; Motwani, R.; Ullman, J.D,
Pearson/Addison Wesley,
2007.
ISBN: 0321462254
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003933959706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Jutge automàtic per les sessions de laboratori https://jutge.org/
Capacitats prèvies
- Familiaritat amb les tècniques bàsiques de programació: iteracions, alternatives, funcions recursives, pas de paràmetres, classes, objectes, mètodes, ...- Coneixement de conceptes algorísmics bàsics: eficiència d'algorismes, notació asimptòtica, grafs, recorregut de grafs, estructures de dades (llistes, arbres de cerca, hash, heaps, ...)
- Coneixements bàsics de matemàtica discreta, àlgebra lineal i càlcul
- Coneixements bàsics de teoria de probabilitat i estadística