You are on page 1of 46

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD

Escuela de Ciencias Bsicas, Tecnologa e Ingeniera


Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Actividad Grupal

Jos Ramn Valencia Cdigo: 16937012


Carlos Fernando Escalante Cdigo: 94476240
Luis Alberto Sanchez - Cdigo: 16.786.134
Carlos Arturo Cardona Orrego Cdigo: 18.415.051
Jhon Faber Patio Cdigo:

Tutor: Diego Fernando Medina


Grupo Colaborativo: 90169_18

Universidad Nacional Abierta y a Distancia UNAD.


Programa: Ingeniera Electrnica
Cead: Palmira- Valle- Colombia
Julio -2015

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

INTRODUCCION

En el presente informe se busca iniciar y facilitar el proceso de aprendizaje con


base en la identificacin de conocimientos previos sobre la temtica del curso;
reconocer a los compaeros de equipo de trabajo, al tutor y al director del curso.

Desde hace algunas dcadas algunas mentes brillantes han estudiado la IA


(inteligencia artificial) encaminando sus esfuerzos en crear sistemas cada vez ms
autnomos e inteligentes que realicen tareas que el cerebro humano no podra en
determinado tiempo. Pero el rgano ms poderoso de nuestro cuerpo, el cerebro,
es inigualable por las relaciones que existen entre las millones de neuronas que
interactan para realizar procesos complejos, que tal vez las maquinas nunca
lograran, aunque en un futuro tal vez lejano o no, podramos pensar en crear
sistemas con una inteligencia aproximada a la humana.

Uno de los objetivos de la IA es el diseo de Agentes Inteligentes que a travs de


sus percepciones del ambiente, tome las decisiones adecuadas y realice las
acciones correctas, es por esto que en esta actividad intentaremos disear, de
forma general, un Agente Inteligente capaz de dar pronsticos sobre La Edicin de
la Vuelta Ciclista de Espaa de acuerdo a informacin suministrada bajo este
entorno.

El grupo colaborativo entregar el desarrollo de una solucin que involucre el


anlisis y diseo. Durante el desarrollo cada participante tendr la oportunidad de
interactuar en el foro de trabajo colaborativo para resolver diferencias con los
compaeros de grupo.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

OBJETIVOS

Generales
Disear de forma general un agente inteligente sobre la Edicin de la vuelta
ciclista de Espaa.

Especficos
 Identificar los tipos de Agentes Inteligentes.
 Descubrir las ventajas y desventajas de la inteligencia artificial.
 Participar e interactuar constante en el foro del desarrollo de la actividad,
presentando respuesta a las preguntas solicitadas, debatiendo y
retroalimentando las respuestas de los compaeros de grupo, en pro de
enriquecer cada producto individual, teniendo como base el reconocimiento
de los entornos del curso, y lectura apropiacin del Syllabus del curso.
 Conocer a los integrantes del grupo colaborativo.
 Identificar los tipos de problemas computacionales y su complejidad

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

DESARROLLO DEL PROBLEMA


1.
Elaborar una lnea del tiempo teniendo en cuenta la historia y evolucin de
la inteligencia artificial
Ctesibio de alejandria -Construyo la primera maquina autocontrolada 250 aos a.C.
Un regulador de flujo de agua para medir el tiempo.
Aristoteles 300 - Fue el primero en describir de manera estructurada un conjunto de
reglas, silogismos que describen una parte del funcionamiento de la mente humana y
que, al seguirlas pas a paso, producen conclusin.
Ramon Llull 1315 aos d.C.
Presento la idea de que el razonamiento poda ser efectuado de manera artificial

El concepto de razonamiento 1500 aos d.C. - Es la faculta que permite resolver


problemas, extraer conclusiones y aprender de manera consciente de los hechos,
estableciendo conexiones causales y logicas necesarias entre ellos.

George Boole 1847 -Establecio la lgica proposicional (booleana), mejoro los


silogismos de Aristoteles, pero an algo poco potente.

Glottob Frege 1879 - Extiende la lgica booleana y obtiene la lgica de primer orden.

Lee de Forest 1903 - inventa el triodo tambien llamado bulbo o vlvula de vacio.
Cuando de forest invento el triodo su objetivo era el de descubrir un metodo para
amplificar las ondas y al mismo tiempo, controlar el volumen del sonido.
Leonardo Torres y Quevedo 1912 - Crea maquina de jugar ajedrez, con capacidad de
tomar decisiones.
Alang Turing 1937 - Articulo ''nmeros calculables'', introdujo el concepto maquina de
turing
Este articulo establecio las bases teoricas para todas las ciencias de computacin, y
que pueden considerarse el origen oficial de la infrmatica terica.

Alang Turing 1940 - Primer computador electromecnico.

Konrad Zuse 1941 - Primera computadora programable y lenguaje de programacin de


alto nivel plankalkul

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Warren McCulloch y Walter Pitts 1950 - Modelo de neurona del cerebro humano y
animal.
Presentaron su modelo de neuronas artificiales(representacin simblica de la
actividad cerebral), el cual se considera el primer trabajo del campo de inteligencia
artificial, aun cuando todava no exista el trmino.

Shannon 1950 - "Una mquina para jugar al ajedrez"


Artculo en que predeca que los computadores podrian jugar bien a este juego

Alan Turing 1950 - En este periodo se consolid el campo de la inteligencia artificial.


Con su artculo Computing Machinery and Intelligence, determinaria si una mquina
era inteligente o no, su famosa Prueba de Turing por lo que se le considera el padre
de la Inteligencia Artificial

William Shockley 1951 - Inventa el transistor de unin.


El invento hizo posible una nueva generacin de computadoras mucho ms rpidas y
pequeas.

"Inteligencia Artificial" 1956 - Verdadero surgir del trmino "inteligencia artificial".


En 1956 se dio el trmino "inteligencia artificial" en Dartmouth durante una
conferencia convocada por McCarthy.

Arthur L. samuel 1959 - Primer programa que aprenda a jugar a las damas.

(A.L.I.C.E.) 2000 - programa que se involucra en una conversacin con un ser


humano.
El programa Artificial Linguistic Internet Computer Entity (A.L.I.C.E.) gan el premio
Loebner al Chatbot mas humano en 2000, 2001 y 2004, y en 2007 el programa Ultra
Hal Assistant gan el premio.

sistemas inteligentes teraputicos 2009 - capaces de detectar emociones para


poder interactuar con nios autistas.
En el ao 2009 ya hay en desarrollo sistemas inteligentes teraputicos que permiten
detectar emociones para poder interactuar con nios autistas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

programa Suzette 2010 - Se trata de un bot de charla que ha ganado el premio


Loebner.
Se trata de un bot de charla que ha ganado el premio Loebner (bueno, lo ha ganado
su creador), no pudiendo distinguir el jurado si se trataba de un ser humano real o
una
mquina
quien
estaba
al
otro
lado.
Esta prueba se conoce como el test de Turing: un juez le pregunta a un ser humano
y a una mquina sobre una serie de cosas, por ejemplo, Para qu sirve un
martillo? y a travs de las respuestas debe intentar discernir quin es quien. Tras
20 minutos de preguntas, el juez se equivoc.
Tambin esta Cleverbot, que qued segundo lugar

Watson 2011 - IBM desarroll una supercomputadora llamada Watson jugando


Jeopardy.
En el ao 2011 IBM desarroll una supercomputadora llamada Watson , la cual
gan una ronda de tres juegos seguidos de Jeopardy, venciendo a sus dos mximos
campeones, y ganando un premio de 1 milln de dlares que IBM luego don a
obras de caridad.
Jeopardy! es un concurso de televisin estadounidense creado por Merv Griffin. El
concurso cuenta con preguntas de la trivia que abarcan numerosos temas,
incluyendo la historia, las idiomas, la literatura, la cultura popular, las bellas artes,
las ciencias, la geografa, y los deportes.

Diseo de un Agente Inteligente


Por definicin un agente inteligente es una entidad que percibe y acta sobre un
entorno, un agente es todo aquello que puede considerarse que percibe su
ambiente mediante sensores y que responde o acta en tal ambiente por medio de
efectores.
En este caso un agente de software, sus percepciones y acciones vienen a ser las
cadenas de bits codificados.

1.1 Definir qu tipo de agente inteligente crean para solucionar el


problema, describa las propiedades de los agentes que hace uso el
agente seleccionado.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Se debe utilizar un Agente Inteligente de Informacin de Reflejo Simple, el cual


podr procesar consultas, poseer capacidad de proceso y conocimiento del
entorno donde se mueve; adems, contener informacin de un dominio, en
este caso las Ediciones de la Vuelta Ciclista de Espaa. Este agente tambin
utilizara informacin de otros Agentes como base de conocimiento para tomar
las decisiones ms adecuadas.
Las propiedades de las que har uso el Agente Inteligente de Informacin son:
Autonoma: Actuar sin ningn tipo de intervencin humana directa, y tener
control sobre sus propios actos.
Sociabilidad: Comunicarse por medio de un lenguaje comn con otros
agentes, e incluso con los humanos.
Capacidad de reaccin: Percibir su entorno, y reaccionar para adaptarse a l.
Iniciativa: Emprender las acciones para resolver un problema.

La siguiente figura muestra un esquema generalizado de nuestro agente

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

2.2 Definir el problema del agente


Nuestro Agente inteligente debe percibir las entradas que han sido ingresadas al
sistema como los datos personales de los ciclistas, condicin fsica, kilmetros
recorridos, numero de etapas, puesto que ocupo en la clasificacin final; adems
debe percibir la informacin del equipo como la nacionalidad, el nombre del
director y las pruebas que ha participado.
De acuerdo a esta informacin suministrada por el entorno de la Vuelta Ciclista de
Espaa, debe analizarla junto con la informacin obtenida de otros agentes
inteligentes y tomar decisiones respecto a los pronsticos sobre la competencia,
tal vez sugiriendo sobre los posibles ganadores de la Vuelta Ciclista a Espaa.
El programa puede realizar tareas especficas para el usuario y posee un grado de
inteligencia suficiente para ejecutar parte de sus tareas de forma autnoma y para
interactuar con el entorno de forma til.
2.3 Disear el agente. Crear el PAMA (Percepciones, Acciones, Metas y
desempeo y Ambiente), con su respectiva explicacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

2.4 . De manera general describir que se debe tener en cuenta para implantar
el agente construido.

R/ Tal como el ejercicio es descrito el agente cuenta con tres fases la primera de
recoleccin de informacin permanente de los ciclistas, equipos, pruebas y
resultados principalmente y la segunda etapa la de pronsticos estadsticos
basados en la informacin recolectada de la primera fase de coleccin de
informacin. Y por ltimo la tercera fase de distribucin de resultados entre los
clientes finales que deben ser los fans y los medios de comunicacin interesados
en los pronsticos y la informacin tanto individual como de los equipos.
Desde el punto de vista prctico debe ser una pgina web que ofrezca resultados
para todo aquel que est interesado en verlos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

2.5.
Describa que tipo de pruebas le realizara el agente para probar su
correcto funcionamiento.
Para probar el correcto diseo y funcionamiento del software de nuestro agente,
se pueden implementar dos tipos de pruebas: Pruebas de Caja Blanca y Pruebas
de Caja negra. La primera se centra en los detalles procedimentales del software,
por lo que su diseo est fuertemente ligado al cdigo fuente y a la arquitectura
del software.

Pruebas de Caja Blanca

La segunda se llama prueba de Caja Negra, en la cual se pueden disear pruebas


que demuestren que cierta funcin del software est bien realizada, conociendo la
funcin especfica para la que fue diseado el agente. Esta prueba se limita a que
el tester juegue con datos entrada en el mdulo del agente y estudie como es el
resultado sin enfocar su atencin en cmo se realiza el proceso internamente; no
obstante, se enfocan en la interfaz de usuario, ficheros, canales de comunicacin,
etc. Las pruebas de Caja negra que se pueden aplicar a nuestro agente deben
apoyarse y basarse en las especificaciones de requerimientos y documentacin
funcional.

Pruebas de Caja Negra

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Existen varias pruebas enfocadas a las pruebas de caja blanca y/o caja negra.
Entre estas pruebas estn: Las pruebas de unidad, Pruebas de integracin,
pruebas de validacin o aceptacin y pruebas del sistema.
Las pruebas de Unidad se concentran en el esfuerzo de verificacin de la unidad
ms pequea del diseo del agente: el componente o modulo del agente.
Las pruebas de Integracin involucran varios mdulos y pueden ser de caja blanca
o caja negra. Las pruebas finales consideran todo el sistema, cubriendo
plenamente la especificacin de requisitos del usuario.
Las pruebas de Aceptacin son pruebas funcionales que realiza el cliente antes de
poner el agente en produccin para descubrir errores que solo puede detectar el
usuario final. Por ltimo, las Pruebas del Sistema buscan discrepancias entre el
programa del agente y el objetivo o requerimiento, enfocndose en los errores
cometidos durante la transicin del proceso al disear la especificacin funcional.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

3. COMPLEJIDAD DE LOS PROBLEMAS


3.1 . Eficiencia Algortmica Elaborado por Luis Sanchez

La Teora de la Complejidad Computacional es una rama de la teora de la


computacin que se centra en la clasificacin de los problemas computacionales
de acuerdo a su dificultad inherente, y en la relacin entre dichas clases de
complejidad.
Un problema se cataloga como "inherentemente difcil" si su
solucin requiere de una cantidad significativa de recursos computacionales, sin
importar el algoritmo utilizado. La teora de la complejidad computacional formaliza
dicha aseveracin, introduciendo modelos de cmputo matemticos para el
estudio de estos problemas y la cuantificacin de la cantidad de recursos
necesarios para resolverlos, como tiempo y memoria.

Uno de los fines de la teora de la complejidad computacional es determinar los


lmites prcticos de qu es lo que se puede hacer en una computadora y qu no.
Otros campos relacionados con la teora de la complejidad computacional son el
anlisis de algoritmos y la teora de la computabilidad. Una diferencia significativa
entre el anlisis de algoritmos y la teora de la complejidad computacional, es que
el primero se dedica a determinar la cantidad de recursos requeridos por un
algoritmo en particular para resolver un problema, mientras que la segunda,
analiza todos los posibles algoritmos que pudieran ser usados para resolver el
mismo problema. La teora de la complejidad computacional trata de clasificar los
problemas que pueden, o no pueden ser resueltos con una cantidad determinada
de recursos. A su vez, la imposicin de restricciones sobre estos recursos, es lo
que la distingue de la teora de la computabilidad, la cual se preocupa por qu tipo
de problemas pueden ser resueltos de manera algortmica.

En Ciencias de la Computacin, el trmino eficiencia algortmica es usado para


describir aquellas propiedades de los algoritmos que estn relacionadas con la
cantidad de recursos utilizados por el algoritmo. Un algoritmo debe ser analizado
para determinar el uso de los recursos que realiza. La eficiencia algortmica puede
ser vista como anloga a la ingeniera de productividad de un proceso repetitivo o
continuo. Con el objetivo de lograr una eficiencia mxima se quiere minimizar el
uso de recursos. Sin embargo, varias medidas (e.g. complejidad temporal,
complejidad espacial) no pueden ser comparadas directamente, luego, cual de dos
algoritmos es considerado ms eficiente, depende de cual medida de eficiencia se

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

est considerando como prioridad, e.g. la prioridad podra ser obtener la salida del
algoritmo lo ms rpido posible, o que minimice el uso de la memoria, o alguna
otra medida particular.
El anlisis de algoritmos es una parte importante de la Teora de complejidad
computacional ms amplia, que provee estimaciones tericas para los recursos
que necesita cualquier algoritmo que resuelva un problema computacional dado.
Estas estimaciones resultan ser bastante tiles en la bsqueda de algoritmos
eficientes. A la hora de realizar un anlisis terico de algoritmos es comn calcular
su complejidad en un sentido asinttico, es decir, para un tamao de entrada
suficientemente grande. La cota superior asinttica, y las notaciones omega (cota
inferior) y theta (caso promedio) se usan con esa finalidad. Por ejemplo, la
bsqueda binaria decimos que se ejecuta en una cantidad de pasos proporcional a
un logaritmo, en O(logno), coloquialmente "en tiempo logartmico".
La medida exacta (no asinttica) de la eficiencia a veces puede ser computada
pero para ello suele hacer falta aceptar supuestos acerca de la implementacin
concreta del algoritmo, llamada modelo de computacin. Un modelo de
computacin puede definirse en trminos de un ordenador abstracto, como la
Mquina de Turing, y/o postulando que ciertas operaciones se ejecutan en una
unidad de tiempo. Por ejemplo, si al conjunto ordenado al que aplicamos una
bsqueda binaria tiene 'n' elementos, y podemos garantizar que una nica
bsqueda binaria puede realizarse en un tiempo unitario, entonces se requieren
como mucho log2 N + 1 unidades de tiempo para devolver una respuesta
Conocimiento Previo. La importancia de la eficiencia con respecto a la
complejidad temporal fue enfatizada por Ada Lovelace en 1843 como resultado de
su trabajo con el motor analtico mecnico de Charles Babbage: "En casi todo
cmputo son posibles una gran variedad de configuraciones para la sucesin de
un proceso, y varias consideraciones pueden influir en la seleccin de estas segn
el propsito de un motor de clculos. Una objetivo esencial es escoger la
configuracin que tienda a minimizar el tiempo necesario para completar el
clculo."

Un algoritmo es considerado eficiente si su consumo de recursos est en la media


o por debajo de los niveles aceptables. Hablando a grandes rasgos, 'aceptable'
significa: que el algoritmo corre en un tiempo razonable en una computadora dada.
Desde 1950 hasta la actualidad las computadoras han tenido un avance
impresionante tanto en poder computacional como en la capacidad de memoria
disponible, lo que indica que los niveles aceptables de eficiencia en la actualidad

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

hubieran sido inadmisibles 10 aos atrs.


En la prctica existen otros factores que pueden afectar la eficiencia de un
algoritmo, tales como la necesidad de cierta precisin y/o veracidad. La forma en
que un algoritmo es implementado tambin puede tener un efecto de peso en su
eficiencia, muchos de los aspectos asociados a la implementacin se vinculan a
problemas de optimizacin.

Anlisis Terico. En el estudio terico de un algoritmo, lo normal es estimar su


complejidad de forma asinttica, i.e. usar notacin O grande para representar la
complejidad de un algoritmo como una funcin que depende del tamao de la
entrada n, esto es generalmente acertado cuando n es lo suficientemente grande,
pero para n pequeos podra ser errneo (e.g. bubble sort pude ser ms rpido
que quicksort cuando solo unos pocos valores deben ser ordenados). Algunos
ejemplos de notacin de O grande incluyen:

Notacin

Nombre

Ejemplos

constante

Determinar si un nmero es par o impar. Usar una tabla


de consulta que asocia constante/tamao. Usar
una funcin hash para obtener un elemento.

logartmico

Buscar un elemento especfico en un array utilizando


un rbol binario de bsqueda o un rbol de bsqueda
balanceado, as como todas las operaciones en
un Heap binomial.

lineal

Buscar un elemento especfico en una lista


desordenada o en un rbol degenerado (peor caso).

Ejecutar
una transformada
rpida
de
loglinear
o
Fourier; heapsort, quicksort (caso peor y promedio),
quasilinear
o merge sort
cuadrtico

Multiplicar dos nmeros de n dgitos por un algoritmo


simple. bubble sort (caso peor o implementacin
sencilla), Shell sort, quicksort (caso peor).

exponencial

Encontrar la solucin exacta al problema del


viajante utilizando programacin dinmica. Determinar si
dos sentencias lgicas son equivalentes utilizando
una bsqueda por fuerza bruta

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Benchmarking: midiendo la eficiencia.


Benchmarks (desc. estndar de
comparacin, cota de referencia, punto de referencia, conjunto de procedimientos
para avaluar el rendimiento de un ordenador) son usados para realizar
comparaciones entre programas en competencia o para probar versiones nuevas
de software que se quiera liberar, y sirve como indicador relativo para medir la
eficiencia de un algoritmo. Si un nuevo algoritmo de ordenacin es implementado,
por ejemplo puede ser comparado con su predecesor para asegurar su eficiencia
al menos con los datos conocidos o recopilados por este ltimo, teniendo en
cuenta claro las mejoras funcionales del nuevo algoritmo.
Detalles de implementacin. Los detalles de implementacin tambin tienen un
efecto sobre la eficiencia, como la eleccin de un lenguaje de programacin, o la
forma en que el algoritmo est actualmente implementado, o la eleccin de un
compilador para un lenguaje particular, incluso el sistema operativo que se est
usando. En algunos casos un lenguaje interpretado pudiera ser mucho ms lento
que uno compilado.
Algunos procesadores tienen la capacidad de procesado vectorial, lo que permite
que una instruccin se capaz de operar sobre varios datos; puede ser fcil o no
para un programador o un compilador usar estas herramientas. Los algoritmos
diseados para ser procesados de forma secuencial necesitaran ser
completamente rediseados para hacer uso del procesamiento en paralelo.
Medidas del uso de recursos. Las medidas de eficiencia son normalmente
expresadas en funcin del tamao de la entrada n. Las dos medidas ms
comunes son:
Complejidad temporal: cuanto se demora un algoritmo en terminar.
Complejidad espacial: cuanta memoria operativa (RAM usualmente) es
requerida por el algoritmo. Esto tiene dos apartados, la cantidad de
memoria que necesita el cdigo y la cantidad que necesitan los datos sobre
los que opera el algoritmo.
Para computadoras cuya energa es por batera (e.g. laptops), o para grandes
clculos (e.g. supercomputadoras) otras medidas tambin son de inters:

Consumo directo de energa: energa requerida por la computadora.


Consumo indirecto de energa: energa requerida para el enfriamiento, la
iluminacin, etc.
En algunos casos otras medidas podran ser relevantes:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Capacidad de transmisin: el ancho de banda puede llegar a ser un factor


limitante. La compresin de datos es utilizada para reducir la cantidad de datos a
transmitir.
Espacio externo: cantidad de espacio requerido en disco o algn otro dispositivo
externo; esto podra ser solo una necesidad temporal, o sea solo se requiere dicho
espacio mientras est corriendo e algoritmo o podra ser una necesidad a largo
plazo para futuras referencias.
Tiempo de respuesta: Esto es particularmente relevante en tiempo real para una
aplicacin cuando el sistema de la computadora debe responder de forma rpida a
los eventos externos.
Complejidad temporal
Teora. Para analizar un algoritmo generalmente se usa la complejidad temporal
para obtener un estimado del tiempo de ejecucin expresado en funcin del
tamao de la entrada. El resultado es tpicamente expresado en notacin O
grande. Esto suele ser til para comparar algoritmos, especialmente cuando se
necesita procesar una gran cantidad de datos. Estimaciones ms detallas se
requieren para comparar algoritmos que procesan pequeas cantidades de datos
(de todas formas en estos casos el tiempo no debera ser un problema).
Algoritmos implementados para usar procesamiento paralelo de los datos son
mucho ms difciles de analizar.
En la prctica. Se utilizan benchmarks para medir el uso de un algoritmo. Muchos
lenguajes de programacin presentan funciones para medir el tiempo de uso del
procesador. En casos de algoritmos que se ejecutan en un tiempo
considerablemente largo, dicho tiempo pudiera resultar de inters. El resultado es
generalmente un promedio de los resultados de varias pruebas consecutivas
aplicadas sobre el objetivo. Este tipo de pruebas son altamente sensibles a
configuraciones de hardware y existe la posibilidad de que otros programas se
estn ejecutando al mismo tiempo en un ambiente capaz de procesar varias
tareas a la vez. Dichas pruebas tambin dependen intrnsecamente del lenguaje
de programacin, el compilador y las opciones del compilador, lo que implica que
dos algoritmos que se comparan debern estar implementados bajo las mismas
condiciones.

Complejidad espacial. Esta seccin se enfoca en el uso de memoria (usualmente


RAM) por los algoritmos mientras son ejecutados. As como la complejidad
temporal, explicado anteriormente, parte del anlisis de un algoritmo se hace va la
complejidad espacial para obtener un estimado del uso de memoria principal

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

expresado mediante una funcin segn el tamao de la entrada. El resultado es


expresado usualmente en notacin O grande.

Existen 4 aspectos relevantes a considerar:


La cantidad de memoria requerida por el cdigo del algoritmo.
La cantidad de memoria requerida para almacenar los datos de entrada.
La cantidad de memoria requerida para los datos de salida (algoritmos
como los de ordenacin suelen reorganizar los datos de entrada y por ello
no necesitan memoria extra para la salida).
La cantidad de memoria requerida en cuanto a espacio de trabajo del
algoritmo para realizar los clculos y asignaciones (tanto para variables
como cualquier espacio necesario en la pila para almacenar llamadas a
subrutinas, este espacio es particularmente significativo para algoritmos
que utilizan tcnicas recursivas).

Memoria Cach (usualmente RAM-esttica): esta pera a una velocidad


comparable a la del CPU.

Memoria fsica principal (usualmente RAM-dinmica): esta pera un tanto


ms lenta que el CPU.

Memoria virtual (usualmente en disco): esta da la impresin de una gran cantidad


de memoria utilizable y opera en el orden de los miles ms lenta que el CPU.
Un algoritmo cuyas necesidades pueden ser satisfechas con la memoria cach
ser mucho ms rpido que uno que necesite de la memoria principal y en
consecuencia mucho ms rpido que uno que necesita recurrir a la memoria
virtual. Si se quiere profundizar an ms dicho problema, existen sistemas que
tienen hasta tres niveles de memoria cach, con diferentes y variadas velocidades.
Sistemas diferentes tendrn diferentes cantidades asignadas a los tipos de
memoria comentados, lo que conlleva a que las necesidades de memoria de un
algoritmo varen significativamente entre un sistema y otro. En los das veteranos
de las computadoras electrnicas si un algoritmo requera ms memoria que la
brindada por la memoria principal, dicho algoritmo no poda ser utilizado. En
nuestros das la memoria virtual resuelve dichos problemas, bajo un costo de
eficiencia. Un algoritmo que se suple solo de la memoria cach presenta
excelentes resultados en cuanto a velocidad, en estos casos la optimizacin del
espacio repercute de forma relevante en la optimizacin del tiempo.
Ejemplos de Algoritmos eficientes

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

quicksort El primer algoritmo de ordenacin con un orden de O(n\log n)\,.


heapsort Otro algoritmo de rpida ejecucin.
Bsqueda binaria Bsqueda en una tabla ordenada
Algoritmo de Boyer-Moore para bsqueda de cadenas Buscar una cadena
dentro de otra.

Debido al hecho de que los ordenadores de hoy en da tienen grandes cantidades


de memoria (tanto internos como secundarias), este curso ser principalmente
preocupados con los requisitos de tiempo. En la mayora de los casos, las
diferencias en los requisitos de espacio de la mayora de los algoritmos es
insignificante.
Medicin Requisitos Tiempo de un algorithmo
Cmo se determina los requisitos de tiempo de dos algoritmos?
Opcin 1: Escribir y Ejecutar un Programa - Una manera obvia de probar la
velocidad de dos algoritmos diferentes sera escribir dos programas y luego
ejecutar estos programas con algn tipo de dispositivo de tiempo. Aunque esto
puede ser una buena indicacin de que el algoritmo es ms rpido (vamos a
menudo hacer esto), hay al menos cuatro problemas con este enfoque que
necesitan ser considerados.
Overhead: La implementacin real del algoritmo en un programa puede requerir
algn tipo de gastos generales de programacin que pueden influir en la velocidad
aparente del algoritmo real.
Codificacin: La velocidad del algoritmo podra verse afectada por la codificacin
real del programa y / o el lenguaje de programacin utilizado. La diferencia podra
ser simplemente el resultado de una mejor programacin o el idioma.
El Ordenador: La velocidad del programa podra estar influenciado por el equipo
que ejecuta el programa y cmo se ejecuta conjuntos particulares de
declaraciones.
Los datos: Los datos de prueba reales puede tener una gran influencia en la
eficiencia de un programa. Este es probablemente el problema ms importante y
el ms difcil de superar (no se puede probar todos los posibles conjuntos de
datos).
Opcin 2: Anlisis matemtico - Un enfoque ms fiable para el anlisis de la
eficiencia de los algoritmos es medir matemticamente la velocidad del algoritmo
en trminos de "uints tiempo".

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Los diferentes tipos de operaciones o estados pueden requerir diferentes unidades


de tiempo. Algunas unidades de tiempo comunes que a menudo son considerados
incluyen:
comparaciones (ms comn)
asignaciones (al lado ms comn)
Operaciones de E / S
operaciones numricas (es decir, adiciones, sustracciones, multiplicaciones,
...)
Por lo tanto, nuestra medida primaria de eficacia algoritmo ser un anlisis
matemtico del nmero de comparaciones y / o asignaciones requeridas por el
algoritmo para completar su tarea. En la mayora de los casos, solo se utilizarn
comparaciones debido a que una comparacin (es decir, la decisin) es mucho
ms costoso (en trminos de tiempo) que una asignacin o clculo.
Peor - Caso, Mejor - Caso y Caso promedio:
Con algunos algoritmos, la eficiencia de la velocidad es una funcin de la cantidad
de datos pero independiente de los datos reales. Por ejemplo, la bsqueda de la
suma de los valores de una matriz de nmeros enteros.
Con otros algoritmos, la eficiencia de velocidad no slo se ve afectada por la
cantidad de datos, pero tambin por el propio datos real. Por ejemplo, buscar una
matriz de objetos para un artculo con un valor particular en algn campo clave. Lo
que usted est buscando puede ser el primer punto marcado (que slo requiere un
cheque), o puede ser que no puede encontrar en todo (que requieren el mximo
nmero de cheques).
En estos casos, es importante tener en cuenta:
peor de los casos: La situacin que requerira la mayor cantidad de
procesamiento.
mejor de los casos: La situacin que requerira la menor cantidad de
procesamiento.
promedio de los casos: La cantidad promedio de procesamiento requerido.
Esta opcin es la ms difcil de calcular, ya que debe tener en cuenta las
probabilidades de todos los casos posibles y la cantidad de procesamiento
requerido para cada caso.
En estas situaciones, la aplicacin de un algoritmo particular sera determinada
por el cual extrema es ms probable para el algoritmo particular.
Ejemplos: Bsquedas secuenciales y binarios de una matriz de n artculos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Bsqueda secuencial - Supongamos que los datos de la matriz es en ningn orden


en particular.
peor de los casos: no encontrado o la bsqueda del elemento que se
encuentra en la ltima posicin. f ( n) = n
mejor de los casos: Se encuentra en la primera posicin. f ( n) = 1
caso promedio: Suponiendo que la probabilidad de que el artculo se
encuentra en cualquier posicin es igualmente probable, f ( n) = 1 / n + 2 / n
+ 3 / n + + n / n = (1 + 2 + 3 + + n) / n = (n + 1) / 2
Ordenado Bsqueda secuencial - Requiere la condicin previa de que los datos de
la matriz se ordena por el campo de clave que se utilizar para la bsqueda. Esta
sobrecarga adicional afectar a la eficacia de la bsqueda, pero por ahora no ser
considerado.

peor de los casos: Busca el elemento que es mayor o igual que el artculo
en la ltima posicin. f ( n) = n
mejor de los casos: Busca el elemento que es menor o igual al elemento de
la primera posicin. f ( n) = 1
caso promedio: --- no pueden, en general, se determinar ---

Binary Search - Requiere la condicin previa de que los datos de la matriz se


ordena por el campo de clave que se utilizar para la bsqueda. Esta sobrecarga
adicional afectar a la eficacia de la bsqueda, pero por ahora no ser
considerado

peor de los casos: no encontrado o la bsqueda del elemento que sera el


ltimo comprobado antes de determinar que no est en la matriz. f ( n) =
log2N (ver ms abajo para la obtencin de este resultado)
mejor de los casos: Se encuentra en la posicin n / 2 (el primer valor
marcada). f ( n) = 1
caso promedio: --- no pueden, en general, se determinar ---

Determinar el clculo del peor caso para la bsqueda binaria ...


La bsqueda binaria comienza por mirar el elemento medio en la matriz (en la
posicin n / 2). Esto da lugar a tres posibilidades:
Este es el artculo que usted est buscando, en cuyo caso est ahora terminado.
Pero esto no sera el peor de los casos, por lo tanto, vamos a ignorar esta
posibilidad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

El artculo que usted est buscando es inferior (es decir, viene antes) el elemento
central. Por lo tanto, se puede tirar a la basura el elemento central y la segunda
mitad de la lista y buscar en la primera mitad de la lista por el mismo proceso. Esto
se traduce en la bsqueda de en medio de n / 2 artculos.
El artculo que usted est buscando es mayor que (es decir, viene despus) el
elemento central. Por lo tanto, se puede tirar a la basura el elemento central y la
primera mitad de la lista y buscar en la segunda mitad de la lista por el mismo
proceso. Esto se traduce en la bsqueda de en medio de n / 2 artculos.
As que la cuestin se reduce a, "Cuntas veces puede byc producirse antes de
ejecutar fuera de los datos a tener en cuenta?"
Los primeros resultados de la comparacin de n / 2 artculos sobrantes.
Los resultados de comparacin en segundo (n / 2) / 2 = n / (22) artculos
sobrantes.
Los resultados tercio de comparacin en ((n / 2) / 2) / 2 = n / (23) artculos
sobrantes.
Los resultados del cuarto de comparacin en n / (24) artculos sobrantes.
etc ........
Finalmente, los resultados de la comparacin de orden k en n / (2k) artculos
sobrantes. Si estos resultados en un artculo dejaron entonces slo una
comprobacin ms necesita ser hecho.
Por lo tanto, se necesitan aproximadamente comparaciones k para buscar en la
matriz. Despus comparaciones k, habra slo 1 artculo sobra. Por lo tanto ...
n / (2k) = 1
2k = n
k = log2N

Desde log2N es menor que n, podemos concluir que una bsqueda binaria es ms
eficiente que una bsqueda lineal (en el peor caso posible).

3.2. PROBLEMAS INTRATABLES: Los NP-Difciles


Elaborado por Jos Ramn Valencia
Supn que tu jefe te pide que escribas un algoritmo eficiente para un problema
extremadamente importante para tu empresa. Despus de horas de romperte la
cabeza solo se te ocurre un algoritmo de fuerza bruta, que analizndolo ves que
cuesta tiempo exponencial. Te encuentras en una situacin muy embarazosa: No
puedo encontrar un algoritmo eficiente, me temo que no estoy a la altura .Te
gustara poder decir No puedo encontrar un algoritmo eficiente porque no existe
Eso es decir que el problema es intratable.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

En realidad es muy poco frecuente poder decir algo tan tajante, para la mayora
de los problemas, es muy difcil demostrar que son intratables, pero la teora de
los NP-completos te puede ayudar a no perder tu trabajo diciendo:

No puedo encontrar un algoritmo eficiente pero tampoco pueden ninguno


de estos informticos famosos
La teora de los NP-completos es muy til para disear algoritmos, aunque solo de
resultados negativos.
Permite al diseador centrar sus esfuerzos ms
productivamente, no darse de cabezazos contra la pared. Si no conseguimos
demostrar que un problema es difcil o intratable, entonces hay que centrarse en
encontrar un algoritmo eficiente.
La teora de los NP-completos nos permite identificar que propiedades hacen un
problema difcil. Tener una intuicin de que problemas van a ser intratables es
importante para un diseador, y solo se consigue con experiencia demostrando
intratabilidad.
El concepto fundamental es el de reduccin entre un par de problemas, que
permite compararlos.

Si A es reducible a B y tenemos un algoritmo eficiente para B entonces


tenemos un algoritmo eficiente para A.
Si A es reducible a B y no existe un algoritmo eficiente para A entonces no
existe un algoritmo eficiente para B
AB

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Reduccin Sencilla para Intratabilidad


Queremos demostrar que algunos problemas son intratables, es decir, que no
tienen algoritmos eficientes Partimos de que Ciclo Hamiltoniano y Cobertura de
Vrtices son intratables.

Si Ciclo Hamiltoniano es reducible a B entonces B es intratable.

Si Cobertura de Vrtices es reducible a B entonces B es intratable

Reduccin de ciclo Hamiltoniano


CicloHam B

Transformamos la entrada de Ciclo Hamiltoniano en entrada de B.

La solucin de B nos da la solucion para Ciclo Hamiltoniano

Como Ciclo Hamiltoniano es intratable entonces B es intratable

Ejemplo de Problema Intratable


Imagnate que eres es un actor muy cotizado, que tienes ofertas para protagonizar
n pelculas En cada oferta viene especificado en el primer y ltimo da de rodaje.
Para aceptar el trabajo, debes comprometerte a estar disponible durante todo este
periodo entero, por lo tanto no puedes aceptar simultneamente dos papeles
cuyos intervalos se superpongan.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Para un artista como t, los criterios para aceptar un trabajo son claros: quieres
ganar tanto dinero como sea posible. Debido a que cada una de estas pelculas
paga la misma tarifa por pelcula, esto implica que buscas la mayor cantidad
posible de puestos de trabajo (intervalos) de tal manera que dos cualesquiera de
ellos no estn en conflicto entre s.
T (o tu agente) debes resolver el siguiente problema de algoritmia:

Problema: Planificacin de pelculas

Entrada: Un conjunto I de n intervalos, k N

Salida: Cul es el mayor conjunto de intervalos de I que dos a dos sean


disjuntos? o qu pelculas puedo hacer ganando la mayor cantidad de
dinero?

No es muy difcil encontrar un algoritmo eficiente.

Pero vamos a considerar otro problema ms difcil.

Ms difcil: un proyecto de pelcula no tiene por qu rodarse en un solo intervalo,


puede tener un calendario discontinuo

Por ejemplo Tarzn de la jungla se rodara en Enero-Marzo y Mayo-Junio,


Terminator se rodar en Abril y en Agosto, Babe se rodar en JunioJulio

El mismo actor puede rodar Tarzn de la jungla y Terminator pero no


Tarzn de la jungla y Babe

Vamos a ver que la versin decisional es intratable

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

 Problema: Planificacin general de pelculas Entrada: Un conjunto I


de n conjuntos de intervalos, k N Salida: Existen k conjuntos de
intervalos de I que dos a dos sean disjuntos?
 Necesitamos hacer una reduccin desde otro problema que
sepamos intratable
 Vamos a intentarlo desde Conjunto Independiente En que se
parecen los dos problemas?

Los dos pretenden seleccionar el subconjunto ms grande


posible de vrtices y de pelculas.

Intentemos traducir los vrtices en pelculas

Intentemos traducir vrtices con una arista en pelculas


incompatibles

Conjunto Independiente(G, k)

m =nmero de aristas de G
n =nmero de vrtices de G
I=
for j = 1 to n 5
pelicula(j) =
I = anadir(I, pelicula(j))
for la isima arista de G (x, y), 1 i m
pelicula(x) = anadir(pelicula(x), [i, i + 0,5])
pelicula(y) = anadir(pelicula(y), [i, i + 0,5])
Resultado GralPlanifPeliculas(I, k).

Cada arista se traduce en un intervalo

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Cada vrtice es una pelcula que contiene los intervalos de las aristas
desde ese vrtice

Dos vrtices unidos por una arista (prohibido en el Conjunto Independiente)


definen un par de pelculas que comparten un intervalo (prohibido en el
calendario del actor) y viceversa

Los mayores subconjuntos que satisfacen los dos problemas son los
mismos

Tenemos una reduccin, un algoritmo eficiente para el problema Gral. de


planificacin de pelculas nos da un algoritmo eficiente para Conjunto
Independiente

Como Conjunto Independiente es intratable, problema Gral. de


planificacin de pelculas es intratable

3.3 Complejidad Problemas NP


Problemas de decisin que tienen un algoritmo de tiempo Polinomial en una
maquina no determinista que los acota.
Un problema de decisin pertenece a la clase P (Polinomial) si existe un algoritmo
polinomial para resolverlo.
Un problema de decisin pertenece a la clase NP (polinomial nodeterministamente) si dada una instancia de SI y evidencia de la misma, puede ser
verificada en tiempo polinomial.
Relaciones entre las clases:
Problema abierto: Es P = NP? (problema abierto ms importante de teora de la
computacin)
Ejemplo de problemas NP:

Suma de enteros
Multiplicacin de enteros
rbol generador mnimo
Clique mxima
Camino mnimo entre un par de nodos
Problema del viajante de comercio
Conjunto independiente de cardinal mximo

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Problema de satisfabilidad (SAT): Dado un conjunto de clusulas C1,aa,Cm


formadas por literales basados en las variables booleanas X = {x1,a.,xn},
determinar si hay una asignacin de valores de verdad a las variables de X tal que
la expresin C1 ^ C2 ^a. ^ Cm sea verdadera.
Clase NP - Otra caracterizacin
Un problema de decisin est en la clase NP si las instancias de SI son
reconocidas por una mquina de Turing no-determinstica polinomial.
La clase NP se puede definir como el conjunto de problemas de decisin que se
pueden resolver por un algoritmo polinomial no-determinstico.
Lema: Si es un problema de decisin que pertenece a la clase NP, Entonces
puede ser resuelto por un algoritmo determinstico en tiempo exponencial respecto
del tamao de la entrada.

3.4 PROBLEMAS DEMOSTRABLEMENTE IRRESOLUBLES

Estos se dividen en recursivamente irresolubles y recursivamente resolubles.


3.4.1- Recursivamente irresoluble: Un ejemplo claro es;
PROBLEMA DE LA DETENCIN DE LA MT
Problema de la parada o problema de la detencin. Este famoso problema (halting
problem, en ingls), considerado por el propio Turing, consiste en preguntar si
existe un algoritmo para el siguiente problema de decisin: Dada una MT M
cualquiera, sobre el alfabeto de cinta , y una cadena w , se detiene M al
procesar la entrada w? El problema universal se puede reducir al problema de la
parada. En otros trminos, asumiendo la existencia de una MT M que resuelva el
problema.
De la parada se puede resolver el problema universal. La grfica siguiente esboza
el razonamiento.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Sea M0w una entrada arbitraria (M y w codifican MT y cadenas sobre ,


respectivamente). La mquina M0 solamente devuelve la entrada M0w, ya que las
entradas para el problema universal y para el problema de la parada coinciden.
Puesto que M es capaz de decidir si M se detiene o no con entrada w, se tendra:
Si M no se detiene con entrada w = M no acepta a w.
Si M se detiene con entrada w = M procesa w y decide si la acepta o no.
Conclusin: si el problema de la parada fuera decididle, tambin lo sera el
problema universal.
Lo anterior tambin permite concluir que el lenguaje Lp = {M0w : M se detiene con
entrada w} no es recursivo.

3.4.2- Recursivamente Resolubles

Esta clase de problema se puede resolver mediante la aplicacin de tcnicas


sencillas pero ingeniosas y cuyos algoritmos son los que usa una sencillos. Cabe
precisar que estn divididos en Soluciones aproximadas iterativas y
probabilsticas.
Las caractersticas de la recursividad son:
-La recursividad es una caracterstica de los lenguajes de programacin que
permite que un subprograma se invoque a s mismo.
- La recursividad es til para resolver problemas definibles en sus propios
trminos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

- La recursividad es, en cierta medida, anloga al principio de induccin.


- No existen problemas intrnsecamente recursivos o iterativos; cualquier proceso
iterativo puede expresarse de forma recursiva y viceversa.
- La recursividad aunque da lugar a algoritmos ms simples y compactos resulta
ms lenta y consume ms recursos al ejecutarse sobre el ordenador.
- Para desarrollar algoritmos recursivos hay que partir del supuesto de que ya
existe un algoritmo que resuelve una versin ms sencilla del problema. A partir
de esta suposicin debe hacerse lo siguiente:
1. Identificar Subproblemas atmicos de resolucin inmediata (casos base).
2. Descomponer el problema en Subproblemas resolubles mediante el algoritmo
pre-existente; la solucin de estos Subproblemas debe aproximarnos a los casos
base.
3. Probar de manera informal que tanto los casos base como los generales
pueden solucionarse con el algoritmo desarrollado.
Un ejemplo sencillo es el clculo de la factorial de un nmero:
Factorial de un nmero, n!
Algoritmo pre-existente: (n-1)! Caso base: 0! = 1!
Subproblemas resolubles mediante el algoritmo pre-existente y que aproximen al
caso base: n! = n (n-1)!
Prueba informal: Conociendo las dos expresiones anteriores es posible calcular 0!,
1!, 4!, etc.

3.4.2.1- Lgica de Modelos probabilsticos.

Muchos analistas tratan de describir y predecir el comportamiento de los


consumidores usando variables observables regresin, arboles de decisin, etc.
En esta primera parte consideraremos el comportamiento como si fuera aleatorio
Enfoque alternativo: decisiones racionales.
Buscamos modelos que nos permitan tomar decisiones.
Que nos permitan explicar elementos identificables del comportamiento del
consumidor (contar una historia)
Que nos permitan hacer inferencia a nivel del individuo (o al menos al nivel
de grupos de individuos).

USO:
Entender patrones de comportamiento a nivel desagregado.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Hacer predicciones de comportamiento ms all de los datos que observamos.


Generar benchmarks para la evaluacin de estrategias comerciales.

METODOLOGA
1) Determinar el problema de decisin de marketing y la informacin
requerida.
2) Identificar el comportamiento observable de inters a nivel individual
(tpicamente denotamos esto como x).
3) Seleccionar una distribucin de probabilidad que caracterice este
comportamiento a nivel individual. Tpicamente denotamos esto como f
(x|). Consideramos los parmetros de esta distribucin como
caractersticas latentes de nivel individual.
4) Especificar una distribucin para caracterizar la distribucin de las
caractersticas latentes en la poblacin. Tpicamente denotamos esto por
g() y le llamamos la distribucin de mezcla (o modelo de heterogeneidad).
5) Derivar la distribucin agregada o distribucin observable de del
comportamiento de inters. = |
6) Estimar los parmetros (de la distribucin de mezcla) ajustando la
distribucin agregada a los datos que observamos.
7) Usar los resultados de los modelos para resolver el problema de marketing
planteado.

MODELOS A CONSIDERAR

Modelo de duracin en tiempo discreto Ejemplo Proyeccin de tasas


de retencin de clientes:
Adquirimos un cliente: Por cuantos periodos va a este cliente a estar
afiliado a la compaa?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Un usuario baja una aplicacin para el i-phone. Por cuantos periodos la


va a usar? Adquirimos un cliente en un banco. Por cuantos periodos
permanecer con el banco?
Un cliente compra un telfono / plan de internet / consola de video juegos /
sistema operativo. Por cuantos periodos lo va a usar?
-

Modelo de duracin en tiempo continuo Ejemplo Prediccin de


adopcin de nuevos productos

Modelo de conteo Ejemplo Estimacin de exposicin publicitaria.

Modelo de eleccin Ejemplo Respuesta a campaa de marketing


directo.

Problemas P y NP Completos Elaborado por John Faber Patio


La relacin entre las clases de complejidad P y NP es una pregunta que an no se
ha podido responder por la teora de la complejidad computacional. En esencia, la
pregunta es P = NP ? significa: si es posible "verificar" rpidamente soluciones
positivas a un problema del tipo SI/NO (donde "rpidamente" significa "en tiempo
polinmico"), es que entonces tambin se pueden "obtener" las respuestas
rpidamente?

Los recursos comnmente estudiados en complejidad computacional son:

El tiempo: mediante una aproximacin al nmero de pasos de


ejecucin que un algoritmo emplea para resolver un problema.

El espacio: mediante una aproximacin a la cantidad de memoria


utilizada para resolver el problema.

Los problemas se clasifican en conjuntos o clases de complejidad (L, NL, P,


PCompleto, NP, NP-Completo, NP Duro...)
EJEMPLO

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Consideremos, por ejemplo, el Problema de la suma de subconjuntos, que es un


ejemplo de un problema fcil de verificar, pero cuya respuesta se cree (pero no ha
sido demostrado) es difcil de calcular/hallar. Dado un conjunto de nmeros
enteros, existe un subconjunto no vaco de ellos donde la suma de sus
elementos es igual a 0? por ejemplo, existe un subconjunto del conjunto {2, 3,
15, 14, 7, 10} tal que la suma de sus elementos sea 0?

La respuesta es SI, si bien puede llevar algn tiempo encontrar un subconjunto


que satisface el requerimiento, segn cual sea el tamao del conjunto y
subconjunto. Por otra parte, si alguien afirma que la respuesta es: s, porque la
suma de {2, 3, 10, 15} es igual a cero, entonces lo podemos comprobar en
forma muy rpida y mediante unas pocas cuentas. Verificar que la suma del
subconjunto es cero es un proceso mucho ms rpido que encontrar el
subconjunto.

La

informacin

necesaria

para

verificar

un

resultado

positivo/afirmativo es llamada un certificado. Por lo que podemos concluir que


dado los certificados apropiados, es posible verificar rpidamente las respuestas
afirmativas de nuestro problema (en tiempo polinomial) y es sta la razn por la
que el problema se encuentra en NP. Una respuesta a la pregunta P = NP sera
determinar si en problemas del tipo SUMA-SUBCONJUNTO es tan fcil hallar la
solucin como verificarla. Si se encuentra que P no es igual a NP, ello significa
que algunos problemas NP seran significativamente ms difciles de hallar su
solucin que verificar la misma. La respuesta sera aplicable a todo este tipo de
problemas, no solo al ejemplo especfico de SUMA-SUBCONJUNTO.

La restriccin a problemas de tipo SI/NO realmente no es importante; an si se


permiten respuestas ms complicadas, el problema resultante resulta equivalente
(o sea si FP = FNP).

Contexto del problema


La relacin entre las clases de complejidad P y NP es estudiada por la teora de la
complejidad computacional, la parte de la teora de la computacin que trata de los

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

recursos requeridos durante el clculo para resolver un problema dado. Los


recursos ms usuales son tiempo (cuntos pasos son necesarios para resolver
un problema?) y espacio (cunta memoria es necesaria para resolver un
problema?).

En este tipo de anlisis, se requiere un modelo de la computadora para la que


desea estudiar el requerimiento en trminos de tiempo. Tpicamente, dichos
modelos suponen que la computadora es determinista (dado el estado actual de la
computadora y las variables de entrada, existe una nica accin posible que la
computadora puede tomar) y secuencial (realiza las acciones una despus de la
otra). Estas suposiciones son adecuadas para representar el comportamiento de
todas las computadoras existentes, an incluye a las mquinas con computacin
en paralelo.

En esta teora, la clase P consiste de todos aquellos problemas de decisin que


pueden ser resueltos en una mquina determinista secuencial en un perodo de
tiempo polinomial en proporcin a los datos de entrada. En la teora de
complejidad computacional, la clase P es una de las ms importantes; la clase NP
consiste

de

todos

aquellos

problemas

de

decisin

cuyas

soluciones

positivas/afirmativas pueden ser verificadas en tiempo polinmico a partir de ser


alimentadas con la informacin apropiada, o en forma equivalente, cuya solucin
puede ser hallada en tiempo polinmico en una mquina no determinista. Por lo
tanto, la principal pregunta an sin respuesta en la teora de la computacin est
referida a la relacin entre estas dos clases:

Es P igual a NP?

En una encuesta realizada en el 2002 entre 100

investigadores, 61 crean que la respuesta era NO, 9 crean que la respuesta era
SI, 22 no estaban seguros, y 8 crean que la pregunta poda ser independiente de
los axiomas actualmente aceptados, y por lo tanto imposible de demostrar por el
SI o por el NO2.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Definiciones formales
Ms precisamente, un problema de decisin es un problema que especifica una
cadena de caracteres de datos de entrada y requiere como solucin una respuesta
por el SI o por el NO. Si existe un algoritmo (por ejemplo una mquina de Turing, o
un programa en lenguajes Lisp o Pascal con memoria irrestricta) que es capaz de
entregar la respuesta correcta para toda cadena de datos de longitud n en a lo
sumo c \cdot n^k pasos, donde k y c son constantes independientes del conjunto
de datos, entonces se dice que el problema puede ser resuelto en tiempo
polinmico y lo clasificamos como perteneciente a la clase P. En forma intuitiva,
consideramos que los problemas contenidos en P son aquellos que pueden ser
resueltos en forma razonablemente rpida.

P suele ser la clase de problemas computacionales que son eficientemente


resolubles o tratables, aunque haya clases potencialmente ms grandes que
tambin se consideran tratables, como RP Y BPP. Aunque tambin existen
problemas en P que no son tratables en trminos prcticos; por ejemplo, unos
requieren al menos n^{1000000} operaciones.

En forma intuitiva, se puede pensar que NP es un problema de decisin que es


difcil de resolver si no se posee ningn otro dato o informacin adicional. Sin
embargo, si se recibe la informacin adicional llamada un certificado, entonces el
problema puede ser resuelto fcilmente. Por ejemplo, si se nos da el nmero 323 y
se nos pregunta si 323 es un nmero factorizable, sin darnos ningn dato o
informacin adicional, deberamos analizar todos los nmeros enteros positivos
mayores que 2 pero menores que 323 para estudiar si alguno de ellos divide
exactamente al 323. Sin embargo, si se nos da el nmero 17, podemos dividir 323
por 17 y rpidamente verificar que 323 es factorizable. El nmero 17 es llamado
un certificado. El proceso de divisin para verificar que 323 es factorizable es en
esencia una mquina Turing y en este caso es denominado el verificador para

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

323. Tcnicamente se dice que el problema es fcil si se puede resolver en tiempo


polinmico y que es difcil si se resuelve en tiempo exponencial. Formalmente, se
define NP como un conjunto de lenguajes que satisfacen ciertas condiciones.

Sea L un lenguaje definido sobre un alfabeto finito, \Sigma.

Si existe una relacin binaria R\subset\Sigma^{*}\times\Sigma^{*} y un entero


positivo k tal que para todo x\in\Sigma^{*}, se satisfacen las siguientes
condiciones:

(i) x\in L \Leftrightarrow\exists y\in\Sigma^{*} tal que (x,y)\in R\; y \left|y\right|\in\;


O(\left|x\right|^{k}).

(ii) El lenguaje L_{R}=\{ x\# y:(x,y)\in R\} en \Sigma\cup\{\#\} es decible.

Entonces, la mquina de Turing que decide L_{R} (que la llamaremos V) es


llamada el Verificador para L y y es llamado el Certificado de membresa de x en
L.

Finalmente, L se encuentra en NP "si y solo si" V corre en tiempo polinmico.

Ejemplo.

Sea \mathit{COMPOSITE} = \{x\in N:x=pq \;\text{para enteros}\; p, q > 1 \}

R = \{(x,y)\in N\times N: 1<y<x\; ; \;y\; \text{divide a}\; x\}

Claramente, la pregunta de si un dado x es factorizable es equivalente a la


pregunta sobre si x es un miembro de \mathit{COMPOSITE}. De hecho, se puede

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

demostrar fcilmente que \mathit{COMPOSITE}\in\mathbf{NP} si se verifica que


\mathit{COMPOSITE} satisface la condicin indicada previamente.

Un algoritmo eficiente es un algoritmo de complejidad polinomial.

Un problema est bien resuelto si se conocen algoritmos eficientes para

resolverlo.

El objetivo es clasificar los problemas segn su complejidad.

Un problema de decisin es un problema cuya respuesta es s o no

La clasificacin y el estudio de teora de complejidad se hace para

problemas de decisin.

La clase P
P es conocido por contener muchos problemas naturales, incluyendo las versiones
de decisin de programa lineal, clculo del mximo comn divisor, y encontrar una
correspondencia mxima.

Problemas notables en P

Algunos problemas naturales son completos para P, incluyendo la conectividad (o


la accesibilidad) en grafos no dirigidos.

Una generalizacin de P es NP, que es la clase de lenguajes decidibles en tiempo


polinmico sobre una mquina de Turing no determinista. De forma trivial,
tenemos que P es un subconjunto de NP. Aunque no est demostrado, la mayor
parte de los expertos creen que esto es un subconjunto estricto.

Aqu, EXPTIME es la clase de problemas resolubles en tiempo exponencial. De


todas las clases mostradas arriba, slo se conocen dos contenciones estrictas:

P estrictamente est contenido en EXPTIME.


L estrictamente est contenida en PSPACE.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Los problemas ms difciles en P son los problemas P-completos

Otra generalizacin de P es el Tiempo polinmico No uniforme (P/Poly)[1]. Si un


problema est en P/poly, entonces puede solucionarse en un tiempo polinomial
determinado el cual, dado una cadena, este solo depende de la longitud de la
entrada. A diferencia de NP, no se comprueban las cadenas defectuosas que
entran en la mquina de Turing, puesto que no es un verificador.

P/poly es una clase grande que contiene casi todos los algoritmos prcticos,
incluyendo todo el BPP. Si esta contiene a NP, la jerarqua polinomial se colapsa
con el segundo nivel. Por otra parte, esta tambin contiene algunos algoritmos
poco prcticos, incluyendo algunos problemas no decidibles.

Propiedades

Los algoritmos de tiempo polinmico son cerrados respecto a la composicin.


Intuitivamente, esto quiere decir que si uno escribe una funcin con un
determinado tiempo polinmico y consideramos que las llamadas a esa misma
funcin son constantes y, de tiempo polinmico, entonces el algoritmo completo es
de tiempo polinmico. Esto es uno de los motivos principales por los que P se
considera una mquina independiente; algunos rasgos de esta mquina, como el
acceso aleatorio, es que puede calcular en tiempo polinmico el tiempo polinmico
del algoritmo principal reducindolo a una mquina ms bsica.

Las pruebas existenciales de algoritmos de tiempo polinmico

Se conoce que algunos problemas son resolubles en tiempo polinmico, pero no


se conoce ningn algoritmo concreto para solucionarlos. Por ejemplo, el teorema

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

Robertson-Seymour garantiza que hay una lista finita de los menores permitidos
que compone (por ejemplo) el conjunto de los grafos que pueden ser integrados
sobre un toroide; adems, Robertson y Seymour demostraron que hay una
complejidad O (n3) en el algoritmo para determinar si un grafo tiene un grafo
incluido. Esto nos da una prueba no constructiva de que hay un algoritmo de
tiempo polinmico para determinar si dado un grafo puede ser integrado sobre un
toroide, a pesar de no conocerse ningn algoritmo concreto para este problema.

Ejemplos

Camino Mnimo: encontrar el camino mnimo desde un vrtice origen al


resto de los vrtices.

Ciclo Euleriano: Encontrar un ciclo que pase por cada arco de un grafo una
nica vez.

Clase NP-Completo

Para abordar la pregunta de si P=NP, el concepto de la completitud de NP es muy


til. Informalmente, los problemas de NP-completos son los problemas ms
difciles de NP, en el sentido de que son los ms probables de no encontrarse en
P. Los problemas de NP-completos son esos problemas NP-duros que estn
contenidos en NP, donde los problemas NP-duros son estos que cualquier
problema en NP puede ser reducido a complejidad polinomial. Por ejemplo, la
decisin del Problema del viajante de comercio es NP-completo, as que cualquier
caso de cualquier problema en NP puede ser transformado mecnicamente en un
caso del Problema del viajante de comercio, de complejidad polinomial. El
Problema del viajante de comercio es de los muchos problemas NP-completos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

existentes. Si cualquier problema NP-completo estuviera en P, entonces indicara


que P=NP. Desafortunadamente, se sabe que muchos problemas importantes son
NP-completos y a fecha de 2008, no se conoce ningn algoritmo rpido para
ninguno de ellos. Basndonos solo en esta idea, no es obvio que exista un
problema NP-completo.

Un problema NP-completo trivial e ideado, se puede formular como: Dada una


descripcin de una mquina de Turing M que se detiene en tiempo polinmico,
existe una entrada de tamao polinmico que M acepte? Es NP porque, dada
una entrada, es simple comprobar si M acepta o no la entrada simulando M, es
NP-duros porque el verificador para cualquier caso particular de un problema en
NP puede ser codificado como una maquina M de tiempo polinomial que toma la
solucin para ser verificada como entrada. Entonces la pregunta de si el caso es o
no un caso, est determinado por la existencia de una entrada valida. El primer
problema natural que se demostr ser NP-completo fue el Problema booleano de
satisfacibilidad.

Este resultado es conocido como el teorema de Cook-Levin; su prueba de que la


satisfacibilidad es NP-completo contiene los detalles tcnicos sobre mquinas de
Turing y como se relacionan con la definicin de NP. Sin embargo, despus se
demostr que el problema era NP-completo, la prueba por reduccin, proporcion
una manera ms simple de demostrar que muchos otros problemas estn en esta
clase. As, una clase extensa de problemas aparentemente sin relacin es
reducible a otra, y son en este sentido el mismo problema.

Como ejemplo de un problema NP-completo encontramos el problema de la suma


de subconjuntos que se puede enunciar como sigue: dado un conjunto S de
enteros, existe un subconjunto no vaco de S cuyos elementos sumen cero? Es
fcil verificar si una respuesta es correcta, pero no se conoce mejor solucin que
explorar todos los 2n-1 subconjuntos posibles hasta encontrar uno que cumpla
con la condicin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

TEOREMA DE COOK
En teora de la complejidad computacional, el Teorema de Cook establece lo
siguiente:

El Problema de satisfacibilidad booleana (SAT) es NP-completo.

Lo cual quiere decir que


Un problema de decisin pertenece a NP si puede ser resuelto en una Mquina de
Turing indeterminista en tiempo polinomio.
Se dice que un problema de decisin es NP-completo si pertenece a NP y si todo
problema perteneciente a NP puede ser reducido a l utilizando una
transformacin polifnica.
Una instancia del problema SAT es una expresin booleana que combina
variables booleanas con operadores booleanos. Una expresin es satisfacible si
existe una asignacin de valores booleanos para las variables de esa expresin
que hace que la expresin completa sea verdadera.

EJEMPLOS:

Un problema interesante en teora de grafos es el de isomorfismo de grafos: Dos


grafos son isomorfos si se puede transformar uno en el otro simplemente
renombrando los vrtices. De los dos problemas siguientes:

Isomorfismo de grafos: Es el grafo G1 isomorfo al grafo G2?

Isomorfismo de subgrafos: Es el grafo G1 isomorfo a un subgrafo del grafo


G2?

Se sospecha que el problema de isomorfismo de grafos no est ni en P ni en NPcompleto, aunque est en NP. Se trata de un problema difcil, pero no tanto como
para estar en NP-completo.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

La forma ms sencilla de demostrar que un nuevo problema es NP-completo es


primero demostrar que est en NP y luego transformar en tiempo polinmico un
problema que ya est en NP-completo a ste. Para ello resulta til conocer
algunos de los problemas para los que existe prueba de pertenencia a NPcompleto. Algunos de los ms famosos son:

Problema de satisfacibilidad booleana (SAT)

Problema de la mochila (knapsack)

Problema del ciclo hamiltoniano

Problema del vendedor viajero

Problema de la clique

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

CONCLUSIONES

 El agente inteligente en este caso es la base de datos que permita la


informacin permanente y genere resultados de pronsticos respecto a los
posibles resultados.
 La inteligencia artificial se va a masificar en usos y aplicaciones y vamos a
poder hacer cosas que antes ni siquiera pensbamos que fueran posibles.
 La aplicabilidad de las tcnicas computacionales, nos lleva a comprender y
afianzar los conocimientos de una manera terica, logrando la comprensin
de los mismos segn ciertos ejemplos en la ciencia de la computacin con
modelos bsicos y complejidad de problemas.
 Los modelos recursivos nos llevan a soluciones aproximadas ya sea por
iteracin o modelos probabilsticos, se parte de la solucin de un problema
sencillo conocido y se obtiene una generalizacin de orden n.
 La eficiencia de los algoritmos permite comparar diferentes tcnicas y
software utilizados para la solucin de problemas especficos, sin lugar a
duda permite optimizar recursos y desechar algoritmos con procedimientos
obsoletos o que no son lo suficientemente eficientes en el uso de recursos
computacionales y en el tiempo en obtener las respuestas esperadas por el
usuario final.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Inteligencia Artificial AI Grupo 90169_18 Actividad Grupal Momento Uno

. BIBLIOGRAFIA

Avila, Mauricio. 2013. Calidad de Software-caja negra. . [En lnea]. Octubre 22 de 2013.
Formato PDF. Recuperado de:
https://www.youtube.com/watch?v=lVEIzJGqJcM

Biografas
y
vidasla
enciclopedia
http://www.biografiasyvidas.com/biografia/l/llull.htm

biogrfica

en

lnea

Biografas
y
vidasla
enciclopedia
biogrfica
http://www.biografiasyvidas.com/biografia/t/turing.htm

en

lnea

Fernandez, Carmen. Villena, Julio. Pruebas de Programas. [En lnea]. Formato PDF.
Recuperado de: http://www.it.uc3m.es/ttrd/material/05-pruebas-de-programas.pdf

Hipola, Pedro. 1999. Agentes Inteligentes: Definicin y Tipologa. Los agentes de


Informacin. [En lnea]. Abril 1999. Universidad de Granada. Recuperado: de:
http://www.elprofesionaldelainformacion.com/contenidos/1999/abril/agentes_intelig
entes_definicion_y_tipologia_los_agentes_de_informacion.html
Mayordomo, Elvira. 2013. Problemas intratables: Los NP-Dificiles. [En lnea]. Mayo 15 de
2013. Universidad de Zaragoza, Espaa. Formato PDF. Recuperado de:
http://webdiis.unizar.es/asignaturas/APD/NPcompletosI.pdf
Vasquez, R. Control de Robots. [En lnea]. Formato pdf. Recuperado de:
http://www.rvazquez.org/Misitio/Materialbi_files/objetodeestudio2crnew.pdf

WikiMedia Org.. Eficiencia Algoritmica. [En lnea]. Formato HTML. Recuperado de:
https://es.wikipedia.org/wiki/Eficiencia_Algor%C3%ADtmica

WikiMedia Org.. Teoria de la Complejidad Computacional. [En lnea]. Formato HTML.


Recuperado de:
https://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_complejidad_computacional

WikiMedia Org. Clases de Complejidad P y NP. [En lnea]. Formato HTML. Recuperado
de: https://es.wikipedia.org/wiki/Clases_de_complejidad_P_y_NP

You might also like