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
- Öznur Yasar (oznur.yasar@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: CE2, CT6, -
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: CE2, CT4, CT5, CT6, CT7, CG1, 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ó
Qualsevol acte de frau acadèmic, plagi, ús o tinença a l'abast de mitjans no autoritzats en qualsevol activitat d'avaluació comportarà la qualificació de zero (0) en la prova o lliurament afectat. A més, d'acord amb la normativa de la Universitat, la possible derivació dels fets per a l'obertura d'un expedient disciplinari implicarà que l'assignatura quedi en l'estat provisional de "pendent d'avaluació" fins a la resolució de l'expedient. La gestió d'aquestes incidències es desplega d'acord amb el Marc d'actuació per a la integritat acadèmica en l'avaluació de la UPC.
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.
Si durant la correcció d'una activitat o pràctica el professorat té dubtes fonamentats sobre la
informació o l'autoria del treball proporcionat per l'estudiant (com ara problemes incomplets,
resultats no justificats de manera lògica o asimetries extremes de nivell), es retindrà la
publicació de la nota provisional i es convocarà l'estudiant a una sessió de verificació oral
abans d'emetre la qualificació definitiva.
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