Crèdits
6
Tipus
- GRAU: Complementària d'especialitat (Computació)
- GCED: Optativa
Requisits
- Prerequisit: A
Departament
CS
Web
https://www.cs.upc.edu/~mjserna/docencia/grauAA/AA-GEI.html
algorismes d'aproximació (calculen eficientment solucions properes a l'òptima en alguns problemes d'optimització), algorismes de paràmetre fix (identificar un paràmetre del problema que al fixar-lo el problema en questió esdevé tractable). També ampliarem el conjunt de tècniques aleatòries examinades fins al moment en assignatures prèvies.
Professorat
Responsable
- Maria Jose Serna Iglesias ( mjserna@cs.upc.edu )
Hores setmanals
Teoria
2
Problemes
2
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Aprenentatge autònom
- G7.3 - Aprenentatge autònom: capacitat de planificació i organització del treball personal. Aplicar els coneixements adquirits a la realització d'una tasca en funció de la pertinença i de la importància, decidir la manera de dur-la a terme i el temps que se li ha de dedicar, i seleccionar les fonts d'informació més adients. Identificar la importància d'establir i mantenir contactes amb els companys d'estudis, amb el professorat i amb els professionals (networking). Identificar fòrums d'informació sobre enginyeria TIC, els seus avenços i el seu impacte en la societat (IEEE, associacions, etc.).
Especialitat computació
- CCO1.1 - Avaluar la complexitat computacional d'un problema, conèixer estratègies algorísmiques que puguin dur a la seva resolució, i recomanar, desenvolupar i implementar la que garanteixi el millor rendiment d'acord amb els requisits establerts.
- CCO2.5 - Implementar software de cerca d'informació (information retrieval).
- CCO2.6 - Dissenyar i implementar aplicacions gràfiques, de realitat virtual, de realitat augmentada i videojocs.
Objectius
-
Conèixer els conceptes fonamentals de Problema Computacional i Algorisme. Saber analitzar els recursos computacionals, com Temps i Espai de computació, que requereix un algorisme qualsevol.
Competències relacionades: CCO1.1, -
Conèixer com classificar la complexitat d'un problema computacional. Saber distingir els problemes computacionals segons tractables o intractables. Conèixer les tècniques de reductibilitat i completesa per analitzar rigurosament la dificultat computacional d'un problema.
Competències relacionades: CCO1.1, G7.3, -
Conèixer alguns problemes Intractables clàssics i les classes que aquests identifiquen: NP, PSPACE, EXP i NEXP.
Competències relacionades: CCO1.1, G7.3, -
Conèixer Algorismes Aleatoris per a resoldre problemes Intractables. En particular, conèixer dues varietats d'algorismes aleatoris: Algorismes Monte Carlo que calculen en temps polinòmic una solució del problema que pot ser incorrecta amb molt baixa probabilitat i Algorismes Las Vegas que sempre calculen una solució correcta i garanteixen temps polinòmic amb alta probabilitat.
Competències relacionades: CCO1.1, G7.3, -
Conèixer Algorismes d'Aproximació que calculen eficientment solucions aproximades (properes a les òptimes) per a problemes d'optimització Intractables. Conèixer les seves limitacions o problemes no aproximables en temps polinòmic.
Competències relacionades: CCO2.5, CCO1.1, G7.3, -
Conèixer Algorismes de Paràmetre Fix que ens permeten resoldre en temps polinòmic certes restriccions de problemes Intractables. Saber identificar paràmetres específics d'un problema de manera que al ser fixats, aleshores el problema es pot resoldre efiientment.
Competències relacionades: CCO2.5, G7.3, -
Conèixer Algorismes de fluxos de dades per resoldre de forma eficient
problemes les entrades dels quals s'han de processar
fent una petita quantitat de passades sobre elles, utilitzant només una quantitat limitada de memòria de treball.
El model de fluxes s'utilitza en problemes on la mida de l'entrada supera amb escreix la mida
de la memòria principal disponible.
Competències relacionades: CCO2.5, CCO2.6, CCO1.1, G7.3, -
Conèixer conceptes bàsics de Teoria de Jocs: Jocs, estratègies, costos, beneficis, jugadors egoïstes. Nou concepte de solució: Equilibri de Nash. Eficiència de les solucions: Preu de l'Estabilitat i Preu de Anarquia. Introducció als Jocs de formació de Xarxes.
Competències relacionades: CCO1.1,
Continguts
-
Problemes Intractables
Reductibilitat i Completesa.
Problemes NP-complets: Satisfactibilitat, Subgrafs, Colorabilitat, Recorreguts, Particions, Scheduling.
Problemes PSPACE, EXP i NEXP: Fórmules quantificades, Jocs de tauler, Enrajolar, Equivalència d'expressions regulars.
-
Algorismes Aleatoris
Algorismes Monte Carlo. Algorismes Las Vegas. Generació de nombres aleatoris. Factorització (Heurístic Pollard Rho). Criptografia (RSA) -
Algorísmia i Teoria de Jocs: Modelitzant Internet.
Definicions bàsiques: Joc, estratègia, costos i beneficis, jugadors egoïstes.
Equilibri de Nash, Cost Social, Preu de l'Estabilitat i Preu de l'Anarquia.
Introducció de Jocs de formació de Xarxes. Comprensió del funcionament d'Internet: Equilibri d'un joc. -
Algorismes d'Aproximació
Problemes d'optimització i aproximabilitat.
Mètodes algorísmics: Algorismes voraços, mètodes basats en Programació Lineal.
-
Algorismes de Paràmetre Fix
Problemes parametritzats: Recobriment de vèrtexs, Max Sat, Motxilla.
Mètodes algorísmics: Arbres de cerca amb profunditat fitada, Kernelització. -
Algorismes de Fluxos de Dades
Alguns problemes bàsics.
Models computacionals per a fluxos de dades.
Mètodes algorísmics: Graph Streams, Sampling, Sketches.
Activitats
Activitat Acte avaluatiu
Aprenentatge del tema "Problemes Intractables"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 2 3
Continguts:
Teoria
6h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h
Aprenentatge del tema "Algorismes Aleatoris"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 4
Continguts:
Teoria
6h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h
Aprenentatge del tema "Algorísmia i Teoria de Jocs: Modelitzant Internet"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 8
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h
Aprenentatge del tema "Algorismes d'Aproximació"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 5
Continguts:
Teoria
6h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h
Aprenentatge del tema "Algorismes de Paràmetre Fix"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 6
Continguts:
Teoria
3h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Aprenentatge del tema "Algorismes per Fluxos de Dades"
Els alumnes assiteixen a les classes de teoria, intenten comprendre aquest tema i miren de resoldre els problemes assignats aprofitant les classes de problemes per demanar ajut al professor. A les classes de problemes també se'ls pot demanar que facin una presentació a la pissarra d'algun dels problemes assignats.Objectius: 7
Continguts:
Teoria
4h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h
Metodologia docent
Els continguts teòrics de l'assignatura s'imparteixen a les classes de teoria.A les classes de problemes es discutiran les solucions proposades pels estudiants d'exercicis plantejats pel professor amb antelació (enunciats més complexos, amb els quals l'estudiant ha pogut treballar durant una setmana, autònomament) o d'exercicis curts plantejats durant la mateixa classe per a ser treballats en equips de dos-quatre estudiants o individualment. Els estudiants podran ser requerits a exposar les seves solucions a la resta dels companys.
Els estudiants hauran de fer diverses entregues/presentacions de la solució de problemes o d'algorismes assignats pel professor. En alguns casos per trobar la solució caldrà emprar mètodes que complementen els vistos a classe de teoria i requerirà fer una petita recerca bibliogràfica. En aquests casos es demanarà que es presentin públicament les solucions.
Mètode d'avaluació
La nota final es calcula a partir de la nota de la resolució de problemes algorísmics en classe de problemes i la els lliuraments/presentacions (A); la de les proves escrites: parcial (P1 y P2) i l'examen final (F).La nota de l'avaluació contínua de l'assignatura es calcula a partir de la nota A, i les notes dels exàmens parcials P1 i P2 de la manera següent:
Nota Contínua= 0.2 A + 0.4 P1 + 0.4 P2
L'estudiant pot no presentar-se a l'examen final i, en aquest cas, la Nota Final = Nota Contínua.
Si l'estudiant es presenta a l'examen final i obté una nota ExF, aleshores
Nota Final = max { F, (NotaContínua + F)/2 }
L'avaluació de la competència G7.3 la realitza el professor individualment per a cada alumne basant-se en les presentacions públiques i també per escrit de els temes assignats.
L'avaluació de les competències no afecta a l'avaluació de l'assignatura.
Bibliografia
Bàsic
-
Algorithms
- Dasgupta, S.; Papadimitriou, C.H.; Vazirani, U.V,
Mc Graw Hill Higher Education,
2008.
ISBN: 978-0-07-352340-8
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003202339706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithm design
- Kleinberg, J.; Tardos, E,
Pearson,
2014.
ISBN: 9781292023946
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004001669706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Introduction to algorithms
- Cormen, T.H. [et al.],
MIT Press,
2022.
ISBN: 9780262046305
Complementari
-
Approximation algorithms
- Vazirani, V.V,
Springer,
2010.
ISBN: 9783642084690
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003727759706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Invitation to fixed-parameter algorithms
- Niedermeier, R,
Oxford University Press,
2006.
ISBN: 0198566077
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003093699706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Probability and computing: randomized algorithms and probabilistic analysis
- Mitzenmacher, M.; Upfal, E,
Cambridge University Press,
2005.
ISBN: 9780521835404
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002835539706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithmic game theory
- Nisan, N. [et al.] (eds.),
Cambridge University Press,
2007.
ISBN: 9780521872829
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003321009706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The nature of computation
- Moore, C.; Mertens, S,
Oxford University press,
2011.
ISBN: 9780199233212
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003877749706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Handbook of applied algorithms: solving scientific, engineering and practical problems [Chapter 8. Algorithms for Data Streams]
- Nayak, A.; Stojmenovic, I. (eds.),
Wiley Interscience,
2008.
ISBN: 9780470044926
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003396759706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacitats prèvies
Coneixements d'algorísmia i conceptes relacionats: Eficiència d'algorismes, notació asimptòtica,algorismes golafres, programació dinàmica, programació recursiva, etc.
Coneixements de la teoria de la computació bàsics: autòmats, gramàtiques, màquines de Turing, decidibilitat, complexitat.
Capacitat crítica.
Maduresa matemàtica.