Bases biológicas de los algoritmos genéticos y evolutivos

Esto es una introducción a las bases biológicas que inspiran muchos algoritmos. Debo advertir que es una introducción escrita por un informático para gente interesada en algoritmos así que los que sepáis de biología no seáis muy duros. Soy consciente de que he hecho muchas simplificaciones.

Que algunos algoritmos estén inspirados no significa que sean copias exactas, no siempre la solución aportada por la naturaleza es la más sencilla de llevar acabo, o la que mejor se adapta a nuestros problemas por eso lo que se busca es imitar los métodos para conseguir los mismos resultados que la naturaleza. Una vez conseguida la imitación esta se puede modificar, variar o combinar para dar origen a métodos jamas intentados por la naturaleza.

Un único modelo

Actualmente el único modelo que tenemos de seres vivos es el de aquellos que nos rodean. Esto nos “limita”, ya que pese a su gran variedad toda la vida proviene de un origen en común. Nuestra definición de vida y sus características se han de basar en un único modelo.

La base de este modelo es la célula, esta es la forma de vida más simple (los virus no se considera que esten vivos), todos los seres vivos están compuestos por ellas, ya sean unicelulares o pluricelulares. Es por así decirlo el ladrillo con el que se construye la vida.

La célula

Estudiar la célula en toda su complejidad daría para varios textos como este. Para que nos sea más fácil olvidaremos el resto de funciones de la célula y la veremos como una maquina destinada únicamente a trabajar con la información del ADN.

La célula esta formada por una membrana que la separa del medio, en su interior se encuentra el citoplasma, que se divide en hialoplasma y organulos citoplasmáticos. El hialoplasma es medio que contiene a los organulos citoplasmaticos, en el se realizan numerosas reacciones químicas, esta formado en un 70% de agua y el resto son proteínas, lípidos, glucidos, etc. Los organulos citoplasmáticos desempeñan diversas funciones dentro la célula. Nosotros vamos a centrarnos en el núcleo.

El núcleo y los cromosomas

En el interior del citoplasma, separado por la membrana nuclear, se encuentra el núcleo de la célula con toda la información genética. No todas las células tienen un núcleo, en algunos casos como las algas verdeazuladas, y las bacterias, el material genético se encuentra libre en el citoplasma, las células se dividen en dos grupos según posean o no núcleo diferenciado:

  • Procariotas: Carecen de núcleo diferenciado el material genético se encuentra en el citoplasma.
  • Eucariotas: Poseen una estructura separa del citoplasma donde están los cromosomas, a esta estructura se le denomina núcleo.

El núcleo esta formado principalmente por proteínas denominadas histones y ADN que forman los cromosomas. Estos solo son visibles durante el proceso de división celular cuando se enrrollan para formar la conocida estructura con forma de X

En la mayoría de las células de los animales y plantas poseen células diploides, es decir, con dos copias de cada cromosoma. Las células con un solo juego de cromosomas se conocen como haploides. En la reproducción sexual cada progenitor aporta un cromosoma de cada par. Sabiendo esto es fácil imaginarse que las células reproductoras (gametos) serán haploides, ya que el único cromosoma por par que poseen se juntara con el del otro gameto para formar una célula diploide. Cada especie tiene un numero distinto de cromosomas.

ADN y ARN:

El ADN es una molécula constituida por dos largas secuencias de nucleótidos, ambas se enrollan sobre si mismas formando una espiral, están unidas por puentes de hidrogeno. La información esta codificada por cuatro nucleótidos; adenina (A), timina (T), guanina (G) y citosina (C) en el caso del ADN, en el ARN se sustituye la timina por el uracilo (U). Los nucleótidos se unen unos frente a otros para unir ambas cadenas de nucleotidos, la adenina se una con la timina y la citosina con la guanina de tal modo que si tenemos la secuencia ATGCA sé unirá con la TACGT. Esto significa que ambas cadenas son complementarias y que se puede codificar una a partir de la otra.

Los grupos de tres nucleotidos, se denomina codón, sirven para identificar los distintos aminoácidos, piezas estructurales de lo polipéptidos que a su vez se unen para formar proteínas. No se usan mas de veinte aminoácidos distintos, por eso hace falta tres nucleótidos par definir un aminoácido ya que si fueran dos solo habría 16 (42) combinaciones distintas, con tres se dispone de 42 (43) combinaciones. Además algunos codones se usan para guiar el proceso de transcripción del ADN, indicando donde acaba el gen (STOP) o donde empieza (START). Como sobran combinaciones varios aminoácidos están definidos por más de un codón.

1ª2ª

T C A G
T Fenilanina Serina Tirosina Cisteína T
T Fenilanina Serina Tirosina Cisteína C
T Leucina Serina STOP Selenocisteina
STOP
A
T Leucina Serina Pirrolisina
STOP
Triptófano G
C Leucina Prolina Histidina Arginina T
C Leucina Prolina Histidina Arginina C
C Leucina Prolina Glutamina Arginina A
C Leucina Prolina Glutamina Arginina G
A Isoleucina Treonina Asparagina Serina T
A Isoleucina Treonina Asparagina Serina C
A Isoleucina Treonina Lisina Arginina A
A
Metionina
START
Treonina Lisina Arginina G
G Valina Alanina Ac. Aspártico Glicina T
G Valina Alanina Ac. Aspártico Glicina C
G Valina Alanina Ac. Glutámico Glicina A
G Valina Alanina Ac. Glutámico Glicina G

El ADN codifica la información siguiendo un patrón: el inicio de la información útil es indicado por el codón ATG, a partir de ese momento si este codón vuelve a salir será interpretado como el aminoácido metionina, la traducción de codón a aminoácido sigue hasta llegar a un codón de STOP representados por TAA, TAG, TGA, aunque hay seres vivos donde los dos últimos también sintetizan aminoácidos.

Para que el ADN se traduzca de información a proteínas o a enzimas hace falta que este sea leído y transcrito; vamos a ver como se lleva a cabo este proceso. Se inicia con la transcripción de ADN a ARNm (ARN mensajero). La cadena de ADN se abre y permite que una enzima, la ARN-polimerasa copia el fragmento de ADN traduciendolo a ARNm. El fragmento es complementario con la timina sustituida por el uracilo (recuerda que es ARN) de manera que la cadena AGTCG se codificará como UCAGC.

El ARNm forma una larga y delgada cadena, esta se inserta en los ribosomas que actuan como pequeños automatas recorriendo la cadena de ARNm leyendola y ensamblando aminoacidos hasta llegar al final del gen indicado por un simbolo de STOP (UAA, UAG, UGA). La cadena de ARNm no es recorrida por un solo ribosoma sino que son varios al mismo tiempo. En el ribosoma se encuentra ARNt (ARN de transferencia), que detecta los codones usando la forma complementaria (anticodón), así el ribosoma sabe que aminoácido unir a la cadena. En el caso de las células procariotas, los ribosomas pueden empezar a trabajar antes de que se acabe de traducir el ADN a ARNm. La secuencia de nucleotidos comprendidos entre un START y un STOP definen una enzima o una proteína especifica y se denomina gen o locus.

Genes

Los genes son la unidad mínima de información hereditaria, codifican una proteína o una enzima. Hay que distinguir dos conceptos; el genotipo, la secuencia de ADN de un individuo, y el fenotipo, la manifestación física del genotipo. En individuos con un solo gen el genotipo corresponde con el fenotipo, pero en el caso de los seres con células diploides se plantea el problema de elegir cual de los dos genes se va a usar como modelo. Para solucionar esto los genes poseen distintos “pesos”. Cuando un gen se impone sobre otro se dice que es dominante y se representa con una letra mayúscula, en caso de que el gen sea enmascarado por el otro se dice que es recesivo y se representa con una letra minúscula. A cada una de las variaciones que presenta un gen se le denomina alelo.

Veamos un ejemplo, el albinismo esta relacionado con un gen en particular, es recesivo y el alelo se representa por a, la pigmentacion normal de la piel esta relacionada con el alelo A y es dominante. Por los que hay cuatro combinaciones, que realmente son tres ya que una esta repetida.

  1. AA – Pigmentación normal, ambos genes son dominantes.
  2. Aa – Pigmentación normal, no sufre albinismo pero es portador de la enfermedad
  3. aA – Pigmentación normal, no sufre albinismo pero es portador de la enfermedad
  4. aa – Albino, al tener ambos cromosomas recesivos el albinismo se manifiesta ya que no hay ningún gen para enmascararlo.

Se puedes dar el caso de que lo genes sean codominantes, ninguno domina sobre el otro, y ambos se manifiestan. Un ejemplo lo tenemos en el dondiego de noche una planta que tiene dos alelos para el color de sus flores: rojo y blanco (genotipo). Sin embargo muestra flores de tres colores: blancas, rojas y rosas (fenotipo). Las rojas y las blancas tienen ambos genes del mismo alelo (rojo o blanco), mientras que las flores rosas se produces por la codominancia de ambos alelos (rojo y blanco)

Este no es el único modelo, muchas veces un carácter esta determinado por varios genes, o un gen determina más de un carácter, un ejemplo es la herencia cuantitativa, la idea es que por ejemplo cinco genes determinaran el tamaño de una planta, un gen recesivo r hace que crezca 5 centímetros y uno dominante R que crezca 10 centímetros, así que una planta rR rr RR medirá (10+5+10) 25 centímetros y otra Rr rr rr (10+5+5) 20 centímetros se pueden ver que plantas de distinto genotipo tendrán igual fenotipo, por ejemplo rr RR Rr y RR RR rr. En la vida real los caracteres no están determinado de una manera tan sencilla y lineal.

Los genes no solo cumplen una simple función de almacén de información, también tienen una función reguladora, hay grupos de genes que se ocupan de bloquear o desbloquear la producción de enzimas y proteínas dependiendo de la cantidad de estas. Para ello un gen conocido como regulador produce una proteína represora que funciona de la siguiente manera. En cada gen existe un segmento de ADN llamado promotor al cual se adhiere la ARN-polimerasa, entre este segmento y el gen a veces existe otro segmento de ADN llamado operador al que se liga la proteína represora y evita que la ARN-polimerasa puede generar el ARNm. Dependiendo de la concentración en el medio de ciertas sustancias la proteína represora puede ser inhibida por ellas y no llegar a unirse al operador. Este mecanismo se haya muy estudiado en las bacterias, los seres vivos superiores poseen un mecanismo más complicado y todavía no muy bien comprendido en el que intervienen proteínas ligadas a proteínas que estimulan la transcripción de ADN, en esencia el resultado conseguido es el mismo. A los genes que forman el sistema de regulación completo se les denomina en conjunto operón.

A su vez a otros genes con distintas funciones, como los genes de segregación cuya función es estructural y sirven como punto de apoyo para la construcción de los cromosomas y en la división celular. Y genes sin función aparente conocidos como ADN basura, que es codificado por la ARN-polimerasa en ARNm pero que es desechado por los ribosomas durante la fase de transcripción. El ADN se divide en dos tipos; exones, que es el ADN portador de información y que se codifica en ARNm e intrones, formado por secuencias de ADN no codificante que se intercalan entre los exones dentro de los genes. Actualmente no se conocen todavía todas las funciones de los intrones, presentes solo en las células diploides, excepto los gametos que son haploides. La mayor parte de estos están formados por repeticiones de nucleotidos o por zonas con gran facilidad para recombinarse o como los transposones para saltar de gen en gen o incluso de cromosoma en cromosoma, lo que puede inducir mutaciones.

Un descubrimiento aun no muy bien entendido, es que un mismo gen puede codificar distintas proteínas, el truco esta en que no todos los exones de un gen se codifican para forma una proteína, sino que lo hacen distintas combinaciones de estos, de tal forma que un gen puede llegar a codificar varias de proteínas.

La replicación de los genes

El ADN posee la capacidad de autorreplicarse, puede sacar copias de si mismo y, por lo tanto, de toda la información que porta. Como hemos visto el ADN se compone de dos copias de cada gen. La duplicación de una hebra de ADN da lugar a otra, pero no siempre son iguales, los genes se pueden mezclar entre ellos y cambiar de hebra, dando lugar a hebras con genes que sean mezcla de ambos progenitores.

No es necesario entrar en detalles de cómo se replica el ADN para obtener una copia exacta (ya veremos que no siempre es así) de los genes. Durante la copia se da un proceso conocido con el nombre de sobrecruzamiento. El sobrecruzamiento consiste en que dentro de una pareja de cromosomas los genes de ambos progenitores se mezclan para dar lugar a una cadena de ADN que contiene genes de ambos. Este cruce solo se da dentro de una pareja de cromosomas, y los cruces se hacen, según parece, al azar. El mecanismo es el siguiente, un grupo de genes es separado y ligado con otro grupo para formar una sola cadena de genes, como podréis imaginar a mayor proximidad física de los genes más fácil es que sean heredados juntos,. A los genes que son heredados juntos se dicen que están ligados. Los genes ligados solo se pueden dar en caso de que todos pertenezcan al mismo cromosoma. Hay que tener en cuenta, que dos genes no pueden estar ligados sin que también lo estén los genes que haya entre ellos.

De esta manera a partir de dos cadenas diferentes, sometiéndolas a sobrecruazamiento se obtienen una gran cantidad de cadenas distintas, tan solo combinando genes. Este número es verdaderamente grande, si pensamos que para cada gen hay 2 posibilidades, lo que quiere decir que para un gen habrá 2 combinaciones, para 2 genes habrá 4 (2*2) combinaciones, para 3 genes habrá 8 (2*2*2) combinaciones, para 4 genes habrá 16 (2*2*2*2) combinaciones. Es decir para un numero n de genes habrá 2n combinaciones distintas.

Pero si no hay ninguna variación en los genes. ¿De dónde salen los nuevos alelos?

Mutaciones:

Los genes son simples estructura químicas, que actúan como un mapa para montar aminoácidos. Supongamos que un codón cambia una base por otra, CTT por CTA, en ambos casos sintetiza el aminoácido Leucina. Pero si en lugar de cambiar la tercera base cambia la primera TTT tenemos Fenilanina. Un pequeño cambio puede alterar la estructura de la proteína a sintetizar.

¿Pero como puede darse este cambio de una base por otra?. Las razones pueden ser varias, desde errores en el mecanismo de replicación del ADN hasta causas externas, como la radiación, que alteren las bases. La mayor parte de estas alteraciones, conocidas como mutaciones, no serán viables pero las pocas que si lo sean permitirán crear un individuo con un nuevo alelo para el gen.

Como la mayoría de las mutaciones son nocivas hay mecanismos para reducirlas. Mientras el ADN se replica hay enzimas que realizan una comprobación de que la copia es correcta y en caso de detectar un error lo corrigen. Su eficacia, aunque alta, no es del cien por cien. Como podemos ver el equilibrio es difícil, si se producen muchas mutaciones aparecerán nuevos alelos, pero si se producen demasiadas alguna será letal y las demás mutaciones se perderán ya que el individuo no prosperara.

Evolución

Cuando una mutación resulta en un individuo válido está mutación puede resultar beneficiosa, perjudicial o neutral.

Los seres vivos desarrollan su actividad dentro de un ecosistema, su interacción con este es lo que decide si una mutación le da o no una ventaja al individuo, vamos a ver un ejemplo. La anemia falciforme es una enfermedad de origen genético, causada por el cambio de una única base en un gen. Si ambos genes tienen esa mutación los glóbulos rojos adopten forma de media luna. Estos globulos rojos son menos flexibles y tienen una vida útil menor que los normales lo que causa anemia. En un principio parece ser una mutación que da al individuo una clara desventaja, excepto en algunos lugares de África donde además de la anemia hay otra amenaza mayor el paludismo. La gente con anemia es mucho mas resistente al paludismo, por lo que en muchos pueblos afectados por el paludismo se encuentra gran cantidad de gente que sufre de anemia falciforme y donde una mutación que parecia una desventaja se ha convertido en ventajosa.

Podemos ver que los individuos pueden poseer ventajas que les permita vivir más tiempo o mantenerse en mejor estado, esto les facilita tener más descendencia, esta descendencia será portadora de sus genes y por lo tanto podrá poseer también esa ventaja, lo que a su vez les permitirá vivir más y tener más hijo. Esto hará que ese alelo se extienda por toda la especie. Esto es una pequeña parte de la teoría de la evolución de Darwin-Wallace. Todo esto se podría resumir con la expresión: “La supervivencia del más apto”.

La nueva mutación puede ser dominante o recesiva, dando lugar a distintos casos. Primero supongamos que es dominante y produce una desventaja, todos los individuos con esa mutación lo tendrán más difícil para tener descendencia y es probable que ese alelo desaparezca. En el segundo caso vamos a suponer que es dominante y produce una ventaja, ese alelo se extenderá a gran velocidad. Para el tercer caso vamos a suponer la mutación recesiva y ventajosa, tardara más en extenderse, pero los otros alelos dominantes al representar una desventaja iran desapareciendo. El ultimo caso es el más interesante, la mutación es recesiva y desventajosa, parece que tiene todas las de perder, pero no es así, al “quedar oculta” por otro alelo dominante y ventajoso esta mutación puede permanecer “escondida”. Solo reaparecerá en casos en que se encuentren dos alelos iguales.

Ahora bien, el medio puede cambiar y convertir a individuos aptos en individuos poco aptos, en ese momento los alelos más ventajosos se pueden convertir en una carga para su portador y los alelos desventajosos convertirse en una ventaja. En esas circunstancias los alelos recesivos “escondidos”, pueden volver a aparecer, solo que convertidos en ventaja y extenderse rápidamente. Un caso así lo tenemos en Londres, al principio de la época industrial, en las afueras había un grupo de polillas que podían ser de dos colores, blanco o negro, en un principio las polillas blancas tenían ventaja pues vivían en un bosque de abedules blancos y lo tenían fácil para confundirse con sus troncos y evitar a los depredadores y su color era el mas abundante, pero con la llegada de las fabricas y sus hornos de carbón los arboles se tiñeron de negro y la población cambio, rápidamente el número de polillas negras supero al de blancas. Vemos el medio afecta al rumbo de la evolución.

Podemos pues decir que la evolución no tiene un rumbo marcado, simplemente se adapta al medio, por lo que los términos superior inferior carecen de sentido, y habría que cambiarlos por mejor o peor adaptado. Esta adaptación provoca un curioso efecto, si dos poblaciones idénticas son separadas y colocadas en entornos distintos cada uno evolucionara por caminos diferentes, es lo que se conoce como deriva genética.

Para que una especie pueda adaptarse ha de tener variedad, sus individuos han de presentar múltiples características distintas, cuantas más, mejor, eso permite que se puedan presentar gran cantidad de soluciones adaptativas a un cambio en el entorno. Para una especie con poca variación genética cualquier cambio brusco del medio puede suponer su extinción. Si en el caso de antes de las polillas todas hubieran sido blancas seguramente habrían desaparecido.

Actualmente aun se duda de si la evolución produce avances significativos de golpe, “saltos evolutivos”, o si realiza su trabajo lentamente. Lamentablemente el registro fósil parece apoyar ambas teorías. Aunque cada vez cobran mas fuerza las teorías sobre sistemas caóticos en equilibrio que van acumulando pequeñas mutaciones hasta que este cumulo de mutaciones produce un gran cambio.

Es interesante mencionar una teoría anterior a la actual teoría de la evolución, la teoría Lamarckiana, según la cual a lo largo de la vida un animal desarrolla alguna característica concreta debido a su uso, esta característica pasa a sus descendientes que también la desarrollan y a su vez les da mayor ventaja frente a los otros individuos. Parece fuera de lugar describir esta teoría aquí, puesto que ha sido demostrada errónea y no se corresponde con todo lo explicado hasta ahora del ADN, pero hay algoritmos que sacan partido de ella sometiendo a los individuos a un proceso “de mejora” entre generaciones.

Modelo biológico de lo algoritmos genéticos

Los algoritmos genéticos se pueden implementar de gran variedad de formas, pero generalmente se sigue un mismo modelo que simplifica mucho la implementación, aquí se va a intentar caracterizar a ese modelo con las distintas estrategias de los seres vivos.

Se suele usar una sola cadena, por los que se podría decir que es haploide, a su vez los individuos son asexuados ya que todos se pueden cruzar entre si. La selección se basa en el fenotipo que se obtiene a partir del genotipo, por lo que se acerca al modelo de Darwin-Wallace. El tamaño de la población es fijo y estable, los individuos menos aptos son sustituidos por otros más aptos, por lo que existe competencia. Los individuos están sometidos a mutaciones aleatorias.

Teniendo en cuenta estas características quizás el modelo biológico al que mas se parecen los algoritmos genéticos sea el de una cepa de bacterias, ya que poseen una única hebra de ADN, poseen una alta tasa de mutación y de adaptabilidad, son capaces de intercambiar fragmentos de ADN. Dentro de la cepa las más aptas se extienden rápidamente y van sustituyendo a las menos aptas.

Otras vías de herencia

Hasta aquí es lo que se suele contar como base para los algoritmos genéticos y evolutivos, pero no hay que olvidar otras formas de herencia que también pueden tener su utilidad.

La primera serian las mitocondrias, pequeños orgánulos que actúan como centrales energéticas de las células y están dotadas a su vez de ADN, conocido como ADNm, estos orgánulos se heredan de la madre en la mayoría de las especies, lo que parece contradecir todo lo dicho hasta ahora, pero así es, una parte de nuestra herencia proviene únicamente de la madre, luego sus ventajas o desventajas provienen únicamente de un progenitor sin posibilidad que el otro intervenga. De hecho la evolución del ADNm se puede estudiar separada de la del ADN del resto de la célula.

El segundo caso lo representan las bacterias, que actúan como redes de intercambio de genes, los genes son capaces de separarse y recombinarse con los de otras bacterias. Se ha estudiado este fenómeno desde el punto de vista de la vida artificial usando autómatas celulares.

La tercera vía son los virus, a grandes rasgo, algunos son capaces de insertar en el ADN de la célula fragmentos del suyo para reproducirse, lo que a su vez puede producir el proceso contrario y que parte del ADN de la célula huesped pase a los nuevos virus. Actualmente se usan como vectores para terapia genética.

La cuarta vía son las proteínas, capaces de transformar otras proteínas en copias de si mismas, que a su vez transformaran a otras en lo que se denomina una reacción autocatalizada. Este tipo de proteínas se denominan priones y son la causa de enfermedades como la de las “vacas locas”.

Una quinta sería la clonación o replicación exacta del individuo, es muy usada entre los insectos ya sea para formar colonias o como alternativa a la reproducción sexual en forma de partenogénesis cuando hay escasez de machos. En esta forma la única fuente de variación genética son las mutaciones.

Por ultimo repetir que lo aquí visto no es mas que una introducción y que los métodos de codificación del ADN aun no han sido del todo desentrañados, pero ya se han empezado a encontrar sistemas bastante complejos como cadenas que ADN que codifican en ambos sentidos, cadenas de ARNm que son “asaltadas” y modificadas antes de llegar a los ribosomas, genes que se solapan, microARN (mARN) e interruptores ribosomaticos. No esta de más recordar que la complejidad de una solo célula supera en muchos niveles a la complejidad de cualquier construcción creada por el hombre. Pero toda esta complejidad no hay que verla como un obstáculo ya que cada nuevo proceso o parte que se desentraña, no hace otra cosa que dar más material sobre el que trabajar, más ideas y opciones.

Optimizar la comparación de distancias entre varios puntos

La función distancia se usa muy a menudo en muchos algoritmos para calcular la distancia entre puntos en el espacio. Hay algoritmos que hacen un uso intensivo de esta función como k-nn, k-means, o casi cualquier método que incluya buscar puntos cercanos. Por lo que reducir el coste de calcularla reporta una mayoría considerable de rendimiento.

Distintas distancias

Por suerte podemos usar funciones distancia diferentes. Una función distancia tiene que cumplir las siguientes condiciones cuando
x != y:

dist(x,x) = 0
dist(x,y) != 0
dist(x,y) = dist(y,x)
dist(x,y) <= dist(x,z) + dist(z,y)

Para calcular la distancia entre dos puntos es habitual usar la distancia euclídea:

dist(A,B) = √∑(Ai-Bi)²

Podemos hacer una primera mejora, si solo necesitamos comparar distancias podemos ahorrarnos la raíz cuadrada. Obtenemos una función distancia perfectamente válida y que puede reemplazar la euclídea

Pero hay una mejora más eliminar los cuadrados de las restas. Sin embargo hay un detalle a tener en cuenta, el cuadro de un número negativo es positivo, por lo que no basta con eliminarlos hay que reemplazarlos por el valor absoluto.

Esta parece un mejora menor pero en caso de espacios de muchas dimensiones puede llegar a notarse.

Pero no somos los primeros en llegar a esta conclusión, es conocida como distancia Manhattan:

dist(A,B) = ∑|Ai-Bi|

Realmente podemos reemplazar la distancia euclídea por cualquier distancia (tiene que cumplir los cuatro puntos anteriores) siempre que la nueva distancia cumpla que si en la distancia euclídea la distancia entre dos puntos cualesquiera A y B es mayor (o menor) que entre dos puntos cualesquiera C y D, en la nueva distancia también ha de ser mayor (o menor) en la nueva distancia.

Desigualdad triangular

Viendo la cuarta propiedad de las funciones distancia, conocida como desigualdad triangular, podemos usarla para acelerar la comparación entre distancias.

Teniendo tres puntos A,B,C sabemos que:

dist(A,B) + dist(B,C) >= dist(A,C)

|dist(A,B) – dist(B,C) | <= dist(A,C)

Es decir la suma de dos lados de un triángulo es mayor o igual que el tercer lado y el valor absoluto de la resta de dos lados es menor o igual que el tercer lado.

En la imagen de debajo de este texto se puede ver ejemplos visuales:

Operaciones entre distancias

Esto nos sirve para acotar distancias sin calcularlas. Calculando solo dos distancias podemos acotar el valor mínimo y máximo de la tercera lo cual nos puede permitir descartarla sin calcularla.

Por ejemplo, nos dan un punto C y tenemos que averiguar qué otro punto está más cerca A o B. A y B ya los conocíamos así que tenemos precalculada dist(A,B). Calculamos dist(B,C), si dist(B,C) < |dist(A,B) – dist(B,C)| entonces podemos decir que dist(A,C) > dist(B,C) ¡Sin calcularla!

En muchas situaciones tenemos puntos que son previamente conocidos/aprendidos. Por lo que podemos tener una tabla de distancias entre puntos precalculadas y usarlas para acotar distancias sin necesidad de calcular la distancia entre todos los puntos.

El problema es que una tabla de distancias entre puntos puede ocupar demasiado espacio en memoria. Veamos una alternativa, calcular la distancia de todos los puntos al mismo punto. Si no hay muy buenas razones para usar otro punto usaremos el origen de coordenadas (el punto cuyas coordenadas son todas ceros). Es muy poco costoso calcular la distancia de origen a un punto P

dist(O, P) =  √∑Pi² (euclídea)

dist(O, P) =  ∑Pi (Manhattan)

Ahora si tenemos precalculadas las distancias de los puntos a comparar con el origen y nos dan un nuevo punto P. Calculamos dist(O, P) y tenemos precalculado dist(O,A) y queremos saber dist(A, P).

Sabemos que:

dist(O, A) + dist(O, P) >= dist(A, P) >= |dist(O, A) – dist(O, P)|

Max dist(A, P) = dist(O, A) + dist(O, P) 

Min dist(A, P) = |dist(O, A) – dist(O, P)|

Ya tenemos una cota mínima y máxima de cual es la distancia de de A a P. Realmente por si misma no nos sirve de nada pero si hay que comparar con muchos puntos es suficiente pare descartar muchos de ellos.

Buscar palabras por como empiezan o terminan

Buscar palabras completas usando un hashmap es sencillo. Pero cuando has de buscar por parte de la palabra la cosa se complica. ¿Como buscar todas las palabras que empiezan o terminan por una cadena dada?.

La solución es usar un trie. Un tipo de estructura de datos en la que básicamente creamos un árbol donde cada letra es un nodo. Por ejemplo el trie formado por las palabras: cardo, cardos y carne sería:

Las terminaciones “end” indican que ahí termina una palabra. Si se toma desde esa terminación y se asciende por los padres se forma la palabra almacenada. Por ejemplo: end2 O D R A C representa la palabra CARDO.

Para buscar las palabras que empiezan por un conjunto de letras se recorre en el trie ese conjunto de letras y a partir del último nodo del conjunto se recorren todas las ramas reconstruyendo las palabras cuando encuentra un indicador de fin de palabra.

Por ejemplo si buscamos palabras que empiezan por “card“:

  • CARD O S end
  • CARD O end

Para buscar palabras que terminan el método es el mismo solo que hemos de meter la palabra al revés en el trie. En lugar de guardar cardo guardamos odrac. Al recuperarla del trie le volvemos a dar la vuelta y listo.

Al buscar es necesario invertir la cadena de búsqueda. Es decir si se buscan palabras terminadas en do hay que buscar la cadena od

Hasta aquí la teoría, ahora veamos la diferencia con la realidad. El principal problema son las tildes y las diéresis. Cuando buscas bru esperás que aparezca tanto bruja como brújula pero el trie no distingue entre u/ú ¿Cómo solucionamos ésto? Haciendo un proceso de limpieza de las palabras al introducirlas en el trie.

Para que la palabra correcta no se pierda se almacenará junto con el indicador de palabra completa. En nuestro ejemplo:

  • End1 – Cardos
  • End2 – Cardo
  • End3 – Carne

Con esto ganamos velocidad ya que nos ahorramos el proceso de reconstruir la palabra, a cambio ocupa más espacio en memoria.

Hay que tener en cuenta que en una misma rama puede haber varias palabras como medico y medicó, por lo que hay que almacenar un listado de palabras.


Razón y juegos de azar

Nuestra percepción del mundo no se basa en cálculos exactos del mundo. Solemos recurrir a intuiciones, heurísticas y aproximaciones para decidir que opciones son mejores para nosotros. Una de las mejores formas de ver las diferencias entre nuestra razón y el cálculo de probabilidades es a través de los ‘engaños” que se usan en los juegos de azar. Realmente esta entrada poco tiene que ver con la inteligencia artificial directamente pero me parece un buen ejemplo de cómo pensaría una “mente matemática” frente a una “mente intuitiva”

El bingo, porque siempre estás a punto de ganar

El bingo en su forma más básica consiste en que cada jugador tiene asignados 15 números al azar del 1 al 99. Se sacan números al azar y al primero que le salgan sus 15 números gana. ¿Qué diferencia hay entre dar 15 números y dar solo 1?. La diferencia es la sensación de que “casi me toca”. Al tener tantos números y ser todos igual de probables según salen números estos se reparten de forma uniforme entre todos los cartones. Así que cuando alguien canta bingo todos los demás estaban a punto de cantarlo. Esto da la sensación de que has estado a punto de ganar y motiva a seguir probando suerte.

Quinielas, el engaño de ser experto

Pasamos de los juegos que son puramente de azar a otro donde el conocimiento aporta algo. Las quinielas deportivas. En su versión más simple hay que adivinar quien gana o pierde (en algunos casos empata) en varios partidos. Supongamos que tenemos un experto que acierta 9 de cada 10 partidos. Eso es una relación de aciertos inhumana. Podemos pensar que alguien tan experto tendrá muchas probabilidades de acertar la quiniela. En España hay que acertar 15 partidos por lo que sus probabilidad es del 0.9^15 = 0,2. Un 20% no está nada mal. Por desgracia las probabilidades caen rápidamente. Si acierta 8 de cada 10 partidos cae al 3% y con 7 de cada 10 un 0,4%. A esto hay que añadir que generalmente se añaden dificultades extra como empates (poco probables pero difíciles de predecir) o que no todos los partidos son igual de fáciles de predecir. Sin embargo es fácil sobrestimar cómo afecta a las probabilidades “saber del tema”

Cuando la habilidad y la suerte se confunden, porque se caen siempre los peluches de la garra

Uno de los trucos más retorcidos, en mi opinión, que hay en los juegos de azar es cuando mezclan habilidad con azar. Sobre todo si el jugador no tiene claro que existe una parte de azar. El ejemplo más conocido son las máquinas de peluche que tienen una pinza que desciende, agarra el peluche y lo deja caer en un conducto donde lo puedes coger. En esas máquinas se mezcla la habilidad del usuario para “enganchar” el peluche junto con un elemento de azar; la pinza elige aleatoriamente si hace fuerza suficiente para agarrar el peluche o no. Como al principio nuestros fallos se deben a nuestra torpeza y vamos mejorando poco a poco al llegar al punto en que lo decisivo es la suerte y no nuestra habilidad no sabemos distinguirlo así que seguimos intentándolo para mejorar lo suficientemente, efectivamente al final el esfuerzo tiene su recompensa. Solo que ese esfuerzo ha sido incrementado de forma artificial.

Cuando solo ves una parte, como acertar lo muy improbable

Te llega un email donde alguien predice un evento en teoría casi aleatorio. El ganador de la próxima carrera, partido o si van a subir o bajar varias acciones en bolsa. Sorprendido ves que acierta. Poco después te llega un segundo que también acierta y luego un tercero con otra predicción acertada. El cuarto te pide dinero para darte su predicción.

Parece una inversión seguro. ¿Que probabilidad hay de predecir correctamente si no hay un “método”?

La realidad es que hay un método, pero para engañar a la gente. Han mandado millones de emails con todas las posibles combinaciones. Al final quedan unas cuantas decenas de miles de personas que creen que han acertado tres veces y quizás acierten una cuarta. Si el precio no es alto muchos estarán dispuestos a pagar por una cuarta predicción.

Aquí el problema es que no estás viendo el escenario completo. Desde tu punto de vista han acertado algo que es prácticamente imposible de acertar al azar. Pero eso es porque te has perdido los millones de errores cometidos.

Este ejemplo ha sido usado como estafa por Internet.

La falacia del jugador, las rachas no existen

Uno de las malinterpretaciones que más habitualmente hacemos es la de las “rachas”. De manera intuitiva creemos que las sucesiones de resultados similares afecta a la probabilidad del siguiente resultado.

Imaginemos el juego de tirar una moneda, salen tres caras seguidas. Esto hace que haya gente que piense que es más probable que salga una cara y gente que piense que es más probable que salga un cruz. Ambos están equivocados, caen en la falacia del jugador. Creer que los resultados anteriores afectan al siguiente lanzamiento de la moneda. Cuando son eventos independientes.

De hecho ante rachas especialmente largas de resultados similares lo que habría que preguntarse es si la moneda no esta trucada.

Calcular la dificultad de lectura de una palabra

Hacer un algoritmo que calculé lo difícil de leer que es una palabra es complicado, depende de muchos factores, algunos propios del lector: cultura, velocidad, conocimiento del tema, problemas con algunas sílabas,… Por lo que el valor obtenido hay que tomarlo como un indicador y no como un valor absoluto

En nuestro modelo vamos a asociar la dificultad para lectura con la dificultad para pronunciar. Por ello descompondremos la palabra en sílabas y calcularemos la dificultad de cada una.

Dificultad de lectura de una sílaba

El modelo que usaremos puntúa con valor númerico a cada letra de la silaba, además suma o resta puntos por ciertas combinaciones de letras. El resutado final de sumar todo da la dificultad de lectura.

  • Las vocales son más faciles de leer que las consonantes. (+1)
  • La h al ser muda no afecta a la pronunciación. (+0)
  • Las consonantes habituales tienen una dificultad media (+2)
  • Hay consonantes poco comunes que hacen más dificiles la pronunciciación debido a la falta de habito. (+3)

Valores de cada letra:

  • +0: h
  • +1: a,e,i,o,u
  • +2: b,c,d,f,g,j,l,m,n,ñ,p,q,r,s,t,v
  • +3: k,w,x

Hay excepciones en las que una letra no cuenta, por lo que en esos casos esa letra no aporta valor, para ello se realizaran los siguientes remplazos:

que = qe
qui = qi
gui = ge
gue = ge
rr = r
ll = y

Dos consonantes seguidas complican la pronunciacion:Si la segunda consonanete es “hbrls” +1Si  la segunda consonanete es cualquier otra +2

Dificultad:

Baja1-3a, be, ca
Media4-6del, bra, tri
Alta7-…tras, blas


Problemas y mejoras:

  • No sirve para otros idiomas.
  • Considera que todo es valido, por ejemplo “mnztr” puntua alto pero lo considera “legible”

Dificultad de lectura de una palabra

Para saber la dificultad de una palabra basta con sumar la dificultad de cada una de sus sílabas. Aunque se puede usar el valor medio (dividiéndolo entre el número de sílabas o de letras) yo recomiendo usar el valor absoluto ya que así se refleja la longitud de la palabra. Por ejemplo “catarata” a mí me parece más difícil que “cabra”. Si usamos el valor absoluto catarata puntúa 12 y cabra 9. En valor medio 3 y 4,5. 

El primer problema es dividir la palabra en sílabas, por suerte aquí tienes una solución. 

Ahora se puede valorar cada sílaba y sumarlas. Para saber qué dificultad tiene cada palabra se pueden usar los siguientes valores que he calculado
a prueba y error:

Baja1-9
Media10-13
Alta14-…

Problemas y mejoras:

  • Los plurales, simplemente añadir una s o una es al final puede hacer que una palabra suba su dificultad cuando muchas veces no se corresponde con el incremento “real” de la dificultad.

  • Hay sílabas que cuando van seguidas aumenta la dificultad de pronunciarlas, en este modelo no se ha tenido en cuenta.

¿Qué aporta el libre albedrío a los agentes racionales?

Vamos a entrar en el incierto mundo de las suposiciones, para ello intentaremos imaginar que ocurre cuando dotamos a una inteligencia artificial de libre albedrío (sin entrar en detalles sobre si existe o no). Una inteligencia artificial actúa como un agente racional. Esto que quiere decir que tomara decisiones basadas en elegir la que más beneficiosa sea según sus preferencias.

Las preferencias de los agentes son establecidas por varios factores: el aprendizaje, las circunstancias (tanto internas del agente como externas del medio) del momento en que se toma la decisión y de preferencias establecidas por los programadores. Esto quiere decir que dos agentes en las mismas situación pueden elegir respuestas diferentes y que un mismo agente puede elegir distintas respuestas según la situación en la que se encuentre.

Cuando a un agente de este tipo se le ofrecen varias alternativas pondera cada una de ellas y elige aquella que mayor valor le aporta.

Vamos con un ejemplo, imaginemos que tenemos un robot en Marte para estudiar su geología, vamos a resumirlo como “estudiar piedras”. Si nuestro robot ve un piedra interesante puede decidir entre estudiarla o no. Lo primero que hará será valorar su nivel de batería, si la batería no tiene suficiente carga como para permitirle llegar hasta la piedra y estudiarla con cierto márgen de seguridad se quedará esperando a que sus paneles la recarguen. De esa forma su decisión queda condicionada a su estado. En otro caso encuentra dos piedras interesantes y tiene que elegir cuál es más interesante, para ello procesa las imágenes de ambas piedras en busca de indicadores que los geólogos terrestres han introducido en su base de datos. Ahí es donde las preferencias vienen condicionadas por los valores establecidos en su programación. Pasa el tiempo y tras analizar muchas piedras ha ido aprendiendo que los geólogos de la tierra no estaban del todo acertados sobre que piedra es interesante y cual no. Así que poco a poco cambia sus preferencias sobre “piedras interesantes” y por tanto su comportamiento. En este último caso ha ajustado sus preferencias según lo aprendido.

El modelo es muy simple, un modelo realista tendría que tener en cuenta muchas más cosas como el riesgo del camino a la piedra, el estado de las ruedas, la metereología y mil cosas más, pero un modelo tan complejo no ayuda más a entender las cosas que uno simple, así que vamos a quedarnos con nuestro robot simplificado.

Tenemos a nuestro robot tomando sus decisiones en Marte. Al principio desde la Tierra era fácil predecir su comportamiento, ya que seguía las reglas que habían escrito en su programación. Según pasa el tiempo va aprendiendo cosas nuevas y su experiencia influye más sobre sus decisiones haciendo que desde la Tierra no puedan predecir al 100% sus actos. Sin embargo, si pudieran hacer un volcado de su software y analizarlo verían que sigue siendo un agente racional que elige la opción que sus preferencias internas le dicen que es la mejor.

Desde la Tierra preparan una actualización de software que incluye el módulo “libre albedrío”. Una vez descargada e instalada ¿Qué aporta este módulo?. Ahora, antes de tomar una decisión, el agente tiene que tener en cuenta un elemento más, el “libre albedrío”. Este módulo le da la libertad de, voluntariamente, elegir la opción que quiera sin ceñirse a sus preferencias. ¿Qué le aporta a nuestro robot elegir una opción que no es la que prefiere?. Probablemente nuestro robot pasé su vida eligiendo la misma opción con libre albedrío que la que elegiría sin él. Así que el libre albedrío no debería influir demasiado en el resultado ya que solo sirve para elegir una opción distinta a la mejor, cosa que poco va a interesar a un agente racional.

En resumen un agente racional al eligir la mejor respuesta según sus preferencias hace que el libre albedrío no le afecte demasiado ya que no afecta a las preferencias ni a como se valora cada opción, si no que permite elegir una distinta a la mejor opción. Lo cual no parece resultar muy útil. Aún en el caso de tener libre albedrío lo más probable es que el resultado no varíe y la respuesta sea la misma. Es difícil diferenciar entre un agente racional y un agente racional con libre albedrío.

Cosas que no necesitan libre albedrío

Muchas veces se atribuyen al libre albedrío ser la causa de diversos comportamientos que en realidad no lo requieren.

Comportamiento aleatorio: el comportamiento aleatorio es tan contrario al libre albedrío como el comportamiento determinista.

Curiosidad: ser curioso consiste en tener preferencia por las cosas nuevas o desconocidas.

Comportamiento irracional: muchas veces el comportamiento irracional se debe a las diferentes preferencias entre el que juzga y el que lo juzga. Un agente es racional siempre siga sus preferencias, sin importar las que sean. Aquí surge que a veces se confunde la irracionalidad de la inteligencia artificial con la asociada a ciertos comportamientos humanos. Por ejemplo las conductas autodestructivas se consideran irracionales, pero si yo programo un agente para que prefiera darse, literalmente, cabezazos contra la pared ese será un comportamiento racional.

Pero….

A nivel de comportamiento puede ser que no varíe el resultado pero eso no quiere decir que dotar de libre albedrío a un agente inteligente no sería un logro histórico para la humanidad. Tendría consecuencias científicas y filosóficas revolucionarias. Hay una diferencia enorme entre “elegir la mejor opción” y “elegir libre y voluntariamente la mejor opción”.

Inteligencia artificial, armas y ética.

Últimamente grandes empresas de tecnología como Google o Microsoft han tenido conflictos con sus trabajadores por querer aplicar sus conocimientos en I.A. al campo militar. Parece que hay una corriente en contra de dotar a las armas de inteligencia. Por otro lado el Pentágono dice que necesita desarrollar ese tipo de armas para poder defenderse de países con menos escrúpulos que si las desarrollen.

Actualmente la mayoría aceptamos que el uso de armas en defensa propia es legítimo y ético. Siempre y cuando se haga un uso proporcionado de las mismas. Incluso se acepta tomar represalias en respuesta a ataques siempre que se evite afectar a inocentes. ¿Quién se podría negar a ayudar a defender a tu país? Y aunque no sea patriota. ¿Quién se niega a defender a sus vecinos?. Creo que nadie, el problema es confiar en que el gobierno de tu país no va a usar las armas de forma poco ética.

Realmente las armas inteligentes hace muchos años que existen y se emplean. Quizás el caso más conocido sean los sistemas de guiado para que las armas alcancen su blanco. Siempre se ha defendido que su mejora reducirá los daños colaterales. Sin embargo en su origen estos sistemas servían para lo contrario.

Mejores armas y tratados internacionales

Los sistemas de guía nacieron en la segunda guerra mundial con los cohetes alemanes. Que un cohete llegase solo hasta su objetivo cuando hasta a los pilotos de los bombarderos les costaba localizar los objetivos fue todo un reto. Los primeros sistemas de guía eran poco más que cronómetros que pasado cierto tiempo de vuelo cortaban el flujo de combustible a los motores para que el cohete se precipitara sobre su objetivo. Con objetivos del tamaño de Londres era posible, pero no fácil, acertar. Derribar un solo bloque de edificios en una ciudad era imposible. Pero Londres no se bombardeaba para alcanzar objetivos militares se bombardeaba para desmoralizar a la población. Cohetes más precisos no eran la solución. La solución ha sido los Convenios de Ginebra. Es decir llegar al acuerdo entre naciones de unas reglas humanitarias que hay que respetar en los conflictos armados. Muchas armas como las químicas, bacteriológicas, lanzallamas, napal, minas antipersona, bombas de racimo,… Se han prohibido, gracias a acuerdos internacionales y por razones humanitarias, no por motivos tecnológicos.

Por tanto, la mejora de las armas no trajo consigo una reducción del número de civiles muertos. Lo tratados internacionales es lo que los ha traído y aun así sigue habiendo gran cantidad de “daños colaterales”. La idea es que si un país incumple esos acuerdos podrá ser sancionado por el resto de los países. Para ello es necesario que exista un equilibrio de fuerzas ya que en el momento que un país supere en fuerzas al resto de países juntos podría hacer lo que quisiera….¿O no?.  No. Aunque un ejercito sea muy superior a otro toda lucha tiene un coste. Puede que seas más fuerte que tú rival pero no vas a usar la fuerza con él porque aunque ganes algún golpe vas a recibir y nunca es agradable. Además de que tiene un coste en imagen, nadie quiere tratar con alguien violento. Para los países es parecido solo que muchos más complicado. Tienen que cuidar la imagen exterior pero también hacia los propios ciudadanos. Igualmente una guerra tiene dos tipos de costes, económico y en vidas de los soldados enviados a combatir. Los ciudadanos no se toman nada bien la muerte de los propios soldados.

Reducir los costes de la guerra

La inteligencia artificial permite hacer armas baratas y precisas. Pero también sustituir a los soldados. Esto permite reducir el coste de la guerra, al menos en vidas de soldados. De primeras puede parecer una ventaja, pero tiene una pega. Al reducir lo que a un país le cuesta la guerra es más fácil es que decida comenzar una, aunque sean guerras “baratas” en vidas no parece que sea una buena idea dirigirse hacia un mundo donde sea más fácil mandar a máquinas a destruirse entre ellas que sentarse a negociar.

Además nos podemos plantear si el ideal de una guerra donde no mueran soldados es una guerra sin víctimas. Los daños colaterales no siempre son causados por ataques directos. La población también sufre por los daños a las infraestructuras (electricicidad, agua, luz, comunicaciones, carreteras, …). Por lo que la idea de una guerra sin bajas es cuestionable y la única lucha sin muertes es la que se da en las mesas de negociación.

Carrera armamentística

Con tecnologías como la inteligencia artificial con un desarrollo tan rápido se corre el riesgo de entrar en una absurda carrera armamentística donde cada arma queda desfasada antes de entrar en uso. Espionaje, desconfianza, dudas de lo que habrán desarrollado los demás, pruebas de fuerza para demostrar lo que tú eres capaz pero sin mostrar todas tus cartas, faroles,…. El peligro de todo esto es la mala imagen que da del campo de la I.A. y esto puede repercutir en los futuros investigadores que decidan dedicarse a investigar otras cosas.

El secretismo retrasa el desarrollo

La investigaciones militares están rodeadas de un gran secretismo. Por lo que se corre el riesgo que los resultados y avances que ellos obtengan queden clasificados y no aporten a la comunidad. Si no que se lo pregunten a Clifford Cocks que creo un sistema de cifrado de clave asimétrica en 1973 pero que el gobierno británico mantuvo en secreto hasta 1997. Lo irónico de todo esto es que ese sistema fue reinventado en 1977 de forma independiente dando lugar al hoy conocido como “algoritmo RSA”. En apenas 4 años su “sistema de cifrado secreto” podía ser usado por cualquiera. Y es que en el mundo actual con tanta gente cualificada es difícil que ningún gobierno o empresa desarrolle algo que nadie más este a punto desarrollar. La única manera que tiene un gobierno de proteger sus “armas secretas” es crear leyes que limiten el desarrollo de ciertos campos fuera del ámbito militar. Estados Unidos ha llegado a tener leyes muy estrictas sobre tecnologías para cifrar datos.

En la lista de afectados por este secretismo y prohibiciones podemos encontrar: la colaboración entre países, las universidades y sus investigadores, las empresas privadas, y los proyectos de software libre….casi nada.

I.A. tomando decisiones éticas

Las decisiones que tiene que tomar el ejercito no siempre son fáciles. De hecho puede que no haya solución buena. ¿Bombardear un campamento enemigo donde puede haber civiles pero que evitara una batalla más cruenta en un territorio más poblado? ¿Y si solo reduce el número de bajas de tus soldados? ¿Unos pocos civiles para evitar la muerte de miles de tus soldados?. ¿Cuantos daños colaterales son aceptables en un bombardeo?. Si hacemos máquinas inteligentes con la capacidad de decidir sobre la vida y la muerte han de ser capaces de lidiar con semejantes decisiones. Lo mínimo que ha de ser capaz es de saber a quien puede y a quien no puede disparar. O casos mas complejos como cuando un enemigo se ha rendido o esta herido. Un arma inteligente debe de respetar los tratados internacionales.

El ser humano no es perfecto. Son famosos muchos abusos de soldados a prisioneros. Sin embargo una I.A. dotada de una ética que le prohibiese comerte esos abusos nunca los cometería. ¿No podemos hacer armas dotadas de ética? Es difícil. Para empezar desde el punto de vista de todo ejercito ellos son los buenos. Las “hordas malvadas” existen en las películas, todos los soldados son personas con una vida, amigos y familia. Luchando por lo que creen que es lo correcto o por lo menos por lo que su país cree que es correcto. Incluso es posible que cada bando tenga parte de razón. A una guerra rara vez se llega de un día para otro, suele ser causa de una escalada de tensiones y de agresiones que termina en un conflicto entre bandos. Posiblemente la postura ética de “la violencia solo esta permitida en defensa propia” sea la más adecuada, pero difícilmente un ejercito va comprar un arma con esa forma de pensar. Sin embargo un arma inteligente que no tenga ningún tipo de limite ético seria poco más que una picadora de carne.

El peligro de que se vuelvan en nuestra contra

Quizás sea el caso menos probable, pero si dotamos a un arma de la capacidad de matar, debemos asegurarnos de que no la va a usar contra los seres humanos de forma indiscriminada. No podemos permitir que mate soldados, civiles, sanitarios, periodistas y cualquier cosa que se parezca a un ser humano. Asi que la ética de la I.A. actúa, ademas de como extensión de nuestra propia ética, como mecanismo de seguridad.

Una I.A. puede volverse en contra nuestra no solo por que alcance un nivel de consciencia tal que le permita “volverse contra sus creadores”, también esta expuesta a problemas técnicos (averias, bugs, daños) y “hackeos” desde el otro bando. Este escenario es más probable y en el caso de un ejercito con gran dependencia de este tipo de armas puede ser un desastre.

Sin embargo el escenario más probable por el que un arma puede acabar siendo usada contra los soldados del país que la desarrollo. Su comercialización. La venta de armas mueve decenas de miles de millones de euros anuales. Es una cantidad muy jugosa como para no comercializar las innovaciones. Es cierto que se trata de limitar a que países se venden, pero al final cuando un arma se introduce en el mercado resulta difícil que no acabe en manos de aquellos países que tengan dinero para comprarlas.

Derecho a la defensa

Los países tienen el derecho y la necesidad de poder defenderse. Eso impulsa la carrera armamentística de fabricar armas antes de que lo haga el enemigo. Sin embargo no es del todo cierto. No hace falta tener las mismas armas para defenderte del enemigo. De las armas químicas o biológicas no te proteges con más armas químicas o biológicas si no mejorando los tratamientos. La defensa legitima la investigación en todo tipo de armas “para defendernos de ellas”. Pero conocer cómo funcionan no quiere decir que se desarrollen. Precisamente para evitar eso entran de nuevo los tratados internacionales que vigilen que el resto de países no las fabriquen.

Los programadores y las armas

¿Puede un trabajador quejarse de que su trabajo se use en armas?. En un mundo ideal un trabajador tiene derecho a tener cierto control ético sobre su trabajo y más cuando es un trabajo creativo. en un mundo menos ideal y más real se entabla un “tira y afloja” con la empresa y dependerá de la fuerza que tenga cada uno. La mayor amenaza que tiene un trabajador es dimitir si la empresa sigue adelante. Nadie puede discutir el derecho de un trabajador a dimitir e irse si no le gusta lo que hace. En un área tan competitiva y necesitada de expertos como la inteligencia artificial el riesgo de causar descontento entre tus trabajadores y que una cantidad apreciable de ellos te abandonen por la competencia puede causar más costes que el beneficio que te reporte un proyecto militar, que además te va a producir mala imagen pública.

Conclusiones

El control de las armas ha de realizarse a través de tratados internacionales, la presión pública y la ética profesional.

La militarización de un campo puede entorpecer su desarrollo y dañar su imagen.

Mejores armas y más baratas no significan menos víctimas, ni guerras más humanas significa que sea más “barato” entrar en una guerra.