martes, 10 de febrero de 2009

VENTAJAS Y DESVENTAJAS DE LOS SISTEMAS EXPERTOS


Ventajas y Desventajas de los Sistemas Expertos
A la hora de tomar la decisión de desarrollar un Sistema Experto, se deben analizar las distintas ventajas y desventajas que estos tienen.
Ventajas
Entre las principales ventajas de un Sistema Experto, se pueden mencionar:
Los Sistemas Expertos que se codifican y tratan el conocimiento de un experto, alcanzan el nivel de prestaciones de un experto humano.
La separación entre base de conocimiento y motor de inferencia proporciona una gran flexibilidad al Sistema.
Los Sistemas Expertos permiten llegar a una reflexión sobre el conocimiento y los
procedimientos, para toma de decisiones realizados por los expertos.
Posibilidad de trazar el razonamiento seguido por el Sistema Experto.
Algunos Sistemas Expertos utilizan coeficientes de verosimilitud para ponderar sus deducciones [CAST].
En manipulación de
símbolos, los Sistemas Expertos abren el campo a nuevas aplicaciones, no automatizadas hasta la fecha [CAST].
Desventajas
Aunque son grandes las ventajas, no hay que dejar de lado las desventajas que se pueden presentar:
La
publicidad realizada alrededor de esta técnica seduce a muchas personas pero crea aspiraciones imposibles de satisfacer.
La extracción del conocimiento es el problema más complejo que se les plantea a los ingenieros de conocimientos.
Ciertos problemas están ligados a la representación del conocimiento.
Los SE son incapaces de reconocer un problema para el que su propio conocimiento es inaplicable o insuficiente.
Los motores de inferencia poseen algunos límites.
Las interfaces con usuarios no son lo suficientemente amigables.
Las aplicaciones suministradas por los SE son, frecuentemente, esotéricas.
Falta
personal competente para investigar y desarrollar aplicaciones.
Campo de aplicaciones restringido y específico.
El
costo es bastante alto.
Aunque se conozcan las ventajas y las desventajas de los Sistemas Expertos, no se logra una visión clara de los Sistemas Expertos y su capacidad, hasta que se conocen algunos ejemplos en aplicaciones reales.
Ejemplos de Sistemas Expertos
A continuación se presentan algunos Sistemas Expertos que se han desarrollado para la solución de diversos problemas.

-MYCIN es un Sistema Experto para la realización de diagnósticos en el área de la medicina, iniciado por Ed Feigenbaum y posteriormente desarrollado por E. Shortliffe y sus colaboradores. Su función es la de aconsejar a los médicos en la investigación y determinación de diagnósticos en el campo de las enfermedades infecciosas de la sangre[CRIA].
-XCON es un Sistema Experto para configuraciones, desarrollado por la Digital Equipment Corporation. Según los deseos individuales del cliente se configuran redes de ordenadores VAX. Ya que el abanico de productos que se ofrecen en el mercado es muy amplio, la configuración completa y correcta de un sistema de estas características es un problema de gran complejidad. Responde esencialmente a dos preguntas: ¿Pueden conjugarse los componentes solicitados por el cliente de forma conveniente y razonable? Y ¿Los componentes de sistema especificados son compatibles y completos?. Las respuestas a estas preguntas son muy detalladas. XCON es capaz de comprobar y completar los pedidos entrantes mucho más rápido y mejor que las personas encargadas de hacerlo antes que él [CRIA].
-DELTA, sistema experto que ayuda a los mecánicos en el diagnóstico y reparación de locomotoras diesel-eléctricas, DELTA no sólo da consejos expertos, sino que también presenta informaciones por medio de un reproductor de vídeo [IBAR].
En 1978 se desarrollo otro sistema experto de
éxito: PROSPECTOR. Este quizás impulso más la carrera por desarrollar mejores sistemas expertos, dado que su misión era predecir la posibilidad de encontrar depósitos de minerales en una región en concreto. Minerales como petróleo, gas natural, helio.
Conclusiones
La composición de un Sistema Experto, sus aplicaciones, ventajas y desventajas, y algunos ejemplos sobre estos; han sido los puntos generales que se han tratado a lo largo de este artículo, con el fin de crear una mayor
conciencia del uso real de este tipo de sistemas.
Un sistema experto puede, sin duda alguna, darnos el mismo resultado que un experto humano; lo que sí debemos reconocer es que ningún sistema experto, hasta ahora, puede resolver diferentes problemáticas dentro de
una empresa, ya que estos son siempre muy específicos. Sin embargo, es de esperarse que con los avances que tienen las herramientas tecnológicas se produzcan un desarrollo cercano al comportamiento humano en muchas áreas, con estos avances en el terreno de los negocios se podría ser más eficiente y productivo.
A pesar de los dramáticos avances logrados, la inteligencia artificial no ha sido capaz de desarrollar sistemas capaces de resolver problemas de tipo general, de aplicar sentido común para la solución de situaciones complejas, de manejar situaciones ambiguas ni de utilizar efectivamente información incompleta

martes, 3 de febrero de 2009

¿Cómo podríamos hacer para que una máquina piense?

Alguna vez un investigador mencionó que el cerebro no es mas que una máquina de carne. Tomando esta declaración, entonces porqué no lo podrá hacer el Silicio o el Germanio que son los materiales con los que se fabrican los chips.

El cerebro, en funcionamiento, está procesando información que se transmite por medio de impulsos electroquímicos activados por las neuronas que son las células de las cuales está constituido el cerebro y que almacenan la información y la difunden a otros sectores del cerebro donde sea requerido.

Existen unas 100 mil millones de neuronas en el cerebro humano aunque no todas se ocupan, de hecho a diario desde que cumplimos 20 años, se pierden unas 50 mil. Pero las neuronas tienen acciones propias, ¿cómo es que se las arreglan para diferenciar o dirigirse a algún lugar del cerebro y procesar un recuerdo, hacer un cálculo, mantener el latido del corazón, subir unas escaleras, sentir dolor, etcétera, etcétera?.

Dentro de cada chip o circuito integrado, existen los semiconductores en diferentes arreglos con los cuales nos dan una función específica. El fundamental, es el DIODO.

Este dispositivo permite que fluya o no, un impulso eléctrico, puede ser dicho impulso, lo que conocemos como (Bit), prendido o apagado, cero o uno.

La disposición de diodos en un circuito electrónico nos puede dar un TRANSISTOR, con el cual podemos tener por lo menos tres alternativas para que fluya un par de impulsos eléctricos. El transistor encapsula a los diodos y por eso está constituido como un solo dispositivo. Con un par de transistores ya se pueden hacer por lo menos efectos de luces secuenciales de Leds como los que vemos en adornos para autos.

Ahora bien, un conjunto de transistores conectados de determinadas formas y encapsulados nos dá una compuerta lógica. La compuerta lógica, es un dispositivo que constituye una serie de operaciones condicionadas para los impulsos eléctricos. Es decir, podemos tener muchos unos y ceros, prendidos y apagados, pasa o no pasa. Con una o dos compuertas lógicas ya se pueden hacer contadores de tiempo o sumadoras básicas, incluso chapas de seguridad electrónicas.
Un conjunto de compuertas lógicas a gran escala y de pequeña integración de encapsulado digamos de 4 X 4 cm, ya nos dá un microprocesador que puede realizar millones de instrucciones por segundo (MIPS), es decir, millones de encendidos y apagados, de unos y ceros, millones de bits procesándose.

Con un microprocesador ya podemos hacer computadoras, máquinas que realizan una tarea especifica en la superficie de un planeta como recoger material de su suelo envolverlo y analizarlo, viajar al espacio sin perder la dirección, detectar dónde hay luz y seguirla o dónde hay una colina y darle la vuelta o graduar el combustible necesario para expulsarlo por los inyectores de un auto, un avión o una nave espacial.

Pues bien, si el cerebro tuviera que hacerse con los microprocesadores, compuertas, transistores, diodos, etc, con los que actualmente contamos, tendría el tamaño de una central eléctrica y tardaría varios miles de años en terminarse.

LOGICA DIFUSA

La lógica borrosa o difusa se basa en lo relativo de lo observado. Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí. Así, por ejemplo, una persona que mida 2 metros es claramente una persona alta, si previamente se ha tomado el valor de persona baja y se ha establecido en 1 metro. Ambos valores están contextualizados a personas y referidos a una medida métrica lineal
Tipos de lógica
En la
lógica clásica una proposición sólo admite dos valores: verdadero o falso. Por ello se dice que la lógica usual es bivalente o binaria. Existen otras lógicas que admiten además un tercer valor posible (lógica trivaluada) e incluso múltiples valores de verdad (lógica multivaluada).
La lógica aristotélica sirve para explicar ciertos fenómenos y problemas, aunque la gran mayoría de ellos enmarcados en el mundo teórico de la
matemática. Por el contrario, la lógica difusa puede usarse para explicar el mundo en el que vivimos, puesto que sigue el comportamiento humano de razonar, sacando conclusiones a partir de hechos observados.
La lógica multivaluada incluye sistemas lógicos que admiten varios valores de verdad posibles.
La lógica difusa (o borrosa) es una de ellas, que se caracteriza por querer cuantificar esta incertidumbre: Si P es una proposición, se le puede asociar un número v(P) en el intervalo [0,1] tal que:
Si v(P) = 0, P es falso.
Si v(P) = 1, P es verdadero.
La veracidad de P aumenta con v(P).
Tomando el ejemplo de la definición, la persona más alta será M=2, y la más baja será M=1. La persona más alta será, por lo tanto, h(2)=Alto, y la más baja h(1)=Bajo. Es evidente que los valores manejados, se pueden catalogar según la lógica clásica a valores de Verdadero o Falso. Si h(M) = Alto (o Verdadero) entonces se producen una serie de consecuencias, si h(M) = Bajo (o Falso) entonces se producen una serie distinta de consecuencias. La dificultad viene cuando los grados pueden ser intermedios. Por ejemplo, de forma intermedia podemos decir que una persona que mida 1,82 m es alta con grado 0,75 indicando que es "bastante alta", teniendo en cuenta que la persona en cuestión sea masculina.
Salta a la vista la semejanza con la teoría de la
probabilidad, aunque la lógica difusa y esta última teoría persiguen fines distintos.
FUNCIONAMIENTO
La lógica difusa se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del corazón está un poco acelerado", etc.
La clave de esta adaptación al lenguaje, se basa en comprender los cuantificadores de nuestro lenguaje (en los ejemplos de arriba "mucho", "muy" y "un poco").
En la teoría de conjuntos difusos se definen también las operaciones de
unión, intersección, diferencia, negación o complemento, y otras operaciones sobre conjuntos (ver también subconjunto difuso), en los que se basa esta lógica.
Para cada conjunto difuso, existe asociada una función de pertenencia para sus elementos, que indican en qué medida el elemento forma parte de ese conjunto difuso. Las formas de las funciones de pertenencia más típicas son trapezoidal, lineal y curva.
Se basa en reglas heurísticas de la forma SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son también conjuntos difusos, ya sea puros o resultado de operar con ellos. Sirvan como ejemplos de regla heurística para esta lógica (nótese la importancia de las palabras "muchísimo", "drásticamente", "un poco" y "levemente" para la lógica difusa):
SI hace muchísimo calor ENTONCES disminuyo drásticamente la temperatura.
SI voy a llegar un poco tarde ENTONCES aumento levemente la velocidad.
Los métodos de inferencia para esta base de reglas deben ser simples, veloces y eficaces. Los resultados de dichos métodos son un área final, fruto de un conjunto de áreas solapadas entre sí (cada área es resultado de una regla de inferencia). Para escoger una salida concreta a partir de tanta premisa difusa, el método más usado es el del centroide, en el que la salida final será el centro de gravedad del área total resultante.
Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas por expertos, o bien aprendidas por el propio sistema, haciendo uso en este caso de
redes neuronales para fortalecer las futuras tomas de decisiones.
Los datos de entrada suelen ser recogidos por sensores, que miden las variables de entrada de un sistema. El motor de inferencias se basa en chips difusos, que están aumentando exponencialmente su capacidad de procesamiento de reglas año a año.
APLICACIONES
La lógica difusa se utiliza cuando la complejidad del proceso en cuestión es muy alta y no existen modelos matemáticos precisos, para procesos altamente no lineales y cuando se envuelven definiciones y conocimiento no estrictamente definido (impreciso o subjetivo).
En cambio, no es una buena idea usarla cuando algún modelo matemático ya soluciona eficientemente el problema, cuando los problemas son lineales o cuando no tienen solución.
Esta
técnica se ha empleado con bastante éxito en la industria, principalmente en Japón, y cada vez se está usando en gran multitud de campos. La primera vez que se usó de forma importante fue en el metro japonés, con excelentes resultados. A continuación se citan algunos ejemplos de su aplicación:
-Sistemas de control de acondicionadores de aire
-Sistemas de foco automático en cámaras fotográficas
-Electrodomésticos familiares (frigoríficos, lavadoras...)
-Optimización de sistemas de control industriales
-Sistemas de reconocimiento de escritura
-Mejora en la eficiencia del uso de combustible en motores
-Sistemas expertos del conocimiento (simular el comportamiento de un experto humano)
-Tecnología informática
-Bases de datos difusas: Almacenar y consultar información imprecisa. Para este punto, por ejemplo, existe el lenguaje
FSQL.
...y, en general, en la gran mayoría de los sistemas de control que no depend
en de un Sí/No.

RED NEURONAL

VIDEO DE REDES NEURONALES

REDES NEUERONALES

Las Redes Neuronales Artificiales (Artificial Neural Networks - ANNs) se constituyeron inicialmente como una simulación abstracta de los sistemas nerviosos biológicos formados por un conjunto de unidades llamadas neuronas o nodos conectados unos con otros. Las conexiones de estos nodos se asemejan a las dendritas y axones de los sistemas nerviosos biológicos.

Warren McCulloch y Walter Pitts desarrollaron en 1943 el primer modelo de red neuronal en términos de modelo sistemático de actividad nerviosa. El modelo se
caracteriza básicamente por ser binario, donde cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió de ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, FranK Rosenblatt, etc.
Las ANNs pueden clasificarse en modelos de tipo biológico y tipo dirigido a la aplicación de acuerdo a su similitud con la realidad biológica:

Modelos de Tipo Biológico.
Se constituyen en redes que tratan de simular los sistemas neuronales biológicos
así como las funciones auditivas o funciones básicas de la visión.

Modelos Dirigidos a Aplicaciones.
No necesariamente guardan similitud con los sistemas biológicos. Sus arquitecturas están fuertemente ligadas a las necesidades de las aplicaciones para
las que son diseñados.

1. REDES NEURONALES DE TIPO BIOLÓGICO
El cerebro humano promedio cuenta con aproximadamente mil millones de neuronas. Asimismo, durante las sinápsis cada una de estas neuronas recibe en promedio alrededor de 1000 estímulos de entrada y genera alrededor de 1000 estímulos de salida. En este sentido, la principal ventaja del cerebro humano promedio recae en su conectividad, interpretada como la capacidad del mismo para realizar diferentes procedimientos lógicos a la vez. Sin embargo, su principal debilidad recae en la velocidad de procesamiento de la información, siendo las computadoras en este sentido mucho mas rapida.








La mayor parte de las neuronas posee una estructura arbórea formada en su mayor parte por dendritas que, conectadas a otras neuronas, se encargan de recibir los estímulos de entrada neuronales mediante uniones denominas sinopsis.
Algunas neuronas tiene una estructura que las comunica con miles de neuronas
más, mientras otras sólo puede comunicarse con unas cuantas a su alrededor. Las tres partes importantes de la estructura de una neurona son:
Ramas de Extensión o Dendritas – Reciben estímulos de Entrada.
Cuerpo de la Neurona – Procesa estímulos de Entrada.
Axón – Emite estímulos de Salida a las Dendritas de otras neuronas.
















Actualmente no sé conoce con certeza la verdadera forma de interacción de las neuronas. En general, una neurona recibe estímulos de entrada mediante las
dendritas, estos estímulos son procesados en el cuerpo de la misma para posteriormente emitir un estímulo de salida mediante el axón. Este último estímulo
utiliza diferencias de potencial eléctrico u ondas de corriente las cuales dependen fundamentalmente del potencial de la neurona. Asimismo, la neurona utiliza la función de escalón y la función de activación para determinar la salida que debe emitir de acuerdo a los estímulos recibidos.

2.REDES NEURONALES PARA APLICACIONES CONCRETAS
El conocimiento que se posee sobre el sistema nervioso es aún incompleto. En este sentido, las ANNs no se encuentran muy ligadas a lo que son en sí las redes neuronales biológicas. Por lo tanto, se han definido otras funcionalidades y estructuras de conexión distintas a las establecidas por la biología. Las principales características de las ANNs son las siguientes:
Auto Organización y Adaptabilidad Utilizan algoritmos de aprendizaje adaptativo y auto organización ofreciendo posibilidades de un procesamiento robusto y adaptable.

Procesado No Lineal y Paralelo

Aumenta la capacidad de la neurona para poder aproximar y clasificar información haciéndose más inmune al ruido (datos desordenados).Estas características juegan un papel importante en las ANNs aplicadas al procesado de señales. En este sentido, la red constituida para una aplicación determinada poseerá una arquitectura concreta de elementos de procesado adaptativo, masivo y paralelo que se combinan en estructuras de interconexión de red jerárquica.


3.TAXONOMÍA DE LAS REDES NEURONALES
Toda aplicación de redes neuronales consta de dos fases: la fase de aprendizaje o entrenamiento y la fase de prueba o funcionamiento directo. En la fase de entrenamiento se usa un conjunto de datos o patrones de entrenamiento para determinar los pesos que definen el modelo neuronal. Este modelo una vez entrenado, se usará en la fase de funcionamiento directo en la que se procesarán patrones de prueba que constituyen la entrada habitual de la red con el objetivo de analizar las prestaciones definitivas de la misma.

Fase de Prueba
Los pesos de la red neuronal se han obtenido a partir de patrones representativos de entradas que se denominan patrones de entrenamiento. Los pesos pueden ser calculados de una vez como adaptados iterativamente según el tipo de red

ALGORITMO GENETICO


ALGORITMO GENÉTICO

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

En los años 1970, de la mano de Jhon Henry Holland , surgió una de las líneas más prometedoras de la inteligencia artificial , la de los algoritmos genéticos. Son llamados así porque se inspiran en la evolución biológica y su base genético-molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolucion biologica (mutaciones y recombinaciones genéticas), así como también a una seleccion de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. También es denominado algoritmos evolutivos, e incluye las estrategias de evolución, la programación evolutiva y la programación genética. Dentro de esta última se han logrado avances curiosos:

En 1999, por primera vez en la historia, se concedió una patente a un invento no realizado directamente por un ser humano: se trata de una antena de forma extraña, pero que funciona perfectamente en las condiciones a las que estaba destinada. No hay, sin embargo, nada injusto en el hecho de que el autor del algoritmo genético del que salió la forma de la antena se haya atribuido la autoría de la patente, pues él escribió el programa e ideó el criterio de selección que condujo al diseño patentado.

Un algoritmo genético es un método de búsqueda dirigida basada en probabilidad. Bajo una condición muy débil (que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio) se puede demostrar que el algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el óptimo en la población tiende a 1 (uno).

FUNCIONAMIENTO

Los algoritmos genéticos establecen una analogía entre el conjunto de soluciones de un problema, llamado fenotipo, y el conjunto de individuos de una población natural, codificando la información de cada solución en una cadena, generalmente binaria, llamada cromosoma. Los símbolos que forman la cadena son llamados los genes. Cuando la representación de los cromosomas se hace con cadenas de dígitos binarios se le conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas generaciones. En cada generación, los cromosomas son evaluados usando alguna medida de aptitud. Las siguientes generaciones (nuevos cromosomas), llamada descendencia, se forman utilizando dos operadores, de cruzamiento y de mutación.

Cuándo usar estos algoritmos

Los algoritmos genéticos son de probada eficacia en caso de querer calcular funciones no derivables (o de derivación muy compleja) aunque su uso es posible con cualquier función.
Deben tenerse en cuenta también las siguientes consideraciones:

  • Si la función a optimizar tiene muchos máximos/mínimos locales se requerirán más iteraciones del algoritmo para "asegurar" el máximo/mínimo global.
  • Si la función a optimizar contiene varios puntos muy cercanos en valor al óptimo, solamente podemos "asegurar" que encontraremos uno de ellos (no necesariamente el óptimo).

Funcionamiento de un algoritmo genético básico

Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los operadores genéticos (cruzamiento, mutación), de cómo se realiza la selección y de cómo se decide el reemplazo de los individuos para formar la nueva población. En general, el pseudocódigo consiste de los siguientes pasos:


Algoritmo genético i: inicialización, f(X): evaluación, ?: condición de término, Se: selección, Cr: cruzamiento, Mu: mutación, Re: reemplazo, X*: mejor solución.

  • Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la población posible o al menos evitar la convergencia prematura.
  • Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber cómo de "buena" es la solución que se está codificando.
  • Condición de término El AG se deberá detener cuando se alcance la solución óptima, pero ésta generalmente se desconoce, por lo que se deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición de término se hace lo siguiente:
    • Selección Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados.
    • Cruzamiento El cruzamiento es el principal operador genético, representa la reproducción sexual, opera sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos cromosomas padres.
    • Mutación modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de búsqueda que no estaban cubiertas por los individuos de la población actual.
    • Reemplazo una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar la población de la generación siguiente

APLICACIONES

  • Diseño automatizado, incluyendo investigación en diseño de materiales y diseño multiobjetivo de componentes automovilísticos: mejor comportamiento ante choques, ahorros de peso, mejora de aerodinámica, etc.
  • Diseño automatizado de equipamiento industrial.
  • Diseño automatizado de sistemas de comercio en el sector financiero.
  • Construcción de árboles filogenéticos.
  • Optimización de carga de contenedores.
  • Diseño de sistemas de distribución de aguas.
  • Diseño de topologías de circuitos impresos.
  • Diseño de topologías de redes computacionales.
  • En Teoría de juegos, resolución de equilibrios.
  • Análisis de expresión de genes.
  • Aprendizaje de comportamiento de robots.
  • Aprendizaje de reglas de Lógica difusa.
  • Análisis lingüístico, incluyendo inducción gramática, y otros aspectos de Procesamiento de lenguajes naturales, tales como eliminación de ambigüedad de sentido.
  • Infraestructura de redes de comunicaciones móviles.
  • Optimización de estructuras moleculares.
  • Planificación de producción multicriteria.
  • Predicción.
  • Aplicación de Algoritmos Genéticos al Dilema del Prisionero Iterado
  • Optimización de sistemas de compresión de datos, por ejemplo, usando wavelets.
  • Predicción de Plegamiento de proteínas.
  • Optimización de Layout.
  • Predicción de estructura de RNA.
  • En bioinformática, Alineamiento múltiple de secuencias.
  • Aplicaciones en planificación de procesos industriales, incluyendo planificación job-shop.
  • Selección optima de modelos matemáticos para la descripción de sistemas biológicos.
  • Manejo de residuos sólidos.
  • Ingeniería de software.
  • Construcción de horarios en grandes universidades, evitando conflictos de clases.
  • Problema del viajante.
  • Hallazgo de errores en programas.
  • Optimización de producción y distribución de energía eléctrica.