Table Of ContentAlgoritmosyComplejidad
Algoritmos y Complejidad
ComplejidadComputacional
PabloR.Fillottrani
Depto.CienciaseIngenieríadelaComputación
UniversidadNacionaldelSur
PrimerCuatrimestre2017
AlgoritmosyComplejidad
Complejidad Computacional
Introducción
ClasesdeComplejidad
ClasesPyNP
ProblemaPvs.NP
Otrasclasesdecomplejidad
Algoritmosdeaproximación
AlgoritmosyComplejidad
Introducción
Objetivos
Objetivos
(cid:73) elconceptodecorrectituddeunalgoritmodebenosóloincluirel
hechodequeelalgoritmorealiceloespecificado,sinotambién
quelorealiceconlosrecursosdisponibles
(cid:73) losrecursosmáslimitadosenlaproduccióndesoftwareson:
(cid:73) eltiempodeejecución(medidoencantidadinstrucciones
elementales)
(cid:73) lamemoriaparaelalmacenamientodelosdatos(medidaen
generalencantidaddevariableselementales).
(cid:73) sedenominaaestasfuncionesmedidasdecomplejidad
AlgoritmosyComplejidad
Introducción
Objetivos
(cid:73) lasmedidasdecomplejidadinteresantesnopuedenserestáticas
(constantesparatodaslasinstancias),sinodinámicas(dependen
delainstanciaalacualseaplicaelalgoritmo)
(cid:73) peroentoncesnoseráfactibleestudiarlasparacadainstanciaen
particular;sedefinenparatodaslasinstanciasdeun
determinadotamaño,enelpeorcaso
(cid:73) elestudiodelaeficienciadelosalgoritmosnopuedeseratacado
porelargumento“lascomputadorasdelfuturoserán
increíblementerápidasyporlotantonointeresaráqueel
algoritmoseaeficiente”
(cid:73) elejemplodelosnúmerosdeFibonacci;oelhechodequesin
unamejoraalgorítmicaresolverelproblemadelviajantepara
cienciudadestomacienmillonesdeaños;olafactorizaciónde
unnúmerode300dígitosquetardaunmillóndeaños,refutan
estahipótesis
AlgoritmosyComplejidad
Introducción
Objetivos
(cid:73) pararesolverestosproblemassenecesitaunamejoraenlos
algoritmos;peronounapequeñamejorasinounamejoraen
órdenesdemagnitud
(cid:73) porejemplo,unabúsquedasecuencialenunarregloordenado
esdeΘ(n)enelpeorcaso;unabúsquedabinariaesde
Θ(logn).Parainstanciaspequeñasladiferenciapuedenoser
notable,peroparan=109 ladiferenciaestáentreesperarun
añoounminutoporelresultado
(cid:73) dadounalgoritmoqueresuelveunproblema,esrazonable(y
aconsejable)preguntarsesinoexistiráunalgoritmomáseficiente
paraelmismoproblema
(cid:73) elobjetivofundamentaldelaComplejidadComputacionales
clasificarlosproblemasdeacuerdoasutratabilidad,tomandoel
olosalgoritmosmáseficientespararesolverlos
AlgoritmosyComplejidad
Introducción
Objetivos
(cid:73) estoes,poderdeterminarlasrespestuasalassiguientes
preguntas:
¿Cuántratableeselproblema?
Sielproblemaestratable,¿eselalgoritmosuficientemente
eficiente?
(cid:73) sisedemuestraqueelproblemanoadmitesolucionesmejores,
entoncessepuedeafirmarqueelalgoritmoeseficiente(salvo
constantesocultas!!)
AlgoritmosyComplejidad
Introducción
Clasificacióndeproblemas
Clasificación de problemas
(cid:73) deacuerdoalestadodeconocimientodesusalgoritmos
(cid:73) cerrado
(cid:73) abierto
(cid:73) deacuerdoalosrecursosindispensablesparasusolución
(cid:73) tratables
(cid:73) intratables
AlgoritmosyComplejidad
Introducción
Clasificacióndeproblemas
(cid:73) unproblemasedicecerradosisehanencontradoalgoritmosque
loresuelvenysehademostradoqueesosalgoritmosson
óptimosencuantoalΘ()deltiempodeejecución
(cid:73) BÚSQUEDAenunarregloordenadoyORDENAMIENTOdeun
arreglosonproblemascerrados
(cid:73) ÁRBOLDECUBRIMIENTOMINIMALparaungrafoesun
problemaabierto,dadoquesucotainferiordemostradaesde
Θ(a),mientrasqueelmejoralgoritmoconocidonoeslineal
(peromejorqueΘ(alogn))
AlgoritmosyComplejidad
Introducción
Clasificacióndeproblemas
(cid:73) paracerrarunproblemasepuedehacer:
(cid:73) encontrarunalgoritmoasintóticamentemejorquelosquese
conocen.
(cid:73) demostarunacotaasintóticamentesuperiordelasquese
conocen.
AlgoritmosyComplejidad
Introducción
Clasificacióndeproblemas
(cid:73) engeneral,losdistintosgradosdetratabilidadsonmuysubjetivos
(varíanmuchodeacuerdoalmodelocomputacional,losrecursos
disponibles,lasvariantesdelasestructurasdedatos,etc.)
(cid:73) porlotantounobjetivoprimariodelestudiodelacomplejidades
definircuálesproblemassontratables,ycuálesno.Recién
despuésdeestosepuedenconsiderardistintosgradosde
tratabilidadointratabilidad
(cid:73) porejemplo,sepuedeafirmarquelamayoríadelosproblemas
vistosenlamateriasontratables:oseatienensoluciónpara
instanciasgrandes,yunamejoraalgorítmicaounamejoraenel
HWproduceunagranampliaciónenelconjuntodeinstancias
quesepuedenresolver
(cid:73) encambio,hayproblemasquenosontratables:elproblemade
lastorresdeHanoi,oelproblemadelviajante,enlaprácticasólo
seresuelvenparainstanciaspequeñas.
Description:cien ciudades toma cien millones de años; o la factorización de . por microsegundo, los algoritmos tardan n funcion. 10. 20. 50. 100. 300 n2.