Aquesta assignatura se centra en estructures de dades i algorismes per a l'anàlisi eficient de dades en problemes bioinformàtics. La matèria cobreix arbres, diccionaris, grafs i cues de prioritat, i explica els algorismes relacionats amb aquestes estructures de dades, així com algorismes eficients per explorar espais de cerca complexos. El curs introdueix la teoria de la intractabilitat computacional i les seves respectives classes.
Professorat
Responsable
Caroline König (
)
Hores setmanals
Teoria
2
Problemes
1
Laboratori
1
Aprenentatge dirigit
0
Aprenentatge autònom
6
Objectius
Conèixer les principals estructures de dades utilitzades en la bioinformàtica.
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Subcompetences:
Conèixer problemes rellevants en computació bioinformàtica que es resolen basant-se en estructures de dades específiques.
Comprendre el disseny i la implementació d'estructures de dades bàsiques per a una gestió eficient de dades en algoritmes avançats.
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Subcompetences:
Conèixer, comprendre, dissenyar estructura de dades per implementar diccionaris.
Conèixer, comprendre, dissenyar estructura de dades per implementar cues de prioridad.
Conèixer, comprendre, dissenyar estructuras de dades per a implementar arbres.
Conèixer, comprendre, dissenyar estructura de dades per implementar piles i cues.
Coneixements sobre algorismes que resolguin problemes clàssics en grafs.
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Subcompetences:
Conèixer, dissenyar, comparar i implementar algoritmes de camí més curt en grafs.
Conèixer, dissenyar, comparar i implementar algoritmes d'ordenació topològica.
Conèixer, dissenyar, comparar i implementar algoritmes de recorregut de grafs.
Comprendre, dissenyar, comparar i implementar algoritmes de string matching.
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Conèixer, dissenyar i implementar algoritmes de cerca exhaustius.
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Subcompetences:
Comprendre, dissenyar i implementar algoritmes per explorar l'espai de cerca: Backtracking i Branch and Bound.
Analitzar els límits de la computació a través de l'estudi de la completesa computacional. C
Competències relacionades:
K3,
K4,
S7,
S8,
C6,
Subcompetences:
Comprendre el Teorema de Cook-Levin com a base per demostrar la NP-completesa de problemes.
Reconèixer i classificar diversos problemes NP-complets, explorant les seves dificultats i les possibles aproximacions algorítmiques per abordar-los.
Continguts
Introducció a estructures de dades en bioinformatica
Introducció a les estructures de dades clau i visió general de la seva aplicació en problemes bioinformàtics rellevants.
Algorismes sobre arbres
Estructura de dades per arbres. Arbres binaris de cerca. Arbres AVL.
Diccionaris
Implementacions bàsiques: taules and llistes. Implementacions advancades: taules de dispersió, arbores de cerca binaria
Cues de prioritat
Operacions amb cuas de prioritat. Implementació amb heaps. Heapsort.
Algorismes sobre strings
Algorisme exacte i aproximat de tipus string matching.
Algorismes bàsics de grafs
Representacions: Matriu d'adjacència, llista d'adjacència. Cerca en profunditat, cerca en amplada. Algorisme de Dijkstra i Bellman-Ford del cami més curt.
Algorismes sobre grafos avançats
Ordenació topològica, Arbres de recobriment mínim, Algorisme de Kruskal, Algorisme de Prim
Algorismes de cerca exhaustiva
Principis: espai de solucions, generació de subconjunts i permutacions. Backtracking i Branch and Bound.
Nocions d'intractabliitat
Classe P i NP. NP-completesa y reducabilitat.
Activitats
ActivitatActe avaluatiu
Introducció a les estructures de dades en la computació bioinformàtica
Les classes de teoria presenten els conceptes i tècniques fonamentals, que es treballen de manera pràctica a les sessions de problemes i laboratori mitjançant una col·lecció d'exercicis resolts en un jutge automàtic.
La teoria es desenvolupa en sessions setmanals de dues hores, mentre que les classes de laboratori i problemes es realitzen cada quinze dies, també amb una durada de dues hores cadascuna.
El curs es basa en la programació amb Python.
Mètode d'avaluació
EP = nota de l'examen parcial (entre 0 i 10)
EF = nota de l'examen final (entre 0 i 10)
AC= activitats d'avaluació continuada (problemes)
EJ= exercicis de programació en el jutge
NOTA = 10.0%AC + 10.0%EJ+ 35.0%EP + 45.0%EF
La nota de la reavaluació substitueix la nota del examen parcial i final.
MIT OpenCourseWare: it is a free publication of the materials of the courses of the Massachusets Institute of Technology (MIT) that shows most of the topics that are taught in MIT. Contains notes, exercises, solved exercises, exams and videos of classes. http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science
Es requereix que els estudiants tinguin una base en programació imperativa orientada a objectes, incloent-hi el pas de paràmetres, classes, objectes, mètodes, punters, memòria dinàmica, recursivitat i iteradors. També han de conèixer Python i tenir nocions bàsiques de càlcul d'eficiència d'algorismes, incloent la notació asimptòtica i l'anàlisi de cost en temps i espai.