Está en la página 1de 49

'

&
$
%
Universidad Autonoma de Aguascalientes
Centro de Ciencias Basicas
Departamento de Ciencias de la Computacion
Academia de Inteligencia Articial
28 de Enero de 2014
UAA
ii

Indice general
1. AGENTES INTELIGENTES 3
1.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1. Agentes . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Tipos de agentes . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3. Tipos de ambientes . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. Agentes para la solucion de problemas . . . . . . . . . . . . . 17
1.5. Ejemplos y ejercicios . . . . . . . . . . . . . . . . . . . . . . . 17
2. PROBLEMAS Y SU CLASIFICACI

ON 19
2.1. Introducci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. Problemas tratables e intratables . . . . . . . . . . . . . . . . 21
2.3. Medicion de la eciencia de los algoritmos . . . . . . . . . . . 24
2.4. Maquina de Turing . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5. Problemas P y NP . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6. Problemas NP Completos y necesidad de las heursticas . . . . 35
2.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
iii
UAA

INDICE GENERAL
iv

Indice de guras
1.1. Agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Agentes emocionales . . . . . . . . . . . . . . . . . . . . . . . 8
1.3. Clasicaci on de agentes . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Otra clasicacion de agentes . . . . . . . . . . . . . . . . . . . 9
1.5. Clasicaci on de Russell y Norvig . . . . . . . . . . . . . . . . 10
1.6. Clasicaci on de agentes de Jennings . . . . . . . . . . . . . . . 11
1.7. Ambiente de Agente . . . . . . . . . . . . . . . . . . . . . . . 13
1.8. Estructuramiento . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.9. Recursos y servicios . . . . . . . . . . . . . . . . . . . . . . . . 14
1.10. Mantenimiento ambiental . . . . . . . . . . . . . . . . . . . . 15
1.11. Habilitacion de la comunicaci on . . . . . . . . . . . . . . . . . 15
1.12. Reglamentaci on de los sistemas . . . . . . . . . . . . . . . . . 16
1.13. Monitoreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1. Espacio del problema . . . . . . . . . . . . . . . . . . . . . . . 36
2.2. Representaci on gr aca del TSP . . . . . . . . . . . . . . . . . 38
2.3. Movimientos permitidos de la Reina en el Ajedrez . . . . . . . 39
2.4. Reinas por columna . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5. Soluciones esencialmente distintas . . . . . . . . . . . . . . . . 40
2.6. Ubicaci on de 8 Transmisores/Receptores sin conicto entre ellos 42
v
UAA

INDICE DE FIGURAS
vi

Indice de tablas
2.1. Tabla comparativa de operaciones . . . . . . . . . . . . . . . . 25
2.2. Tabla comparativa en tiempo . . . . . . . . . . . . . . . . . . 25
2.3. Tabla de Conteo binario . . . . . . . . . . . . . . . . . . . . . 31
2.4. N umero total de soluciones Q(n) para 4 n 20 . . . . . . . 42
1
Captulo 0 Tema 0.0

2
Captulo 1
AGENTES INTELIGENTES
1.1. Introduccion
Es el empleo de la Ciencia y la Tecnologa para fabricar maquinas y
especialmente programas de computadora inteligentes.
Denicion (1.1 - Inteligencia Articial (IA))
Se relaciona con las tareas orientadas a usar computadoras para entender
principalmente la inteligencia humana, pero la IA no se reduce solamente a
los metodos que son observables biol ogicamente.
El objetivo de la IA es lograr la fabricacion de sistemas o programas que
alcancen y superen a la inteligencia humana.
Actualmente las dos tendencias o enfoques principales de la IA son:
El L ogico-matematico
El Bio-inspirado
Algunos de los exponentes de estos enfoques son:
En el L ogico-Matematico
Turing: En 1950 el matem atico ingles Alan Turing presenta su
trabajo Computing machinery and intelligence que busca deter-
minar la presencia de inteligencia en una maquina, con lo que
inicia el desarrollo tanto de la computacion como de la IA.
3
Captulo 1 - Agentes inteligenteS - Tema 1.1
Von Neumman: Su contribuci on central fue la idea de que las
computadoras deberan dise narse tomando como modelo al cere-
bro humano. Von Neumann fue el primero en antropomorzar el
lenguaje y la concepcion de la computacion al hablar de la me-
moria, sensores, etc., de las computadoras. Construy o una serie
de m aquinas utilizando lo que a principios de los cincuentas se
conoca sobre el cerebro humano, y dise no los primeros programas
almacenados en la memoria de una computadora.
Newell y Simon: En 1957 Newell y Simon contin uan su trabajo
con el desarrollo del General Problems Solver (GPS). Este es un
sistema orientado a la resolucion de problemas; GPS estaba pro-
gramado para resolver una gran cantidad de problemas de sentido
com un.
Mac Carthy: En 1956, en la famosa conferencia de Dartmouth,
organizada por John McCarthy se utiliz o el nombre de Inteligencia
Articial para este nuevo campo, y se separ o de las ciencias del
computador, como tal. Se estableci o como conclusi on fundamental
la posibilidad de simular inteligencia humana en una m aquina.n
1957 desarrolla el lenguaje LISP.
Minsky: Se establecen diversos centros de investigacion, entre los
m as relevantes, la Universidad Carnegie Mellon, el Massachusetts
Institute of Technologie (MIT), encabezado por Marvin Minsky,
la Universidad de Standford e IBM. Los temas fundamentales eran
el desarrollo de heursticas y el aprendizaje de m aquinas.
Bioinspirados
Mc Cullogh: Los antecedentes recientes sobre la IA aparecen en
1943 cuando Warren McCulloch (un neurosi ologo) y Walter Pitts
(un matem atico) propusieron un modelo de neurona del cerebro
humano y animal (en su trabajo denominado A logical calculus of
the ideas immanent in nervous activity). Estas neuronas articia-
les proporcionan una representaci on simbolica de la actividad cere-
bral, aqu se combinan la neurosiologa con la l ogica matem atica,
tomando en cuenta la propiedad de Todo-o-Nada de la activacion
de la neurona biol ogica para modelarla como una unidad binaria.
Wiener: Otro antecedente en los a nos 50 es el sistema llamado
el Perceptr on de Rossenblatt, que es una aplicacion pr actica de
la neurona de McCulloch y Pitts. Es un sistema visual de reco-
nocimiento de patrones que puede resolver una gama amplia de
problemas, m as adelante, Norbert Wiener integro estas ideas junto
con otras, dentro del mismo campo, al que llamo Cibernetica.

4
Captulo 1 - Agentes inteligenteS - Tema 1.1
John Holland: Un investigador de la Universidad de Michigan
llamado John Holland estaba consciente de la importancia de la
seleccion natural, y a nes de los 60s desarrollo una tecnica que
permitio incorporarla en un programa de computadora. Su obje-
tivo era lograr que las computadoras aprendieran por s mismas.
A la tecnica que invento Holland se le llamo originalmente pla-
nes reproductivos, pero se hizo popular bajo el nombre Algoritmo
genetico tras la publicacion de su libro Adaptation in Natural and
Articial Systems en 1975.
Marco Dorigo: Insipirado en el comportamiento que rige a diefe-
rentes especies de hormigas para encontrar los caminos m as cortos
entre las fuentes de comida y el hormiguero, Dorigo desarrolla en
su trabajo denominado Ant Sistem una metaheurstica llamada
Optimizacion basada en Colonias de Hormigas n 1996.
1.1.1. Agentes
Es aquel que actua o tiene la virtud de actuar, lo cual puede abarcar
desde un sistema de control simple (un control de nivel que se activa
al detectar el nivel de un liquido), sistemas biologicos fundamentales
(organismos unicelulares, bacterias, microorganismos), hasta organis-
mos complejos (como animales, el ser humano o sistemas climaticos).
Denicion (1.2 - Agente)
Figura 1.1: Agente

5
Captulo 1 - Agentes inteligenteS - Tema 1.1
Agentes de Software
Es cualquier sistema (Computacional) capaz de percibir su medio
ambiente con la ayuda de sensores y actuar en ese medio utilizando
actuadores.
Denicion (1.3 - Agente de software)
El concepto de Agente subyace en algunos de los trabajos de Vannevar Bush
(As we may think), John Von Neumman (Teora de los Automatas Auto-
reproductivos), Doug Englebart, Carl Hewitt, John McCarthy entre otros.
Con esta nocion de agente como una maquina de estados un enfoque mas
operativo dene a un agente como una 4-tupla:
Agente
i
=< Estado
i
, Entrada
i
, Salida
i
, Proceso
i
>
Donde:
Estado
i
es el conjunto de valores que deenen totalmente al agente.
Entrada
i
y Salida
i
son subconjuntos de Estado, cuyas variables se
integran al ambiente (mediante sensores y actuadores respectivamente).
Proceso
i
es la ejecucion de un mapeo aut onomo que cambia el estado
del agente.
Cada agente esta situado en, y es parte de, alg un ambiente al que sensa y
sobre el cual act ua en forma aut onoma y en donde:
No requiere de otra entidad para obtener sus entradas o para interpretar
y usar sus salidas, cada acto esta en funcion de su propia agenda, la cual
busca satisfacer pero tambien puede perseguir metas dise nadas por alg un
otro agente.
Cada acci on que realiza actualmente puede afectar el sensado posterior, esto
es, las acciones afectan al ambiente, nalmente, cada acci on se realiza sobre
un lapso de tiempo.
Estos requerimientos constituyen la esencia de la agencia, los cuales se for-
malizan en la siguiente denici on:
Un agente autonomo es un sistema situado en una parte de un ambiente
el cual sensa y sobre el cual act ua al mismo tiempo, en busca de su propia
agenda y sobre la cual actuara en el futuro.

6
Captulo 1 - Agentes inteligenteS - Tema 1.1
Noci on Debil de Agencia
Quiza la forma m as general en la cual se usa el termino de agente es para de-
notar un sistema de computo de hardware, o (mas com unmente) de software,
que exhibe las siguientes propiedades:
Autonoma: agentes que operan sin la intervenci on directa de seres
humanos u otros, y que tienen alg un tipo control sobre sus acciones y
estados internos.
Habilidad social: agentes que interact uan con otros agentes (y posi-
blemente seres humanos) via alg un tipo de lenguaje de comunicaci on
de agentes.
Reactividad: agentes que perciben su ambiente, (el cual puede ser el
mundo fsico, un usuario via una interface gr aca o una colecci on de
otros agentes, INTERNET, o quizas todos ellos combinados), y que
responden a tiempo a los cambios que ocurren en el.
Pro-actividad:agentes que no simplemente responden a su ambiente
sino que son capaces de exhibir comportamiento dirigido por objetivos
tomando la iniciativa.
Noci on Fuerte de Agencia
Un agente es un sistema de computo que, adem as de tener las propiedades
mencionadas anteriormente es conceptualizado e implementado usando con-
ceptos que son m as usualmente aplicados a los seres humanos, es com un en
IA caracterizar a un agente usando nociones mentalistas, tales como:
Conocimientos
Creencias
Intenciones
Obligaciones
Algunos investigadores han ido m as alla, y consideran:
Agentes emocionales
Otros Atributos de la Agencia
Otros atributos son a veces discutidos en el contexto de agencia, por ejemplo:
Movilidad es la habilidad de un agente para moverse alrededor de una
red electr onica.

7
Captulo 1 - Agentes inteligenteS - Tema 1.2
Figura 1.2: Agentes emocionales
Veracidad es la suposicion de que un agente no comunicar a informa-
cion falsa.
Benevolencia es la suposicion de que un agente no tendra metas con-
ictivas, y que cada agente siempre tratara de hacer lo que se le pidio.
Racionalidad en tanto sus creencias es la suposicion de que un agente
actuar a para alcanzar sus metas, y que no actuar a de tal forma que
impida que esas metas sean alcanzadas se lo permitan.
La racionalidad tiene que ver tambien con la acci on de optimizar una funcion
objetivo determinada por el usuario
1.2. Tipos de agentes
La concepcion de agente como un ente aut onomo, implica que deben estar
presentes en un sistema para considerarlo como tal las siguientes propiedades:
Reactividad
Autonoma
Capacidad de realizar metas y
Operacion continua
De manera general podemos establecer las siguientes clases:

8
Captulo 1 - Agentes inteligenteS - Tema 1.2
Agentes aut onomos
Agentes naturales Agentes articiales
Agentes rob oticos Agentes computacionales
Figura 1.3: Clasicaci on de agentes
Agentes naturales, los que genera la naturaleza.
Agentes articiales, los creados por el hombre.
Agente robotico, son aquellos agentes articiales que act uan en el
mundo real.
Agentes computacionales, son los que act uan en un ambiente vir-
tual implementado en una computadora.
Otra clasicacion de agentes es la siguiente:
Agentes
Agentes de
regulacion
Agentes
planicadores
Agentes
adaptativos
resolucion de
problemas
basados
en casos
investigacion
de operaciones
aleatoriedad
(acierto y error)
Figura 1.4: Otra clasicacion de agentes

9
Captulo 1 - Agentes inteligenteS - Tema 1.2
Un agente de regulacion posee un conocimiento implcito en su estruc-
tura que le permite predecidir que hacer al confrontar una situacion,
las acciones que toma tienden a satisfacer sus motivaciones.
Un agente planicador puede adem as, elaborar planes sobre la secuencia
de acciones a ejecutar. Estos agentes pueden a su vez ser clasicados
dependiendo del mecanismo de planicaci on que utilicen.
Finalmente, los agentes adaptativos son aquellos que poseen la capaci-
dad de adquirir conocimiento y por lo tanto, mejorar su desempe no.
La siguiente clasicacion fue establecido por Russell y Norvig:
Agentes
Agentes de
reejos simples
Agentes con estado
del mundo
Agentes basados
en metas
Agentes basados
en utilidad
Figura 1.5: Clasicaci on de Russell y Norvig
Los agentes de reejo simples deciden que acci on tomar unicamente
con base en su percepcion del medio ambiente. Tambien se les conoce
como agentes tropsticos [Genesereth y Nilsson88]
Los agentes que mantienen un estado del mundo hacen uso de un estado
interno en su elecci on de acciones. Estos agentes tambien son conocidos
como histereticos [Genesereth y Nilsson 88]
Mantener cierta informacion sobre el medio ambiente no siempre es
suciente para decidir que hacer, por ello los agentes basados en metas
deciden sus acciones guiados por la informacion que estas proporcionan,
como puede ser un estado al que se quiere llegar. Estos agentes pueden
elaborar planes para la realizaci on de las metas.
Los agentes basados en utilidad estan relacionados con la teora del
hombre economico en donde el agente es conceptualizado como una en-
tidad racional que tiende a maximizar una nocion cuantitativa llamada
utilidad [Hendriks-Jansen 96] Si un estado del mundo es preferido por
un agente con relaci on a otro es porque, para ese agente, tiene mayor
utilidad.

10
Captulo 1 - Agentes inteligenteS - Tema 1.2
La siguiente clasicacion propuesta por Jennings con base en el servicio que
estos pueden prestar:
Agentes
de servicio
internet
predictivos cooperativos
asistentes ltros
guias constructores
de indices
localizadores
de FAQs
Figura 1.6: Clasicaci on de agentes de Jennings
Un agente de servicio es aquel que lleva a cabo tareas bien denidas
a peticion del usuario, por ejemplo, encuentra el vuelo m as barato de
Mexico DF a Boston entre el 20 y 23 de julio.
Los llamados agentes de informacion podran entrar en esta categora.
Oren Etzioni [Etzioni y Weld 95] ha identicado tres tipos de agente
de informacion operando en Internet:
Los agentes gua se encargan de orientar a las personas que navegan en
Internet, Web watcher es un agente que realiza recomendaciones sobre
que liga seguir en un documento de hipertexto y mejora su desempe no
observando las reacciones del usuario a sus recomendaciones.
Existen agentes constructores de ndices de sitios en la red como Lycos,
WebCrawler e Infoseek. Estos agentes llevan a cabo de manera aut ono-
ma una b usqueda masiva en Internet, almacenando un ndice de las
palabras contenidas en millones de documentos, que sera consultado
por los usuarios.
Una labor parecida realizan los agentes localizadores de FAQs. Los
usuarios de Internet tienden a hacer las mismas preguntas, as que los
grupos de discusi on crean archivos FAQ (pregunta frecuente) con las

11
Captulo 1 - Agentes inteligenteS - Tema 1.3
respuestas a esas preguntas. Los agentes FAQ, como autoFAQ, buscan
informacion en estos archivos a peticion de un usuario
Un agente predictivo provee informacion o servicios al usuario sin re-
querimiento explcito para ello, por ejemplo, un agente que monitorea
los grupos de discusi on del Internet reportando artculos que podran
ser de interes.
Un ejemplo de agente predictivo es NewT [Sheth y Maes 93] que ope-
ra en el domino de los grupos de discusi on news Despues de recibir
un entrenamiento basado en ejemplos, NewT lleva a cabo recomenda-
ciones de noticias en los news, su desempe no mejora con base en la
retroalimentaci on con el usuario. Dentro de este tipo de agentes pode-
mos encontrar a UCEgo [Chin 91] el cual forma parte del sistema UC
(UNIX Consultant) cuyo objetivo es auxiliar a un usuario del sistema
operativo UNIX en sus tareas. Otro agente predictivo es E-mail [Maes
y Kozierok 93], el cual aprende sus reglas observando del usuario. E-
mail opera sobre el correo electr onico prediciendo las acciones de los
usuarios sobre los mensajes recibidos. Este agente puede predecir los
mensajes que seran ledos y en que orden, cuales seran borrados, donde
seran archivados y cuales seran contestados.
Los agentes cooperativos [Wooldrige y Jennings 95] podran constituir
otro grupo en esta clasicacion La mayor parte de estos trabajos pro-
vienen del area de Inteligencia Articial Distribuida, donde a diferencia
de este trabajo, el enfasis es en el nivel social de los agentes o el nivel
multitudinario [Brooks 91b] Los agentes en esta area de aplicacion so-
lucionan de manera cooperativa problemas como el control de tr aco
aereo, la administracion de plantas generadoras de energa electrica y
el control de naves espaciales, entre otros.
1.3. Tipos de ambientes
Como ya se menciono un agente requiere de un ambiente para existir y operar,
el cual se dene como:
Es aquello que establece las condiciones bajo las cuales un agente
puede existir [Parunak et.al. 2001].
Denicion (1.4 - Ambiente)

12
Captulo 1 - Agentes inteligenteS - Tema 1.3
Figura 1.7: Ambiente de Agente
De acuerdo con sus caractersticas los ambientes se clasican como:
Totalmente observable vs. Parcialmente observable: indica si los agentes
tienen acceso al estado completo del ambiente o no.
Determnstico vs. Estocastico: indica que el cambio de estado del am-
biente esta unicamente determinado por su estado actual y las acciones
seleccionadas por el agente o no.
Episodico vs. Secuencial: indica que el ambiente puede cambiar en for-
ma directa o alternada.
Estatico vs. Dinamico: indica que el ambiente puede cambiar a un agen-
te en forma deliberada o no.
Discreto vs. Continuo: indica que el numero de percepciones y acciones
esta limitado o no.
Agente individual vs. Multi-agente: indica que el ambiente puede con-
tener un solo agente o un grupo de ellos.
Representacion del ambiente
Formalmente un ambiente se puede expresar por medio de la tupla [Parunak
et.al. 2001]:
Ambiente =< Estado
e
Proceso
e
>
Donde:
Estado
e
es un conjunto de valores que denen completamente el am-
biente, el estado incluye a los objetos y los agentes de todo el ambiente.
Proceso
e
es el mapeo que se ejecuta aut onomamente y que cambia el
estado del ambiente.

13
Captulo 1 - Agentes inteligenteS - Tema 1.3
Responsabilidades del ambiente
Intuitivamente, el ambiente puede verse como el lugar donde los agentes
interact uan con los objetos del dominio, los recursos y con otros agentes
[Weyns, 2005].
Derivado de los conceptos anteriores es posible determinar las siguientes res-
ponsabilidades del ambiente:
Estructuramiento
El ambiente es el primer espacio com un de los agentes el cual estructura el sis-
tema completa, puede ser espacial [Bandini, 2005], u organizacional [Ferber,
2003].
Propiedades especicas diferentes se pueden denir separadamente para cada
espacio, tales como posiciones, localidades, grupos o roles.
Figura 1.8: Estructuramiento
Administracion de recursos y servicios
El ambiente act ua como un contenedor de recursos y servicios a ser acce-
sados, los recursos son objetos con un estado especico, los servicios son
considerados como entidades reactivas encapsuladas funcionalmente.
El ambiente esta a cargo de habilitar y controlar el acceso a los recursos y
servicios.
Figura 1.9: Recursos y servicios

14
Captulo 1 - Agentes inteligenteS - Tema 1.3
Procesos de mantenimiento ambiental
Adem as de las actividades de los agentes, el ambiente puede asignar activida-
des particulares a los recursos Ejemplos de estos son la agregaci on, difusion
y evaporaci on de feromonas digitales, o la recolecci on de basura de datos
in utiles.
Mantener tales dinamicas es una funcion importante del ambiente.
Figura 1.10: Mantenimiento ambiental
Habilitar la comunicacion
El ambiente dene los medios concretos para que los agentes se puedan co-
municar. La mayora emplea esquemas de estilo pase de mensajes de un a
gente a otro.
En la generaci on de una comunicaci on indirecta los agentes producen comu-
nicacion con objetos dentro del ambiente.
Figura 1.11: Habilitacion de la comunicaci on
Reglamentar los sistemas de agentes
El ambiente puede denir diferentes tipos de reglas o leyes sobre todas las
entidades de los sistemas basados en agentes. Las reglas pueden restringir

15
Captulo 1 - Agentes inteligenteS - Tema 1.4
el acceso a recursos especcos o servicios a tipos particulares de agentes, o
determinar el resultado de las interacciones de los agentes.
Las reglas del ambiente pueden ser una herramienta muy poderosa para ex-
presar las capacidades que un ambiente necesita para asegurar consistencia
en el sistema [Noriega & Sierra, 2002].
Figura 1.12: Reglamentaci on de los sistemas
Proveer de monitoreo
Contrario a los agentes, el ambiente debe estar pendiente de que los agentes
tengan acceso a los recursos y servicios.
Los agentes pueden, incluso ser capaces de observar las acciones de otros
agentes. La observabilidad relacionada es la descripcion sem antica de recursos
y servicios.
En un sistema abierto, puede ser util para los agentes el que sean capaces de
entender en operacion un nuevo ambiente que estan descubriendo [Chang, et
al. 2005]. Esto puede hacerse deniendo una ontologa del ambiente que lo
describa, sus recursos y servicios, y posiblemente sus regulaciones.
Figura 1.13: Monitoreo

16
Captulo 1 - Agentes inteligenteS - Tema 1.5
1.4. Agentes para la soluci on de problemas
A continuacion algunas aplicaciones implementadas mediante tecnologia
de agentes:
Servicios de informacion en Internet
Recuperacion y extracci on de informacion
Comercio electr onico
Mercado de servicios electr onico
Negociacion
Equipos m oviles y PCs en el hogar
Redes p ublicas de telecomunicaciones
Provision de servicios bajo demanda
Descentralizaci on del control y gestion de redes
Gestion de procesos (workow)
Simulacion de sistemas din amicos
Juegos (bots)
Robotica
1.5. Ejemplos y ejercicios
Para el desarrollo de ejemplos y ejercicios se va a utilizar una herramienta
de desarrollo de agentes.

17
Captulo 1 - Agentes inteligenteS - Tema 1.5

18
Captulo 2
PROBLEMAS Y SU
CLASIFICACI

ON
2.1. Introduccion
En la actualidad es una necesidad en muchas ciencias la capacidad de poder
obtener una medida de la complejidad de un problema basada en estu-
dios de su estructura y algoritmo involucrado, quedando claro que para la
mayora de los problema conocidos siempre se involucra un cierto procedi-
miento matem atico que sirve para los calculos en la obtencion de la solucion
del problema.
Lo anterior no siempre es cierto, pues existen problemas matem aticos bien
denidos para los cuales no existe ning un algoritmo (Turing demostr o que
tales problemas sin decisi on existen).
Debido a los recursos que siempre son limitados en la b usqueda de la solucion
de los problemas dentro de las computadoras, se presenta una clase de com-
plejidad de acuerdo al tiempo y espacio de memoria requerida (las medidas
m as importantes de la complejidad de los problemas de computo).
Se pueden determinar los recursos necesarios para una gran cantidad de pro-
blemas importantes conocidos en varias areas de las matem aticas y obtener
algoritmos ecientes para ellos y de esta manera denir las clases de comple-
jidad existentes.
Lo anterior es importante en el sentido de que un problema, aunque se derive
de un buen algoritmo puede ser inservible para algunos tipos de datos ya
que los recursos de memoria pueden sobrepasar la disponible, y/o el tiempo
requerido para obtener una solucion podra ser muy grande.
19
Captulo 2 - Problemas y su clasificaci on - Tema 2.1
Se dice que un algoritmo resuelve un problema A si este algoritmo puede
resolver cualquier instancia X de A. Entendiendose por instancia de un pro-
blema cuando para ese problema se especican valores particulares para todos
sus par ametros.
En general en la teora de la complejidad de problemas, es de suma importan-
cia para la mayora de los investigadores, el encontrar siempre el algoritmo
m as eciente (normalmente signica el mas rapido) que resuelva su problema
de estudio.
Las preguntas m as importantes que podemos hacernos acerca de un algoritmo
son:
Si hace correctamente lo que tiene que hacer cuando recibe una entrada
de datos validos
Si su estructura es la adecuada
Si tardara poco o demasiado en arrojar un resultado
Si requiere una cierta cantidad de espacio de memoria para almacenar
informacion como datos, arreglos y variables de programaci on
Los cientcos de las ciencias de la computacion han medido la complejidad
de los algoritmos a traves de estos dos ultimos conceptos (tiempo y espacio),
los cuales ofrecen una medida clara de la complejidad algortmica.
Por muy bueno que sea un algoritmo, este podra ser in util para algunos
tipos de datos de entrada Debido a que podra requerir una gran cantidad
de memoria para almacenamiento no siendo suciente la que se tenga, o bien
podra tardar un tiempo considerablemente grande (a nos) para obtener un
resultado.
Debido a esto es de suma importancia el poder estimar las necesidades de
estos recursos en cualquier algoritmo.
Los requisitos de tiempo y espacio de un algoritmo son funcion de la cantidad
de datos de entrada De aqu que el problema de complejidad se convierta solo
en:
Dados un algoritmo y sus datos de entrada, determinar el tiempo y el espacio
requeridos para su ejecucion.
El crecimiento de la complejidad de un algoritmo depende del tama no de la
entrada, principalmente para entradas muy grandes (n >> 1000), donde en
este tipo de entradas se encuentra el principal interes de la complejidad de
los algoritmos.
Con el proposito de poder obtener una medida de la eciencia de un algorit-
mo (optimizaci on de recursos como tiempo y memoria) es de utilidad evaluar
cotas superiores para los par ametros de ejecucion en lugar de precisar los va-
lores de estos par ametros. Tales estimaciones se pueden expresar bajo ciertas
notaciones.
Para tratar con velocidades de crecimiento de complejidad en las funciones,
se emplea la siguiente nomenclatura:

20
Captulo 2 - Problemas y su clasificaci on - Tema 2.2
Sean f(n) y g(n) funciones reales denidas sobre los n umeros naturales.
1. Se dice escribe f(n) = O(g(n)) si existe una constante c > 0 tal que,
para grandes entradas de n, f(n) <= cg(n).
2. Se escribe f(n) = W(g(n)) si existe una constante c > 0 tal que, para
grandes entradas de n, f(n) >= cg(n). Siendo esto el inverso de (a).
3. Se escribe f(n) = Q(g(n)) si existen las constantes c1, c2 > 0 tal que,
para grandes entradas de n, c1g(n) <= f(n) <= c2g(n). Esto es, para
ambos f(n) = O(g(n)) y g(n) = O(g(n)) se mantienen
4. Se escribe f(n) = o(g(n)) si f(n) = 0 en un n umero nito de sitios y
f(n)/g(n) > 0 si n > a.
En general podemos clasicar a los algoritmos por su grado de complejidad
como:
Polinomiales
Exponenciales
Las caractersticas de los algoritmos exponenciales, son que su rapidez de
crecimiento (en funcion de su entrada n) en cuanto a requerimiento de tiempo
y/o memoria son muy grandes, mientras que en los polinomiales los recursos
requeridos se incrementan mucho mas lentamente.
2.2. Problemas tratables e intratables
Teora de la computaci on
Es un area entre las Matematicas y la Computacion que estudia y dene de
manera formal los computos.

Computo
Es la obtencion de una solucion o resultado (generalmente en el sen-
tido matem atico/aritmetico del termino), a partir de ciertos datos o
entradas utilizando para ello un proceso o algoritmo.
Denicion (2.1 - C omputo)

21
Captulo 2 - Problemas y su clasificaci on - Tema 2.2
Complejidad computacional
Es la rama de la teora de la computacion que estudia, de manera te orica,
los recursos requeridos durante el computo de un algoritmo para resolver un
problema.
Los recursos com unmente estudiados son el tiempo (mediante una aproxima-
cion al n umero y tipo de pasos de ejecucion de un algoritmo para resolver un
problema) y el espacio (mediante una aproximacion a la cantidad de memoria
utilizada para resolver un problema).
Metas de la complejidad computacional
Proporcionar un metodo para cuanticar la dicultad de un problema
en un sentido absoluto
Proporcionar un metodo para comparar la dicultad relativa entre dos
problemas diferentes
Ser capaz de denir rigurosamente el signicado de un algoritmo e-
ciente
.

Problema
Es un conjunto de preguntas relacionadas, donde cada pregunta se
representa por una cadena de caracteres de tama no nito.
Denicion (2.2 - Problema)
Los problemas que tienen una solucion con orden de complejidad lineal son
los problemas que se resuelven en un tiempo que se relaciona linealmente con
su tama no.
Hoy en da las computadoras (que son Maquinas Determinsticas) resuelven
problemas mediante algoritmos que tienen como m aximo una complejidad o
un costo computacional polin omico, es decir, la relaci on entre el tama no del
problema y su tiempo de ejecucion es polin omica.
Los problemas que no pueden ser resueltos por Maquinas Determinsticas,
en general poseen costos factorial o combinatorio pueden ser procesados por
una Maquina No-Determinista.
Estos problemas no tienen una solucion pr actica, es decir, una maquina deter-
minstica (como una computadora actual) no puede resolverlos en un tiempo
razonable.
Podemos denir la complejidad como la cantidad de recursos necesarios para
hallar la solucion a:
Un problema

22
Captulo 2 - Problemas y su clasificaci on - Tema 2.2
Un algoritmo
Un proceso de calculo
Si se toma una instancia con entrada de longitud n que puede resolverse en
n
2
pasos, se dice que ese problema tiene una complejidad en tiempo de n
2
.
Por supuesto, el n umero exacto de pasos depende de la m aquina en la que se
implementa, del lenguaje utilizado y de otros factores.
Para no tener que hablar del costo exacto de un calculo se utiliza la notaci on
O. Cuando un problema tiene costo en tiempo O(n
2
) en una conguraci on de
computador y lenguaje dado, este costo sera el mismo en todos los compu-
tadores, de manera que esta notacion generaliza la nocion de costo indepen-
dientemente del equipo utilizado.
Ejemplos
Extraer un elemento de un vector. La indexacion en un vector (arreglo)
lleva el mismo tiempo sea cual fuere el ndice que se quiera buscar, por
tanto es una operacion de complejidad constante O(n).
Buscar en un diccionario tiene complejidad logartmica. Se puede iniciar
la b usqueda de una palabra por la mitad del diccionario. Inmediata-
mente se sabe si se ha encontrado la palabra o, en el caso contrario, en
cu al de las dos mitades hay que repetir el proceso (es un proceso recur-
sivo) hasta llegar al resultado. En cada (sub)b usqueda el problema (las
paginas en las que la palabra puede estar) se ha reducido a la mitad,
lo que se corresponde con la funcion logartmica. Este procedimien-
to de b usqueda (conocido como b usqueda binaria) en una estructura
ordenada tiene complejidad logartmica O(lnn).
El proceso m as com un para ordenar un conjunto de elementos tiene
complejidad cuadratica. El procedimiento consiste en crear una colec-
cion vaca de elementos. A ella se a nade, en orden, el menor elemento
del conjunto original que a un no haya sido elegido, lo que implica hacer
un recorrido completo del conjunto original (O(n), siendo n el n umero
de elementos del conjunto). Este recorrido sobre el conjunto original se
realiza hasta que todos sus elementos estan en la secuencia de resul-
tado. Se puede ver que hay que hacer n selecciones (se ordena todo el
conjunto) cada una con un coste n de ejecucion: el procedimiento es
de orden cuadratico O(n
2
). Aunque hay que se nalar que existen otros
algoritmos de ordenaci on con mejores resultados.
Dado un algoritmo que resuelve un problema, es razonable y recomendable
preguntarse si no existir a un algoritmo m as eciente para el mismo problema

23
Captulo 2 - Problemas y su clasificaci on - Tema 2.3
el objetivo fundamental de la Complejidad Computacional es clasicar los
problemas de acuerdo a su tratabilidad , tomando el o los algoritmos m as
ecientes para resolverlos.
Esto es, poder determinar las respuestas a las siguientes preguntas:
Cuan tratable es el problema?
Y, si el problema es tratable
Es el algoritmo sucientemente eciente?
Si se demuestra que el problema no admite soluciones mejores, entonces se
puede armar que el algoritmo es eciente.
Problema tratable
Es aquel para el cual existe UN programa que resuelve el problema y pro-
porciona soluciones para entradas de tama no grande (que son aquellas que
requieren de un esfuerzo o de unos recursos muy elevados).

Problema
tratable
En cuanto al tipo de solucion, si un problema admite una solucion polinomial
entonces se trata de un problema tratable.
Problema presuntamente intratable
_

Problema
presuntamente
intratable
Es aquel para el cual no existe NINGUN programa CONOCIDO que re-
suelve el problema y proporciona soluciones para entradas de tama no grande.
Problema intratable

Problema
intratable
Es aquel para el cual no existe NINGUNprograma que resuelve el problema
proporciona y soluciones para entradas de tama no grande.
En cuanto a su tipo de solucion, si un problema no admite una solucion
polinomial entonces se trata de un problema intratable.
El lmite de tratabilidad entre algoritmos polinomiales y super-polinomiales
es arbitrario, pero mayoritariamente aceptado.
Por ejemplo, 1, 00001
n
o n
log
2
n
seran intratables, mientras que algoritmos
de n
10000
o 100000000000n sera tratables, aunque estas funciones extremas
raramente aparecen en casos reales como tiempo de ejecucion de algoritmos.
2.3. Medicion de la eciencia de los algorit-
mos
Los dos recursos principales que determinan la eciencia de un algoritmo son:
Tiempo (pasos, operaciones elementales, ...). La complejidad temporal
de un problema es el n umero de pasos que toma resolver una instan-
cia de un problema, a partir del tama no de la entrada utilizando el
algoritmo m as eciente a disposicion.

24
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Espacio (celdas, posiciones de memoria). La complejidad espacial de un
problema es el espacio de memoria que se requiere para resolver una
instancia de un problema, a partir del tama no de la entrada utilizando
el algoritmo m as eciente a disposicion.
\ n 10 50 100 300 1000
funcion
5n 50 250 500 1500 5000
nlog
2
n 33 282 665 2469 9966
n
2
100 2500 10000 90000 7 dg.
n
3
1000 125000 7 dg. 8 dg. 10 dg.
2
n
1024 16 dg. 31 dg. 91 dg. 302 dg.
n! 7 dg. 65 dg. 161 dg. 623 dg. inimaginable
n
n
11 dg. 85 dg. 201 dg. 744 dg. inimaginable
Tabla 2.1: Tabla comparativa de operaciones
En el caso de la eciencia temporal una comparacion: el n umero de protones
en el universo es de 79 dgitos, y suponiendo que se ejecutan k instrucciones
por seg. los algoritmos tardaran (ver tabla 2.2):
\ n 10 20 50 100 300
funcion
n
2
0.1 mseg. 0.4 mseg. 2.5 mseg. 0.01 seg. 0.09 seg.
n
5
0,1 seg. 3,2 seg. 5,2 min. 2,8 hs. 28,1 das
2
n
1 mseg. 1 seg. 35,7 a nos 400 billones siglos ???
n
n
2,8 hs. 3.3 billones a nos ??? ??? ???
Tabla 2.2: Tabla comparativa en tiempo
Otra comparacion: se considera que el Big Bang ocurrio hace aproximada-
mente 15.000 millones de a nos (en seg. un n umero de 24 digitos).
2.4. Maquina de Turing

Maquina de
Turing
La m aquina de Turing (MT) es un modelo computacional (una maquina
ideal) concebida por Alan Turing en el cual se estudia la cuestion de si existe

25
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
un metodo denido
*
que pueda aplicarse a cualquier sentencia matem atica y
que nos diga si esa sentencia es cierta o no.
Mediante este modelo formal Turing demostr o que existan problemas que
una m aquina no poda resolver, la MT es un modelo matem atico abstracto
que formaliza el concepto de algoritmo, y que se basa en dos idealizaciones:
Considera una memoria innita (ilimitada)
Esta maquina nunca comete errores
Las dos tesis centrales para comprender que es una m aquina de Turing, as co-
mo los conceptos te oricos que aparecen asociados a ellas son:
Tesis 1
((Todo problema que pueda resolverse algortmicamente, puede ser resuelto
por una m aquina de Turing))
Conceptos asociados a la Tesis 1:
Algoritmo - conjunto de reglas que aplicadas de forma mec anica pueden
resolver un problema de una clase dada, fundamentalmente matem aticos.

Algoritmo
Calculo - Toda operacion que se desarrolle mediante manipulaci on de
smbolos en un medio de representaci on dado. Las operaciones simbolicas son
at omicas, esto es, absolutamente simples y se realizan en una computadora.

Calculo
La acci on de la computadora va a depender de los smbolos que tenga el
sistema y del estado interno en el que se encuentra el computador.
Tesis 2
((Toda funcion computable puede ser computada por una m aquina de Turing.
Todo problema que puede ser resuelto por metodos algortmicos puede ser
resuelto por una m aquina de Turing))
Conceptos asociados a la Tesis 2:
Funcion computable - Clases de problemas que pueden ser resueltos
algortmicamente, esto es, si al algoritmo se le dan los argumentos correspon-
dientes, entonces computar a esos valores terminando la tarea en un n umero
nito de pasos.
*
En matematicas se considera que un metodo o procedimiento es efectivo para obtener
un resultado cuando se cumple que:
(i) El metodo puede ser expresado mediante un n umero nito de instrucciones concretas;
(ii) Cada instruccion puede ser expresada por un n umero nito de smbolos
(iii) El metodo puede ser seguido sin error para conseguir el resultado en un n umero
nito de pasos
(iv) El metodo puede ser seguido (al menos teoricamente) por un humano sin mas ayuda
que un papel y lapiz, y no exige ninguna habilidad o inteligencia especial por parte de
la persona que lo ejecuta.

26
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Descripci on fsica
La MT consta de un cabezal lector/escritor y una cinta innita en la que el
cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor.
Las operaciones que se pueden realizar en esta m aquina se limitan a:
Avanzar el cabezal lector/escritor hacia la derecha.
Avanzar el cabezal lector/escritor hacia la izquierda.
El computo es determinado a partir de una tabla de estados de la forma:
(estado actual, valor leido) (nuevo valor, accion, nuevo estado) (2.1)
Esta tabla toma como par ametros el estado actual de la m aquina el valor
ledo de la cinta, el nuevo valor a ser escrito en la cinta, la acci on (direccion
en la que se mover a el cabezal) y el nuevo estado de la m aquina.
Con este aparato es posible realizar cualquier computo que una computadora
digital sea capaz de realizar, de hecho, se puede probar matem aticamente que
para cualquier programa de computadora es posible crear una MT equiva-
lente.
La memoria se divide en espacios de trabajo denominados celdas, donde se
pueden escribir y leer smbolos.
Inicialmente todas las celdas contienen un smbolo especial denominado blan-
co (#). Las instrucciones que determinan el funcionamiento de la m aquina
tienen la forma, si estamos en el estado x leyendo la posicion y, donde hay
escrito el smbolo z, entonces este smbolo debe ser reemplazado por este otro
smbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la de-
recha y ubicarse en un nuevo estado q.
Descripci on l ogica
Una MT con una sola cinta puede ser denida como una 6-tupla
**
M = {Q, , s, #, F, } (2.2)
donde:
Q: es un conjunto nito de estados
: es un conjunto nito de smbolos de cinta (el alfabeto de cinta).
**
En matematicas es una secuencia ordenada de objetos, esto es, una lista con un n umero
limitado de objetos (una secuencia innita se denomina en matematicas como una familia).
Las tuplas se emplean para describir objetos matematicos que tienen estructura, es decir
que son capaces de ser descompuestos en un cierto n umero de componentes.

27
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
s: estado inicial (s Q)
#: es un smbolo denominado blanco, y es el unico smbolo que se puede
repetir un n umero innito de veces (# )
F: es el conjunto de estados nales de aceptaci on (F Q)
: es una funcion parcial denominada funcion de transicion, donde L es
un movimiento a la izquierda y R es el movimiento a la derecha
: Q Q {L, R} (2.3)

28
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Se va a implementar una MT que realize un conteo en binario, su
alfabeto esta formado por todos los diferentes smbolos del codigo
binario (es decir 0 y 1), su conjunto de estados lo forman las transi-
ciones que se pueden dar entre smbolos diferentes (de 0 a 1 y de 1 a
0).
La m aquina debe comenzar el conteo con una cinta en blanco (todas
las celdas deben contener #), su estado inicial es 0, y deber a ir
incrementando la cantidad, el estado nal depende de la cantidad
contada (puede ser 0 o 1).
Formalizando:
= {0, 1}
Q = {0, 1}
s = {0}
F = {0, 1}
Funcionamiento
Al inicio todas las celdas de la cinta estan vacas y la maquina se
encuentra en su estado inicial (0).
A continuacion se va a iniciar el conteo la maquina esta en el estado
0, escribe un 1, se mueve hacia la derecha (para vericar el punto de
incio de la cantidad) y pasa al estado 1.
Ejemplo (2.2.1)

29
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Ahora esta en el estado 1, lee un blanco, escribe un blanco, se mueve
a la izquierda y cambia al estado 0.
Ahora esta en el estado 1 lee un 1, escribe un 0, se mueve a la izquierda
y cambia al estado 0.
Ahora esta en el estado 0 lee un #, escribe un 1, se mueve a la derecha
y cambia al estado 1.
Ahora esta en el estado 1 lee un 0, escribe un 0, se mueve a la derecha
(para vericar el punto de incio de la cantidad) y cambia al estado 0.
Ejemplo (cont...2.2.1)

30
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Se ha completado el conteo (se usaron todos los smbolos del sistema)
y se gener o el primer acarreo, por lo que se completo el n umero de
reglas que requiere la MT.
Se puede plantear una tabla de reglas para este conteo, a continuacion
se ordenan dichas reglas iniciando por estado y todas las posibles
combinaciones para cada uno (ver Tabla 2.3).
Ejemplo (cont...2.2.1)
Estado inicial Lee Escribe Movimiento Estado siguiente
0 # 1 Derecha 1
0 0 1 Derecha 1
0 1 0 Izquierda 0
1 # # Izquierda 0
1 0 0 Derecha 1
1 1 1 Derecha 1
Tabla 2.3: Tabla de Conteo binario

31
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
Se va a implementar una MT que realize una multiplicaci on binaria
de los numeros 10110
2
y 101
2
, mediante sumas repetidas, su alfabeto
esta formado por todos los diferentes smbolos del codigo binario (es
decir 0 y 1), y los caracteres x y y, su conjunto de estados es de 17
transiciones que se pueden dar entre smbolos diferentes (de 0 a 1 y
de 1 a 0).
A continuacion sus reglas:
0 # # R 20; 9 # y R 6;
0 0 1 L 0; 9 0 y R 6;
0 1 0 L 2; 9 1 x L 10;
2 # # L 3; 9 x x L 9;
2 0 0 L 2; 9 y y L 9;
2 1 1 L 2; 10 # 1 R 6;
3 # # L 11; 10 0 1 R 6;
3 0 x L 4; 10 1 0 L 10;
3 1 y L 8; 11 # # R 12;
4 # # L 5; 11 0 0 R 12;
4 0 0 L 4; 11 1 1 R 12;
4 1 1 L 4; 11 x x L 11;
5 # x R 6; 11 y y L 11;
5 0 x R 6; 12 # # R 13;
5 1 y R 6; 12 x 0 R 12;
5 x x L 5; 12 y 1 R 12;
5 y y L 5; 13 # # R 14;
6 # # R 7; 13 x 0 R 13;
6 0 0 R 6; 13 y 1 R 13;
6 1 1 R 6; 14 # # L 0;
6 x x R 6; 14 0 0 R 14;
6 y y R 6; 14 1 1 R 14;
7 0 0 R 7; 20 # # L 21;
7 1 1 R 7; 20 0 0 R 20;
7 x x L 3; 20 1 1 R 20;
7 y y L 3; 21 # # L 22;
8 # # L 9; 21 0 # L 21;
8 0 0 L 8; 21 1 # L 21;
8 1 1 L 8; 22 # # L -1;
22 0 # L 22;
22 1 # L 22;
Ejemplo (2.2.2)
Maquinas de Turing determnisticas y no determnisticas
La entrada de una m aquina de Turing esta determinada por el estado actual
y el smbolo ledo, un par [estado, smbolo], siendo el cambio de estado, la
escritura de un nuevo smbolo y el movimiento las acciones a tomar en funcion
de una entrada.
En el caso de que para cada par estado y smbolo posible exista a lo sumo una
posibilidad de ejecucion, se dira que es una Maquina de Turing determnistica
(MTD), mientras que en el caso de que exista al menos un par [estado,

32
Captulo 2 - Problemas y su clasificaci on - Tema 2.4
smbolo] con m as de una posible combinacion de actuaciones se dir a que se
trata de una Maquina de Turing no determnistica (MTND).
La funcion de transicion en el caso de la MTND, queda denida como
sigue:
: Q P(Q {L, R}) (2.4)
C omo sabe una MTND cu al de las varias actuaciones tomar?
Hay dos formas: una es decir que la m aquina es el mejor adivino posible, esto
es, que siempre elige la transicion que eventualmente la llevar a a un estado
nal de aceptaci on.
La otra es imaginarse que la m aquina se clona, bifurc andose en varias copias,
cada una de las cuales sigue una de las posibles transiciones.
Mientras que una MTD sigue un solo camino computacional, una MTND
tiene un arbol computacional. Si cualquiera de las ramas del arbol naliza en
un estado de aceptaci on, se dice que la m aquina acepta la entrada.
La capacidad de computo de ambas versiones es equivalente; se puede de-
mostrar que dada una MTND existe otra MTD equivalente, en el sentido
de que reconoce el mismo lenguaje, y viceversa.
No obstante, la velocidad de ejecucion de ambos formalismos no es la misma,
pues si una MTND reconoce una cierta palabra de tama no n en un tiempo
O(t(n)), la MTD equivalente reconocera la palabra en un tiempo O(2t(n)).
Es decir, el no determinismo permitir a reducir la complejidad de la solucion
de los problemas, permitiendo resolver, por ejemplo, problemas de compleji-
dad exponencial en un tiempo polin omico

33
Captulo 2 - Problemas y su clasificaci on - Tema 2.5
2.5. Problemas P y NP
Problemas P

Problema P
Los problemas con una clase de complejidad P son aquellos problemas de
decisi on (problemas que tienen como respuesta SI o NO) que pueden ser
resueltos en una MTD con un costo computacional polin omico(es decir, la
relaci on entre el tama no del problema y su tiempo de ejecucion es polin omi-
ca), que son aquellos que pueden resolverse a un en el peor de sus casos.
Los algoritmos de complejidad polin omica se dice que son tratables en el sen-
tido de que suelen ser abordables en la pr actica, forman la clase P. Aquellos
problemas para los que la mejor solucion que se conoce es de complejidad
superior a la polin omica, se dice que son problemas intratables.
Los algoritmos que resuelven los problemas P son determinsticos, P contie-
ne a la mayora de problemas naturales, algoritmos de programaci on lineal,
funciones simples,...
Problemas NP

Problema NP
Los problemas de clase de complejidad NP son aquellos problemas de deci-
sion ( de orden factorial o combinatorio) que pueden ser resueltos por una
MTND en un tiempo polin omico.
Algunos de los problemas intratables pueden caracterizarse por el hecho de
que puede aplicarse un algoritmo polin omico para comprobar si una posible
solucion es v alida o no.
Esta caracterstica lleva a un metodo de resolucion no determinista consis-
tente en aplicar heursticas para obtener soluciones hipoteticas que se van
desestimando (o aceptando) a ritmo polin omico. A este tipo de problemas
se les denominan NP. Los algoritmos que resuelven los problemas NP son
no-deterministas.
La clase NP incluye una gran cantidad de problemas pr acticos que aparecen
en la actividad empresarial e industrial.

34
Captulo 2 - Problemas y su clasificaci on - Tema 2.6
2.6. Problemas NP Completos y necesidad
de las heursticas
Se conoce una amplia variedad de problemas de tipo NP, de los cuales desta-
can algunos de ellos por su extrema complejidad denominados NP-completos.
Problemas NP-completos

Problemas
NP-completos
Gr acamente se puede decir que algunos problemas se hayan en la frontera
externa de la clase NP. Son problemas NP, y son los peores problemas
posibles de clase NP. Estos problemas se caracterizan por ser todos iguales
en el sentido de que si se descubriera una solucion P para alguno de ellos,
esta solucion sera facilmente aplicable a todos ellos.
La propiedad de la clase NP-completo es que todo problema de la clase
NP se puede transformar polinomialmente en el.
Sin embargo, los problemas de optimizacion no se encuentran, en general, en
la clase NP y, por tanto, puede que no sean NP-completos.
Es as porque, en general, no es posible comprobar si se ha conseguido una
solucion optima en un n umero de pasos que sea funcion polinomial del tama no
del problema.
As pues, se dice que un problema es NP-completo si:
Est a en la clase NP y
Es NP-hard.
Por tanto un problema es NP-completo si es tan difcil de resolver o m as
que cualquier otro problema en la clase NP.
Si se descubriera una solucion para los problemas NP-completos, esta sera
aplicable a todos ellos y, por tanto, la clase NP desaparecera al carecerse
de problemas de ese tipo. Realmente, tras a nos de b usqueda exhaustiva de
dicha solucion, es hecho ampliamente aceptado que no debe existir, aunque
nadie ha demostrado, todava, la imposibilidad de su existencia.
Muchos de los problemas de la clase NP son problemas muy comunes, que
aparecen de forma habitual en distintos areas de la ingeniera e incluyen, entre
otros, problemas de partici on de conjuntos, dise no de redes, planicaci on,
optimizacion, recuperacion de informacion, etc..
Coloreo de Grafos
Circuito Hamiltoniano
Programacion de tareas con castigo

35
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
Empacamiento
Problema de la mochila
Satisfactibilidad
Agente Viajero
Problemas NP-duros (hard)

Problemas
NP-hard
Esta clase puede ser descrita como conteniendo los problemas de decisi on que
son al menos tan difciles como un problema de NP.
Esto se justica porque si podemos encontrar un algoritmo A que resuelve
uno de los problemas H de NP-hard en tiempo polin omico, entonces es po-
sible construir un algoritmo que trabaje en tiempo polin omico para cualquier
problema de NP ejecutando primero la reducci on de este problema en H y
luego ejecutando el algoritmo A.
La clase NP-completo puede denirse alternativamente como la intersec-
cion entre NP y NP-hard.
En la mayora de los casos solo es posible comprobar que un problema per-
tenece a la clase NP-hard comparando su solucion con todo el conjunto de
soluciones del problema. Si el conjunto de soluciones crece exponencialmen-
te con el tama no del problema resulta evidente que la comprobaci on no se
puede llevar a cabo en tiempo polinomial.
Por lo anterior resulta indiscutible que para los problemas de optimizacion
NP-hard no existe ning un algoritmo en tiempo polinomial que permita de-
terminar la solucion optima al problema.
Por ello se utilizan metodos aproximados mediante heursticas que permiten
aproximarse a una solucion optima, generando soluciones factibles al proble-
ma que resulten de utilidad pr actica.
Figura 2.1: Espacio del problema

36
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
2.7. Ejercicios
A continuacion se describir an brevemente tres problemas tpicos del tipo de
problemas que la IA busca solucionar.
Estos problemas representan situaciones cotidianas aparentemente simples
pero cuya solucion implica el uso de heursticas ya que un enfoque deter-
minstico signicara un un despliegue inmenso de recursos o en algunos casos
ni siquiera existe una herramienta denida para su solucion.
El Problema del Agente Viajero
Dadas N ciudades de un area especca, encontrar una ruta que, comenzando
y terminando en una ciudad concreta, pase una sola vez por cada una de las
ciudades y minimice la distancia recorrida por el viajero. Es decir, encontrar
una permutaci on P = {c
0
, c
2
, ...c
n1
} tal que:
d
P
=
N1

i=0
d[c
i
, c
i+1mod(N)
] (2.5)
sea mnimo.
La distancia entre cada ciudad esta dada por la matriz D: NxN, en donde
d[x, y] representa la distancia que hay entre la ciudad X y la ciudad Y.
La solucion determnistica es considerar todas las posibles combinaciones de
recorridos y quedarse con aquella cuyo trazado implica la menor distancia.
El problema reside en el n umero de posibles combinaciones que esta dado
por el factorial del n umero de ciudades (N!) y esto hace que la solucion
determnistica no sea practica para valores de N grandes.
Por ejemplo, las rutas posibles entre 12 ciudades son 479.001.600 (479 millo-
nes) combinaciones y los caminos individuales entre ciudades son la sumatoria
de las 12-1 ciudades es decir 66.
Desde el punto de vista pr actico, el problema no esta resuelto y desde el
punto de vista te orico, las tecnicas empleadas son solo aproximaciones.
No suponen una resolucion real del TSP y solo ofrecen soluciones aproxi-
madas sucientemente aceptables. Los algoritmos clasicos no resuelven el
problema general, por la explosion combinatoria de las posibles soluciones.
Matematicamente:
Es un problema NP-duro, que requiere de heursticas adecuadas que acoten
el problema. Si tenemos un parte de ruta, de las diferentes alternativas que
existen en esa ruta la mejor es la que nos estime completar la menor ruta.
Esa estimaci on puede ser difcil de hacer, pero si es optimsta (subestima
consistentemente el costo real) entonces el que de la mejor estimaci on es el
mejor.

37
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
Hay algoritmos que se basan en una conguracion concreta del problema.
Por ejemplo, algunos algoritmos de ramicaci on y consolidaci on se pueden
utilizar para resolver problemas de entre 40 a 60 ciudades.
Otros han mejorado a estos con tecnicas de programaci on lineal que permiten
resolver el TSP para valores de N entre 120 y 200 ciudades.
En el a no 2001 se utiliz o una red de 110 computadoras para resolver el TSP
para las 15.112 poblaciones de Alemania y utilizando el equivalente compu-
tacional a 22,5 a nos de un PC.
Otra Formulacion del Problema
Una formulacion equivalente en terminos de la teora de grafos es la de en-
contrar en un grafo completamente conexo y con arcos ponderados el ciclo
hamiltoniano de menor coste. En esta formulacion cada vertice del grafo re-
presenta una ciudad, cada arco representa una carretera y el peso asociado
a cada arco representa la longitud de la carretera.
Figura 2.2: Representaci on gr aca del TSP
Aplicaciones
El problema tiene considerables aplicaciones pr acticas, a continuacion algu-
nas de ellas:
a) Logstica de transporte
b) Negocios de reparto
c) Robotica
d) Control y operativa optimizada de sem aforos, etc.

38
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
El Problema de las 8 Reinas
Fue propuesto por el ajedrecista aleman Max Bezzel en 1848. En el ajedrez
una reina (o dama) puede eliminar a aquellas piezas contrincantes que esten
en su misma la, columna o diagonal
Figura 2.3: Movimientos permitidos de la Reina en el Ajedrez
El problema consiste en colocar 8 reinas en un tablero de ajedrez sin que se
ataquen. Una posibilidad es intentar lograr una solucion de manera incre-
mental, acerc andose a la meta poco a poco siguiendo una serie de decisiones
locales basadas en la informacion obtenida durante el proceso.
Hay que asegurarse que la secuencia de transformaciones sea sistem atica,
para:
1. No generar conguraciones repetidas y
2. No excluir conguraciones deseables.
Por ejemplo el hecho de que deba de haber solo una reina por columna nos
reduce el n umero de alternativas a menos de 8 en cada rengl on:
Figura 2.4: Reinas por columna

39
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
El hecho de que se pueda sistematizar la b usqueda de esta forma signi-
ca que no puede haber recuperacion de violaciones a restricciones mediante
operaciones futuras.
O sea que una vez que se viola una restriccion no se puede seguir a nadiendo
m as reinas para recticarla.
El problema de las ocho reinas tiene 92 soluciones, de las cuales 12 son
esencialmente distintas, es decir las 92 soluciones existentes se pueden obtener
a partir de simetras, rotaciones y traslaciones de las 12 soluciones unicas,
que se muestran a continuacion:
Figura 2.5: Soluciones esencialmente distintas
Denicion del problema
La denici on formal del problema de las 8-reinas es la que se presenta a
continuacion:
1. El estado inicial esta dado por una de las posibles conguraciones de
las 8 reinas sobre un tablero 8x8.
2. El operador: a nadir una reina a cualquier casilla.

40
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
3. El test del objetivo se cumple cuando se alcanza el estado meta, o
sea, cuando las 8 reinas estan sobre el tablero de forma que no estan
amenazadas entre s.
4. El costo de cada una de las operaciones es uniforme e igual a uno. El
costo del camino sera la suma de los costos de las operaciones aplicadas
hasta alcanzar la solucion
Aplicaciones
Algunas aplicaciones posibles son:
Control de tr aco aereo
Sistemas de Comunicaciones
Programacion de tareas computacionales
Procesamiento paralelo optico
Compresion de datos
Balanceo de carga en un computador multiprocesador
Ruteo de mensajes o datos en un computador multiprocesador
Un ejemplo pr actico de una aplicacion del problema de las 8 reinas es el
siguiente:
Para lograr el mayor ancho de banda posible en un sistema de comunicaciones
de banda estrecha y direccional se deben ubicar los 8 transceptores de forma
tal que no se intereran en entre ellos.
Con los 8 transceptores ubicados en patrones sin conicto, lo que corres-
ponde a una solucion del problema de las 8 reinas, cada transceptor puede
comunicarse con el mundo exterior en forma libre en 8 direcciones sin que
sea inhibido por otro transceptor.
La siguiente distribucion corresponde a una de las soluciones del problema
de las 8 reinas.
Extension del problema
El problema puede extenderse a n reinas en un tablero de nn y la solucion
puede obtenerse en dos versiones, la m as simple consiste en encontrar exac-
tamente una solucion v alida para un valor n dado, la otra versi on m as difcil
consiste en encontrar todas las soluciones posibles para un valor n.
Para un valor de n = 1, la solucion es 1, para n = 2 y n = 3 no tiene
soluciones, en la siguiente tabla se muestran las soluciones para 4 n 20.

41
Captulo 2 - Problemas y su clasificaci on - Tema 2.7
Figura 2.6: Ubicaci on de 8 Transmisores/Receptores sin conicto entre ellos
n Q(n)
4 2
5 10
6 4
7 40
8 92
9 352
10 724
11 2,680
12 14,200
13 73,712
14 365,596
15 2,279,184
16 14,772,512
17 95,815,104
18 666,090,624
19 4,968,057,848
20 39,029,188,884
Tabla 2.4: N umero total de soluciones Q(n) para 4 n 20

42
Bibliografa
[Diccionario Larousse, 2003] Diccionario Larousse, Edici on Premium, EDI-
CIONES LAROUSSE M

EXICO y SPS EDITORIAL BARCELONA,


(2003).
[Legg & Hutter, 2007] Shane Legg, Marcus Hutter; A Collection of
Denitions of Intelligence; Technical Report; IDSIA-Switzerland,
RSISE/ANU/NICTA-Australia; (2007).
[A.M.Turing, 1950] A. M. Turing; Computing Machinery and Intelligence;
Mind 49; pp 433-460; (1950).
[Minsky 1982] Minsky Marvin; Why People Think Computers Cant; MIT
Cambridge, Massachusetts; THE AI MAGAZINE Fall 1982.
43

También podría gustarte