S'estudien els fonaments de la computació i tècniques pel disseny eficient d'algoritmes. Es repassen les tècniques bàsiques algorítmiques i el seu l'anàlisis, i s'expliquen técniques addicionals de disseny d'algorismes. Seguidament, s'estudien els límits de la computació, com a conseqüència de l'estudi de models formals de càlcul,
i es fa una introducció a la complexitat computacional.
Professorat
Responsable
Jose Luis Balcázar Navarro (
)
Altres
Jordi Delgado Pin (
)
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències Transversals
Transversals
CT4 [Avaluable] - Treball en equip. Ser capaç de treballar com a membre d'un equip interdisciplinari, ja sigui com un membre més o realitzant tasques de direcció, amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles.
CT6 [Avaluable] - Aprenentatge autònom. Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per ampliar aquest coneixement.
Bàsiques
CB1 - Que els estudiants hagin demostrat posseir i comprendre coneixements en una àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es recolza en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda del seu camp d'estudi.
CB2 - Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una manera professional i posseeixin les competències que solen demostrar-se mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins la seva àrea d'estudi.
Competències Tècniques
Específiques
CE02 - Dominar els conceptes bàsics de matemàtica discreta, lògica, algorísmica i complexitat computacional i la seva aplicació per al tractament automàtic de la informació per mitjà de sistemes computacionals i la seva aplicació per a la resolució de problemes.
CE03 - Identificar i aplicar els procediments algorítmics bàsics de les tecnologies informàtiques per dissenyar solucions a problemes, analitzant la idoneïtat i complexitat dels algoritmes proposats.
CE04 - Dissenyar i utilitzar de forma eficient els tipus i estructures de dades més adequats a la resolució d'un problema.
CE10 - Analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.
CE12 - Dominar els principis fonamentals i models de la computació i saber-los aplicar per a interpretar, seleccionar, valorar, modelar, i crear nous conceptes, teories, usos i desenvolupaments tecnològics relacionats amb la intel·ligència artificial.
CE13 - Avaluar la complexitat computacional d'un problema, identificar estratègies algorítmiques que puguin conduir a la seva resolució i recomanar, desenvolupar i implementar aquella que garanteixi el millor rendiment d'acord amb els requisits establerts.
Competències Tècniques Generals
Genèriques
CG2 - Utilitzar els coneixements fonamentals i metodologies de treball sòlides adquirits durant els estudis per adaptar-se als nous escenaris tecnològics de el futur.
CG4 - Raonar, analitzant la realitat i dissenyant algoritmes i formulacions que la modelin. Identificar problemes i construir solucions algorísmiques o matemàtiques vàlides, eventualment noves, integrant el coneixement multidisciplinari necessari, valorant diferents alternatives amb esperit crític, justificant les decisions preses, interpretant i sintetitzant els resultats en el context de l'domini d'aplicació i establint generalitzacions metodològiques a partir de aplicacions concretes.
CG8 - Observar un exercici ètic de la professió en totes les seves facetes, aplicant criteris ètics en el disseny de sistemes, algoritmes, experiments, utilització de dades, d'acord amb els sistemes ètics recomanats pels organismes nacionals i internacionals, amb especial èmfasi en seguretat, robustesa , privacitat, transparència, traçabilitat, prevenció de biaixos (de raça, gènere, religió, territori, etc.) i respecte als drets humans.
Objectius
Aprendre a analitzar algorismes i conèixer les notacions asimptòtiques.
Competències relacionades:
CG2,
CG4,
CE02,
CE03,
CE12,
Saber classificar els problemes segons la seva complexitat temporal i espaial.
Competències relacionades:
CG4,
CG8,
CT4,
CT6,
CB2,
CE02,
CE03,
CE12,
CE13,
Conèixer esquemes algorítmics fonamentals com ara programació dinàmica, algoritmes voraços, tècniques combinatories i de formalització de restriccions lineals, identificar quan n'és idoni l'aplicació i plantejar i resoldre els programes adients.
Competències relacionades:
CG4,
CT6,
CB2,
CE02,
CE03,
CE04,
CE10,
CE13,
Conèixer els models teòrics de computació, així com els seus límits.
Competències relacionades:
CG4,
CT4,
CB1,
CB2,
CE02,
CE13,
Continguts
Disseny d'algoritmes combinatoris
Com son i com s'apliquen els algoritmes voraços, les restriccions lineals i la programació dinàmica.
Models de computació
Models de propòsit específic: autòmats finits, autòmats a pila. Models de propòsit general: màquines de Turing, sistemes acceptables de programació, funcions recursives parcials.
Decidibilitat
Problemes decidibles, indecidibles i semi-decidibles. La reduïbilitat com a eina per classificar problemes. Indecidibilitat de tota propietat no trivial sobre el comportament dels programes. Propietats de les funcions computables.
Complexitat computacional
Complexitat concreta i complexitat abstracta. Classes de complexitat. Relació amb esquemes de cerca combinatòria. NP-completesa a la IA i a altres dominis. Programació lineal i programació entera.
Activitats
ActivitatActe avaluatiu
Conceptes bàsics d'algoritmes, anàlisi i complexitat
Recapitulació d'algoritmes coneguts de PA2 / ABIA. Conceptes fonamentals de Problema Computacional Combinatòric i d'Algoritme Combinatòric. Ccomplexitat d'un problema computacional. Objectius:13 Continguts:
Concepte, exemples i característiques dels algoritmes voraços.
Teoria: Planificació de tasques. Algoritmes per camins mínims. Algoritmes de Kruskal y Prim per arbres d'expansió mínims. Particions (Union-find). Codis de Huffman.
Concepte, exemples i característiques dels algoritmes de programació dinàmica.
Teoria: Concepte, exemples i característiques dels algoritmes de programació dinàmica.
Principi d'optimalitat. Memoització. Arbres binaris de cerca òptims. Algoritme de Floyd-Warshall per camins mínims. Problema de la motxilla. Altres exemples.
Computabilitat: màquines de Turing, sistemes acceptables de programació. Propietats de les funcions computables. Problemes decidibles. Objectius:4 Continguts:
Propietats de les funcions computables. Indecidibilitat. Semidecidibilitat.
Propietats de les funcions computables: s-m-n (avaluació parcial), recursió. Indecidibilitat del problema de parada. Reduïbilitat com a eina per argumentar indecidibilitat. Semidecidibilitat i propietats principals. Productivitat. Objectius:4 Continguts:
Complexitat computacional. Complexitat abstracta i complexitat concreta. L'enfocament axiomàtic.Complexitat en temps i en espai. Les classes logarítmiques i polinòmiques: robustesa. Indeterminisme. Teorema de Savitch. Objectius:24 Continguts:
Métodes Monte-Carlo versus Las Vegas. Factorització i criptografia. Classes de complexitat probabilístiques. Desrandomització. Amplitud versus probabilitat: algoritme de Grover, introducció a la computació quàntica. Objectius:24 Continguts:
Les classes es distribueixen en sessions de teoria i problemes. Les sessions de teoria s'exposaran els conceptes de l'assignatura fent ús del material de suport que els alumnes sempre tindran disponible, alguns conceptes s'exemplificaran sempre promovent la interacció dels alumnes per aclarir els possibles dubtes i discussió.
Les sessions pràctiques es resoldran problemes proposats pel professor que permetran aprofundir en els conceptes, tècniques i mètodes exposats a teoria. En tot moment, s'animarà als estudiants a participar en la resolució dels problemes tant de manera individual com en petits grups per discutir les alternatives possibles.
Els problemes podran ser tant amb paper i llàpis com sobre màquina, amb l'ajut de software adient disponible sense cost.
Mètode d'avaluació
Part de la secció d'Algorítmica (inicial del curs) requerirà per la seva avaluació una pràctica de dimensió modesta que es presentarà al començament del tema Programació Dinàmica i s'avaluarà a la seva entrega (nota P).
Addicionalment hi haurà la nota del parcial (E) i la de l'examen final (nota F). La nota del curs s'obtindrà mitjançant el següent criteri:
max(F*0.8, (E*0.3 + F*0.5)) + P*0.2
Reavaluació
Només es poden presentar a l¿examen de reavaluació qui prèviament s¿hagi presentat a l¿examen final i l¿hagi suspès.