martes, 16 de julio de 2019

La nueva definición de Transformación Digital de Brian Solís


Cuando hace ya más o menos año y medio comencé a recopilar definiciones de Transformación Digital, una de las primeras aportaciones fue la de Brian Solís que recogía junto con otras dos en el artículo titulado "Tres definiciones de transformación digital y una lista de objetivos"

En aquella ocasión, la definición que nos ofrecía Solís era la siguiente:

el realineamiento de tecnología, modelos de negocio y procesos con el fin de crear valor a los clientes y empleados en una economía digital cambiante.

Ayer 15 de Julio, Brian Solís ha publicado en su blog un sencillo artículo titulado "Digital Transformation 101" y en él nos ofrece una nueva definición de Transformación Digital. Su nueva propuesta es ésta:

Digital transformation is the evolving pursuit of innovative and agile business and operational models — fueled by evolving technologies, processes, analytics and talent — to create new value and experiences for customers, employees and stakeholders

En el fondo mantiene la filosofía de la anterior, resaltando el uso de la tecnología para aportar al negocio aunque, en esta ocasión indica alguna de las formas de transformar el negocio (innovación, agilidad, nuevos modelos operativos y nuevas experiencias no sólo para clientes sino también empleados y stakeholders) y hace que a la tecnología le acompañen en el viaje de la transformación otros elementos como los procesos y el talento.

Una definición, en mi opinión, bastante acertada aunque quizá, yo prescindiría de esa mezcla de elementos no tecnológicos, no porque no existan y aporten, y no porque a esos elementos no les favorezca también la tecnología digital, sino porque considero que no son diferenciales de la transformación digital sino propios de cualquier transformación.

En cualquier caso, Brian Solís es una autoridad y un divulgador en la materia, así que vale la pena prestarle atención.

Artículos de este blogs relacionados

viernes, 12 de julio de 2019

Sin software no hay paraíso: razones de la disrupción digital


La existencia del software es clave para la disrupción digital

En el primer capítulo de mi libro, 'La Carrera Digital', hago un ejercicio de identificación las características propias de lo digital que explican su explosión y aportan las razones de su naturaleza disruptiva.

Son estas:

  • Uniformidad
  • Ductilidad
  • Incorporeidad
  • Replicabilidad
  • Gratuidad
  • Exponencialidad

Para entender más en detalle lo que esos términos significan aconsejo, evidentemente, leer el libro. Pero sí quisiera destacar en este artículo que de esas seis características, salvo la primera, uniformidad, las otras cinco (ductilidad, incorporeidad, replicabilidad, gratuidad y exponencialidad) se dan gracias a la existencia del software, es decir a la clara separación entre una parte con realidad física, el hardware, y otra con realidad lógica, el software.

Es la inmaterialidad y la maleabilidad del software lo que explica, en una gran medida, la explosión digital.

Sin despreciar para nada la aportación del hardware, es el software lo que aporta con claridad un mayor valor diferencial y disruptivo.

Sin software no habría transformación digital. Sin software no habría disrupción digital. Sin software, en definitiva, no hay paraíso.

Otros artículos en este blog sobre mi libro "La Carrera Digital"

jueves, 4 de julio de 2019

El contexto de los procesos de negocio


Cuando trabajamos con procesos de negocio, una de las actividades típicas es el descubrimiento y el modelado del proceso, es decir, la recopilación de la forma en que se ejecuta un proceso y su plasmación en un lenguaje formal, normalmente de naturaleza gráfica.

El modelo de un proceso de negocio describe, de alguna forma, un prototipo, un patrón de cómo se debe ejecutar luego cada instancia concreta (caso) de ese proceso. Si,por ejemplo, hemos modelado la gestión de pedidos de una empresa eCommerce, lo que define el modelo de proceso es, de forma general, cómo se trata un pedido, mientras que, cuando un cliente concreto hace un pedido concreto, estamos ante un caso de ese proceso.

Asumimos, y es bastante lógico, que el caso real se ajusta al modelo de proceso y, en cierto sentido, esas es la intención.

Sin embargo, la realidad tiende a matizar los modelos teóricos.

He retomado la lectura del libro 'Process Mining. Data Science in action' de Wil van der Aalst que, por diversos motivos, tuve que detener hacia la mitad. Y, en un momento dado, el autor se detiene a hablar de lo que denomina el contexto del proceso, es decir, factores que rodean al proceso y que hacen que la ejecución real de un caso puede estar matizada de alguna manera respecto al comportamiento prototípico del modelo. Cierto que van der Aalst nos habla del contexto en relación al Process Mining, pero creo que el planteamiento de ese contexto es relevante en cualquier caso. siquiera como advertencia.




Para este autor, hay cuatro niveles de contexto:

  • Contexto del caso propiedades específicas del caso que pueden cambiar el comportamiento. Así, por ejemplo, en el caso de los pedidos, el comportamiento se puede ver alterado en el caso, por ejemplo, de clientes muy importantes (pueden recibir mayor atención o prioridad) o pedidos muy grandes.

  • Contexto del proceso En este caso, hablamos de interacciones entre instancias del mismo proceso. Así, por ejemplo, esas instancias pueden competir por los mismos recursos, por ejemplo, el equipo humano que ejecuta alguna tarea o, en el caso de los pedidos, las existencias en almacén. Y eso puede hacer que diferentes instancias del mismo proceso, no se comporten de una forma completamente similar.

  • Contexto social Se refiere a aspectos que afectan a personas y organizaciones y que recoge influencias como las derivadas de que las mismas personas o grupos puedan trabajar en diferentes procesos o a que puedan existir roces de todo tipo entre esas personas y organizaciones.

  • Contexto externo Finalmente, este contexto abarca elementos de un ecosistema que supera las barreras de la organización. Hablamos, por ejemplo, de la situación económica, regulatoria o incluso climática.

La existencia de estos contextos hace que el valor del modelo de proceso como prototipo, siendo muy alto, no sea completamente definitorio y debamos estar advertidos de que las diferentes instancias de un procesos seguirán comportamientos algo diferenciados. Es importante para process mining, pero también para análisis de tiempos, para indicadores, etc


lunes, 1 de julio de 2019

Mi definición de Transformación Digital


Hace ya algún tiempo, comencé a recopilar definiciones de 'Transformación Digital' y registrarlas con un breve comentario en este blog.

Ahora que acabo de publicar 'La Carrera Digital', mi primer libro que versa, precisamente, sobre Transformación Digital, parece lógico que recoja y comente aquí mi propia definición.

Pues bien, la definición que yo propongo es la siguiente:

Transformación digital es un cambio profundo que realiza una organización para adaptarse a los retos y aprovechar las oportunidades que genera la tecnología digital.

En el libro comento cinco aspectos que contiene esta definición: cambio profundo, organización, tecnología digital, adaptarse y aprovechar.

Pero aquí voy a comentar algún otro punto quizá más implícito en esta definición.

Por un lado, centro la Transformación Digital fundamentalmente en el entorno de las empresas, ya que concibo la transformación como un programa de cambio decido dentro de una organización (normalmente una empresa). De esta forma dejo al margen una eventual transformación digital de una sociedad en su conjunto o de la persona a nivel individual. Me gustaría dejar claro que hacerlo así, es una cuestión de foco, no de descalificación. Mi interés se centra fundamentalmente en la transformación de empresas y ahí es donde me centro, pero dejo abierto como interesante campo de trabajo la transformación tanto personal como social.

Por otro lado, doto a la transformación digital de un carácter estratégico, ya que se trata de un programa que responde a amenazas y sobre todo oportunidades del entorno, en este caso un entorno que viene dado por las posibilidades de la tecnología digital.

Ese carácter estratégico lleva aparejado el carácter personalizado de la transformación. No creo en fórmulas generales de transformación digital sino en la respuesta individualizada de cada empresa adaptada a su realidad y la de su entorno competitivo.

Por lo demás, sólo insistir en la importancia que para mi tiene la tecnología como medio y habilitador de la transformación, huyendo de concepciones que, queriendo destacar los aspectos estratégicos y humanos, que no niego sino todo lo contrario, banalizan e incluso niegan el papel de la tecnología. No es esa mi posición: defiendo como clave la estrategia y el papel de las personas, pero afirmo igualmente la importancia innegable de la tecnología y la necesidad de su conocimiento y dominio.

Para conocer más de mi enfoque sobre la Transformación Digital deberíais leeros el libro o, al menos, poco a poco ir siguiendo algunos aspectos que desgranaré en este blog.


Artículos de este blogs relacionados

Otros artículos en este blog sobre mi libro "La Carrera Digital"

viernes, 28 de junio de 2019

Una introducción a la ciberseguridad con Mónica Valle

'Ciberseguridad. Consejos para unas vidas digitales mas seguras' es un libro más bien corto y de intenciones eminentemente divulgativas, en que se aborda la temática de la ciberseguridad pero no desde el punto de vista de la tecnología exactamente sino, más bien, desde su percepción y empleo por parte de usuarios finales, y pensando principalmente en las personas individuales más que en el ámbito corporativo.

El libro no tiene exactamente una estructura en capítulos sino una serie de temas que, de forma sucinta, aborda secuencialmente.

El primer conjunto de temas se centra aspectos generales relacionados con la seguridad, y en esa parte del libro encontramos la siguientes secciones:
  • 'Qué es la ciberseguridad'
  • 'Qué es un hacker'
  • 'El lado oscuro'
  • 'El cibercrimen en la actualidad'
  • 'Un poco de historia: los primeros virus informáticos'
  • 'El negocio del cibercrimen'
  • '¿Para qué quieren mis datos?'
  • 'Toda información es valiosa'
  • 'Suplantación de identidad'
Y luego, las siguientes secciones recorren los diversos tipos de ciberataques más comunes y proporciona algunas sugerencias para la protección o prevención. En este ámbito se incluyen los apartados:
  • 'Tipos de ciberamenazas más comunes y cómo detectarlas'
  • 'Spam y fraudes a través del correo electrónico'
  • 'El phishing y la ingeniería social'
  • 'Programas maliciosos'
  • 'Navegación segura'
  • 'Las redes sociales y la privacidad'
  • 'Configuración de la privacidad en las redes sociales'
  • 'Acoso a través de la red'
  • 'Ciberacoso o ciberbullying'
  • 'Sextorsión'
  • 'Internet y los menores'
  • 'Ciberacoso (Cyberbullying)'
  • 'Grooming'
  • 'Sexting'
Y, finalmente, aborda unas secciones sobre cómo comportarse tras un ataque y algún otro aspecto general, en los siguientes puntos:
  • 'Me han ciberatacado. ¿ahora qué hago?'
  • 'Dónde acudir'
  • 'Lo que está por venir'
  • 'Esto no es el fin, es el principio'
Un libro, en fin, sencillito, cuya mejor aportación es, creo, la panorámica amplia de los posibles ataques y el sencillo acercamiento que propone a un tema tan complejo técnicamente como es la ciberseguridad.

Mónica Valle

(Fuente: Elaboración propia de la biografía en su página oficial)

Mónica Valle
Mónica Valle es periodista y comunicadora especializada en los sectores de la tecnología, la innovación y seguridad informática.

En 2017, después de pasar por diversos medios de comunicación, decidió fundar su propio proyecto, Bit Life Media, que compatibiliza con otras actividades, como presentar de forma profesional eventos, la publicación de su primer libro 'Ciberseguridad: Consejos para tener vidas digitales más seguras' o colaborar como presentadora del espacio de radio semanal de ciberseguridad en AfterWork de Capital Radio.

Como parte de su trabajo habitual, es presentadora, maestra de ceremonias y moderadora de mesas redondas en eventos. También participa como ponente, hablando de comunicación, del periodismo tecnológico o la importancia de que la sociedad adquiera más cultura en ciberseguridad.

La televisión es una de sus pasiones, donde realiza colaboraciones y ha presentado varios programas. Ha sido presentadora y directora de contenidos de Mundo Hacker, programa de televisión emitido durante dos temporadas en Discovery Max, y una tercera temporada en La 2 de RTVE.

Antes, he pasado por la pantalla en programas de cultura y entretenimiento en Onda6 TV y La 10 (Vocento) y por otras empresas tecnológicas y medios de comunicación como Telemadrid, Telecinco o Tuenti.

Durante años, he combinado la faceta del periodismo con la comunicación, en especial la audiovisual. Desde producción audiovisual o generación de contenidos hasta organización de eventos. Y una de sus metas siempre ha sido (y es) el emprendimiento.

Uniendo esas pasiones, en 2017 fundó Bit Life Media, un proyecto de comunicación especializado en tecnología que se compone de dos grandes patas: una publicación online dedicada a la información de la tecnología, la ciberseguridad y la innovación (www.bitlifemedia.com), y un servicio completo de producción audiovisual, especializado en la comunicación digital y el vídeo corporativo (servicios.bitlifemedia.com).

Su formación, así como su experiencia profesional, se ha centrado en la comunicación en todas sus facetas. Está licenciada en Comunicación Audiovisual y en Publicidad y Relaciones Públicas.

Periódicamente se recicla con diversos programas de formación en comunicación, producción y locución. Ha sido alumna de la primera promoción del Programa Superior de Presentadores de TV del Instituto Tracor, dirigido personalmente por Jesús Hermida.

Puedes saber más sobre la autora visitando su página oficial o siguiéndola en Twitter donde se identifica como @monivalle
AUTOR: Mónica Valle,
EDITORIAL: Editatum
AÑO: 2018
ISBN: 978-8494864391
PAGINAS: 161

miércoles, 26 de junio de 2019

Mi Actividad: Rigor y fe, o reflexiones tras la presentación de mi libro "La Carrera Digital"


Cuando esto escribo, tengo muy vivas todavía las emociones sentidas en el día de la presentación de mi libro "La Carrera Digital".

Como expliqué al iniciar mi intervención, ayer era un día muy especial para mi. Y lo era, no sólo por la presentación del libro, que ya de por sí es bastante motivo, sino porque, de alguna forma, marcaba de manera simbólica un hito en una transformación personal y profesional en la que llevo inmerso algo más de un año, pero que ya tenía planificada desde bastante antes..

Hace algo más de año me formulé para mis adentros una nueva misión, una misión que es fundamentalmente profesional pero que también me implica en lo personal y en la ejecución de unos valores firmemente asentados.

Me he propuesto ayudar al tejido empresarial español, y si es posible, hispano, especialmente a directivos y PYMEs, a entender y aprovechar todo lo que la tecnología digital puede ofrecer. Me he propuesto situarme en un plano que conjugue una visión dual negocio-tecnología, ayudando a los directivos a entender la tecnología y a los tecnólogos a comprender cómo esta se incardina en el negocio. Y me he propuesto proporcionar contenidos y directrices rigurosas y realistas pero comprensibles. Y mi forma de entregar ese valor es mediante asesoría, mediante docencia... y mediante la publicación, hasta ahora en el blog y, desde ahora, también en formato libro.

Ayer, por primera vez, expresé en voz alta y en público, esa misión.

Ayer, expliqué, al hilo de los contenidos del libro, mi marco conceptual para una transformación, incluso más allá de la digital, que se apoya en tres pilares: el conocimiento, el método y la acción.

Y ayer expresé también los dos valores que complementan ese marco: el rigor y la fe. El rigor, que tiene que ver con el conocimiento y con el método, el rigor que es adecuación intelectual y metodológica, que es hacer y contar las cosas correctas, verdaderas, relevantes. 

Y fe que es confianza en la visión y en las propias capacidades, que es resiliencia y convicción en la consecución de los objetivos.

La presentación de ayer fue, creo, bonita, interesante, polifacética y participativa. Y me sentí muy, muy a gusto. Un día para recordar.

Unas gracias inmensas a todos los que acudisteis. Habéis formado parte de un día singular para mi, y vuestra presencia en tan especial momento, no se me va a borrar de la memoria.

Pero el mensaje que quiero transmitir, para que de cumplimiento a mi misión, necesita público, mucho público. El público de ayer era maravilloso, el mejor que uno pueda desear... pero escaso. ¡Eché de menos a tanta gente y tantos colectivos!

¿Qué voy a  hacer ahora, entonces?

En realidad ya os he dado alguna pista...

Creo que en el libro, e incluso en la presentación, he dado pleno cumplimiento al rigor. Y ahora, para extender el mensaje, para que más allá del público de ayer mi voz se escuche mucho más lejos, llega el momento de la fe. Ayer fue un día muy, muy especial... pero no el único.

Voy a persistir en transmitir el mensaje, en cumplir mi misión.

En realidad, la carrera acaba de comenzar...

Bienvenidos



lunes, 17 de junio de 2019

Blockchain como una gigantesca máquina virtual


Confieso que no se me había ocurrido hasta ahora entenderlo de esa forma.

Blockchain es una tecnología que no resulta sencilla de entender y que, quizá, tampoco ha sido demasiado claramente explicada. Pero en lo que se puede ir entendiendo más fácilmente de blockchain, uno se hace a la idea de cómo son los bloques, cómo se unen formando cadenas, cómo se gestionan transacciones o el uso que se hace de la criptografía.

Pero parecen existir otras perspectivas, quizá más rompedoras, y ligadas al concepto de 'smart contracts' o, mejor aún, de aplicaciones distribuidas.

En las primeras páginas del libro 'Mastering Ethereum' de Andreas M. Antonopoulos y Gavin Wood. me sorprendió que hablasen de Ethereum como una máquina virtual a la que, incluso, ponen nombre: Ethereum Virtual Machine (EVM). De hecho, ya en el segundo párrafo del primer capítulo, nos dicen:

Ethereum is a deterministic but practically unbounded state machine, consisting of a globally accesible singleton state and a virtual machine that applies changes to that state.

Unas páginas más adelante nos dicen:

Ethereum state transitions are processed by the Ethereum Virtual Machine (EVM), a stack based virtual machine that executes bytecode (machine language instructions), EVM programs called "smart contracts" are written in high-level languages (e.g. Solidity) and compiled to bytecode for execution on the EVM.


Es una original forma de entenderlo pero, seguramente, resulte clave. Ethereum, aunque también tiene transacciones e incluso su propia critpomoneda ('ether'), pone mucho foco en los smart contracts y las aplicaciones distribuidas, es decir, sin perder elementos de plataformas anteriores de blockchain, se orienta a la ejecución distribuida de software.

Para que la construcción de esas aplicaciones sea eficiente y, digamos universal, en el sentido de independiente de hardware y sistema operativo, conviene se ejecuten y, por tanto, compilen, en el mismo entorno de máquina virtual. Con la particularidad adicional de que la información que usan las aplicaciones forma parte de ese estado único, conocido y compartido por todos los intervinientes, y que reside en la cadena de bloques.

Y dado que Ethereum es una plataforma pública de blockchain, y muy popular, aspira probablemente a la universalidad y, por tanto, esa máquina virtual y ese estado único sean ubicuos ('pervasive') y, por tanto, hayamos convertido a blockchain en una gigantesca máquina virtual.

Es, desde luego, una forma de entender blockchain muy diferente. al menos a mi me lo parece, y que abre nuevas y ambiciosas perspectivas, quizás el propio futuro de blockchain.

miércoles, 12 de junio de 2019

Vídeo: Hoy vengo a hablar de mi libro, La Carrera Digital



Ya he anunciado en este blog la publicación de mi primer libro, 'La Carrera Digital' que acaba de ver la luz en Mayo. En este vídeo, intento explicar un poco la temática del libro y su planteamiento. Espero que te interese.

Aprovecho para anunciar que la presentación oficial tendrá lugar en Madrid el día 25 de Junio a las 19:30 en la sede de la Escuela de Organización Industrial. Por supuesto, estaré encantado de verte y firmarte un ejemplar. No es imprescindible pero, si quieres acudir, es bueno que te apuntes en esta página.



Dónde encontrar el libro

Si tienes interés en adquirir el libro en los siguientes sitios:

Agradecimiento:

Un profundo agradecimiento a Luis Pavía por la filmación y producción del vídeo.


lunes, 10 de junio de 2019

Empatía tecnológica


Quizá, más que de empatía tecnológica, debería hablar de empatía a la hora de comunicar la tecnología.

Creo que en la comunicación de la tecnología, ya sea a nivel de publicidad comercial, ya sea en publicaciones desde las más sencillas como los blogs o las más complejas como los libros, o incluso en la educación en tecnología, se tiende a caer en dos extremos igualmente erróneos o, al menos, igualmente poco acertados.

Por un lado tenemos el extremo simplista, aquel que apenas explica e incluso entiende la tecnología, que la rodea de mitos y lugares comunes e, incluso, con cierta frecuencia, de fantasías y errores conceptuales. Este extremo es habitual en la información comercial o en la divulgación de baja calidad.

El otro extremo es el contrario, el tipo gurú, aquel que, pleno de conocimiento, explica la tecnología sólo para los muy iniciados (quienes, tal vez, no necesiten ya esa comunicación) y, con frecuencia, centrándose mucho en detalles algorítmicos o de implementación y perdiendo (o al menos no transmitiendo) aspectos más generales como el porqué de esa tecnología, la arquitectura o funcionalidad de alto nivel, el esquema general, los beneficios para el negocio, cómo compara con otras similares, etc. Es decir, le falta perspectiva y cercanía.

En ambos casos, pero especialmente en este segundo, creo que se adolece de una cierta empatía, de ponerse en el lugar de quien recibe esa comunicación, de la persona que, con una honrada curiosidad o aspiración al conocimiento o, quizá, necesitada de un desarrollo profesional o empeñado en un desarrollo personal, o incluso, preso de una necesidad de su empresa, aspira a entender, insisto a entender, una tecnología.

Me ha surgido esta reflexión leyendo el libro 'Mastering Ethereum' de Andreas M. Antonopoulos y Gavin Wood, un libro que me ha sido muy recomendado como referencia en el ámbito de blockchain en general, y del blockchain público, Smart Contracts y Ethereum en particular. Un libro que aún estoy leyendo y que, en el punto en que me encuentro, me parece excelente...pero al que, sin embargo, en sus primeras páginas no he tenido más remedio que 'afearle' esa falta de empatía con el lector no tan especializado como los autores, con quien busca, antes que los detalles, una cierta perspectiva. Pero este es sólo un ejemplo, y probablemente no el peor ni mucho menos puesto que, como digo, por lo demás, el libro me parece muy, muy bueno y de un profundo conocimiento.

En realidad, estoy hablando de un problema generalizado, en mi opinión en la comunicación y educación en tecnología. Una perjudicial polarización entre el simplismo y la erudición cuando creo que, la situación más beneficiosa es justo la intermedia: el explicar la tecnología con rigor y conocimiento, pero de forma simple y proporcionando perspectiva amplia y un contexto de alto nivel que la sitúe en su punto justo. 

Y dado lo importante que es la tecnología en el mundo actual, y lo importante que lo será en el mundo futuro. Y dado que lo previsible es que la tecnología siga evolucionando y surjan nuevos conceptos y soluciones. Y dado que para conseguir una implantación efectiva de las tecnologías y una adopción real por las empresas necesitamos que directivos y profesionales entiendan, entiendan de verdad, las tecnologías, haremos bien en mejorar nuestra comunicación acerca de la tecnología y en incrementar esa empatía tecnológica.

lunes, 3 de junio de 2019

Los ocho componentes de una blockchain pública y los ocho componentes de Ethereum


Blockchain es una tecnología muy relevante en el panorama actual pero no es precisamente una tecnología sencilla de entender. Quizá porque es intrínsecamente compleja, quizá porque, en realidad, más que una tecnología por sí misma es una combinación de tecnologías que proporcionan la base para una diversidad de soluciones y casos de uso.

Así que agradezco cualquier aportación que ayude a estructurar y hacer más digerible el mundo del blockchain.

He comenzado a leer una las obras más relevantes publicadas actualmente, a saber, el libro 'Mastering Ethereum' de Andreas M. Antonopoulos y Gavin Wood. En el primer capítulo, de intención divulgativa, los autores identifican los ocho componentes que ellos entienden que suelen estar presentes en todas las plataformas de blockchain públicas. Y estos son los componentes que identifican:

  • Una red Peer-to-Peer que conecte a los participantes y propague las transacciones y los bloques de transacciones verificadas

  • Mensajes, en forma de transacciones, que representen cambios de estado.

  • Un conjunto de reglas de consenso, que gobiernen lo que constituye una transacción y qué transacciones son válidas.

  • Una máquina de estados que procese las transacciones con arreglo a las reglas de consenso.

  • Una cadena de bloques securizada mediante criptografía que recoja todas las transacciones verificadas y aceptadas

  • Un algoritmo de consenso que descentralice el control sobre la cadena de bloques haciendo que los participantes colaboren en el cumplimiento de las reglas de consenso.

  • Un esquema de incentivos que asegure económicamente la máquina de estados en un entorno abierto.

  • Una o más implementaciones de lo anterior en un entorno abierto.

Y luego, hacen un 'mapping' a los ocho componentes específicamente de Ethereum. Y se traduce en lo siguiente:

  • Red Peer-to-Peer: En concreto, Etehereum se ejecuta sobre la red denominada 'Ethereum main network' que se encuentra a nivel de protocolo TCP en el puerto 30303.

  • Reglas de consenso: Ethereum dispone de unas reglas de consenso descritas la especificación de referencia (Yellow Paper).

  • Transacciones: Las transacciones en Ethereum son mensajes de red que incluyen entre otras cosas. al emisor/receptor, el valor y la carga de datos (payload).

  • Máquina de estados: En Ethereum existe la 'Ethereum Virtual Machine' (EVM), una máquina virtual que ejecuta bytecodes y cuyos programas, los llamados contratos inteligentes, se escriben en lenguajes de alto nivel y se compilan a bytecodes para su ejecución.

  • Estructuras de datos: El estado de Ethereum se almacena localmente en cada nodo, como una base de datos, que contiene las transacciones y el estado del sistema en una estructura de datos serializada.

  • Algoritmo de consenso: Ethereum adopta un mecanismos de consenso similar al de Bitcoin en que se usa la firma secuencial de bloques, ponderada por la importancia de la prueba de trabajo ('Proof of Work', PoW) para determinar la cadena más larga y, por tanto, el estado actual.

  • Seguridad económica: Ethereum usa 'Ethash' como algoritmo de PoW.

  • Clientes: Existen ya varias implementaciones de clientes interoperables de los cuales, los más relevantes son 'Go-Ethereum (Geth)' y 'Parity'.

Hay que reconocer que esta explicación, por sí misma, tampoco es precisamente cristalina, pero, aunque todavía hay mucho que 'rascar' para entender realmente blockchain en general, y Ethereum en particular, la identificación de estos ocho componentes creo que ayuda a poner, al menos, esa estructura que voy buscando.

miércoles, 29 de mayo de 2019

Ha llegado la hora. Publico mi primer libro: 'La Carrera Digital'

Ha llegado la hora. Así se titula la introducción del libro 'La Carrera Digital' que acabo de publicar. Y 'ha llegado la hora' es lo que siento en este momento en que, con esta publicación. realizo un sueño muy arraigado en mi y largamente acariciado.

'La Carrera Digital' habla de Transformación digital y en él intento volcar una parte de lo aprendido en casi treinta años de ejercicio profesional, bien acompañado de continuado estudio y actualización personal.

Podría haber hablado de otras muchas cosas, amplio es el abanico de mis intereses, pero tras una inspiración, tras una visualización de lo que el libro podía ser, decidir apostar por este tema. Y espero aportar una visión compresible y rigurosa sobre la realidad de tecnología digital y sobre el significado y, sobre todo, la forma de llevar a cabo una transformación digital.

Hablaré con frecuencia de mi libro en este blog y en mis otros medios sociales, pero hoy, aparte de proporcionar los enlaces al libro en la editorial ExLibric (donde lo he publicado) y en Amazon, me limitaré a dejaros con este vídeo promocional.



¿Donde encontrarlo?

Puedes encontrar el libro en:


miércoles, 22 de mayo de 2019

Ética para Web Scraping

Últimamente oímos hablar de ética en relación con la tecnología, muy especialmente con la Inteligencia Artificial. Y es afortunado que así sea porque la ética es un fundamento de nuestra sociedad y porque, en efecto, algunos avances científicos y tecnológicos desafían tanto el 'status quo' y abren posibilidades tan desafiantes, que conviene acompañarlas, precederlas a ser posible, por un debate ético y una previsión legal.

Pero aunque no me sorprende el oír hablar de ética en contextos como la inteligencia artificial o la edición genética, jamás se me hubiera ocurrido plantear ética en relación con una tecnología tan poco llamativa, en cierto sentido tan 'menor', como es el Web Scraping, es decir, la  utilización de robots para la extracción de información de pantallas de aplicaciones web e incluso interacción con dicha aplicación, una de las tecnologías que habitualmente encontramos integradas en las soluciones de Automatización Robótica de Procesos (RPA).

Por eso me ha llamado la atención el encontrarme unas breves consideraciones éticas en el libro 'Web Scraping with Python' de Ryan Mitchell, cuya lectura estoy finalizando. La pequeña disertación ética se produce ya bastante avanzado el libro cuando la autora se dispone a enseñarnos cómo saltarnos algunas de las protecciones contra robots (contra el web scraping) que algunos.portales habilitan. Y como paso previo, y creo que le honra, se pregunta si es ético enseñar a saltarse esas protecciones. La respuesta, como el lector se puede imaginar, es afirmativa, es decir, es lícito enseñar las técnicas para rodear esas protecciones. Y para ello, aporta tres motivos:

  • En primer lugar, porque hay situaciones en que no sólo es permisible, sino casi aconsejable desde el punto de vista ético utilizar Web Scraping. La autora menciona un trabajo real en que intervino en que unos portales web estaban publicando datos personales de clientes (nombres, direcciones, números de teléfono, etc) sin conocimiento ni consentimiento de esos clientes. La autora fue contratada por algunos de los perjudicados para extraer esa información y contribuir a una demanda formal.

  • Porque, de forma indirecta, enseñar a saltarse las protecciones contra los robots contribuye también a que los desarrolladores de portales puedan protegerse mejor frente a ataques maliciosos. La autora no le da ese nombre pero sería algo así como una especie de 'hacking ético' hecho con base en enseñanza.

  • Finalmente, la autora muestra su convencimiento de que cualquier actividad de divulgación y enseñanza produce al final un saldo neto positivo para la sociedad.

¿Son suficientemente firmes estos argumentos? ¿Los compartiría todo el mundo?

No estoy seguro, pero bueno es que, como mínimo, se planteen esas consideraciones éticas.

A lo mejor deberíamos hacerlo más a menudo.

lunes, 20 de mayo de 2019

Un framework para process mining

El process mining, es decir, el análisis y la gestión de procesos de negocio con base en información de la ejecución de esos procesos, es un campo bastante complejo, lleno de álgebra y algoritmia aunque, en el fondo, la idea que se persigue es bastante fácil de entender.

En su libro 'Process Mining. Data Science in action' de Wil van der Aalst, el autor hace una excelente descripción de todos los conceptos y algoritmos usados en process mining hasta la fecha.

Sin embargo, es cierto que, aun siendo un libro excelente, a veces resulta farragoso y difícil de seguir por la abundancia de formalismos y de algoritmia.

Quizá por eso el propio autor, hacia la mitad de la obra, nos proporciona un 'framework' que sirve de marco general para entender todo el campo del process mining y para agrupar y resumir de alguna manera todo lo visto hasta ese momento.

Por lo ilustrativo y clarificador que resulta, me ha parecido interesante traerlo a este blog. El 'framework' es el que se ilustra en la figura inferior (propiedad del autor y de Springer):



En la parte superior de ese framework se sitúa el 'mundo real' ('world'), un mundo real que es donde existen organizaciones y personas que ejecutan procesos de negocio.

Esos procesos de negocio, en mayor o menor medida están soportados por unos sistemas de información ('information system(s)'. Esos sistemas de información son el origen o procedencia ('provenance') de unos datos en forma de trazas ('logs').

Esas trazas, a su vez, pueden tomarse de instancias o casos de procesos ya finalizados ('historic data') o bien de instancias o casos aún en curso ('current data'). El primer caso nos servirá para lo que se conoce como análisis 'post-mortem' (para, por ejemplo, a nivel individual conocer qué fue mal en una instancia o, a nivel agregado, obtener medidas de los procesos) mientras que en el segundo caso hablaríamos de un análisis 'pre-mortem' que nos debería servir para monitorizar y guiar la ejecución.

En la parte inferior de la figura se observan los modelos de proceso de negocio. Unos modelos que incorporan la información de flujo ('control-flow'), de los datos y reglas de negocio ('data/rules') así como de la organización que los ejecuta y los recursos que utiliza ('resources/organization').

Estos modelos de negocio pueden ser modelos teóricos o 'de jure' es decir los procesos que en teoría se están o deberían estar ejecutando, y los procesos 'de facto' que son los que en la realidad suceden. Las dos flechas, una ascendente y otra descendente, nos hablan de cómo se relacionan los modelos con el mundo real. Los modelos 'de iure' intentan moldear la realidad e influir en ella, es decir, que los procesos que suceden en el mundo real se correspondan con el modelo de proceso teórico (flecha ascendente). Los modelos 'de facto' intentan recoger y representar lo que sucede en el mundo real (flecha descendente).

En la zona media, entre los logs y los modelos de procesos, se desarrolla la actividad del process mining propiamente dicho. Y ahí tenemos las siguientes actividades, recorriendo la figura de derecha a izquierda:

  • 'Cartography:' Se ocupa de describir la realidad, realizando un cierto nivel de abstracción sobre ella. En cierto sentido, se trata de un bloque que mira hacia el pasado. Incluye tres actividades:

    • 'Discover:' quizá lo más representativo del process mining, a saber, deducir el modelo de procesos a partir de la información de las trazas.

    • 'Enhance:' Es decir, revisión de modelos de procesos existentes, bien para hacer correcciones en los mismos, bien para enriquecerlos de alguna manera.

    • 'Diagnose:' En realidad no exactamente process mining, sino análisis de procesos más tradicional. Se ocupa de diagnosticar los procesos de negocio detectando cuellos de botella, ineficiencias o, en general, posibilidades de mejora.

  • 'Auditing' Ahora miramos al presente de los procesos de negocio con la idea, fundamentalmente, de asegurarnos que dichos procesos se ejecutan conforme a lo diseñado y previsto.

    • 'Detect:' Compara los procesos que se están ejecutando con los modelos de proceso 'de jure' y, en caso de detectar inconsistencias, se eleva una alarma o aviso.

    • 'Check:' Compara datos 'post-mortem' de los procesos con los modelos 'de jure' con el objetivo de detectar desviaciones y medir el nivel de cumplimiento 'compliance'.

    • 'Compare:' Compara los modelos 'de facto' con los modelos 'de iure' aunque ahora sin utilizar ya directamente los logs.

    • 'Promote:' Con base en el análisis anterior se `puede promover que algunos aspectos del modelo 'de facto' pasen a los modelos 'de iure', incorporándose como buenas prácticas.

  • 'Navigation:' Finalmente, ahora nos enfocamos al futuro con la idea, por ejemplo, de hacer recomendaciones.

    • 'Explore:' Se comparan los casos en ejecución con las ejecuciones pasadas del mismo modelo de proceso

    • 'Predict:' Combinando la información de los casos actualmente en ejecución con los modelos de proceso, se pueden hacer predicciones respecto al futuro.

    • 'Recommend:' La misma información usada para predecir el futuro se puede usar para emitir recomendaciones (por ejemplo, para intentar minimizar tiempos y/o costes).

La verdad es que visto el framework y entendiendo sus conceptos resulta mucho más sencillo de entender, casi trivial, este, por otro lado, bastante farragoso, campo del process mining.

viernes, 17 de mayo de 2019

Los algoritmos de Optical Character Recognition con Arindam Chaudhuri et al.

'Optical Character Recognition for different languajes with soft computing' es una obra muy especializada y técnica sobre reconocimiento óptico de caracteres. Su objetivo es mostrar el trabajo llevado a cabo por el equipo que redacta el libro y con el que quieren demostrar que las técnicas de soft computing son más efectivas que los algoritmos tradicionales en la tarea del reconocimiento de textos.

El libro se estructura en diez capítulos, siendo el primero '1. Introduction' una explicación de en qué consiste el propio libro.

El segundo capítulo, '2. Optical Character Recognition Systems' es, para mi gusto, el capítulo más interesante y el que contiene la información que realmente estaba buscando al leer este libro, a saber, el funcionamiento y algoritmia ligada al reconocimiento óptico de caracteres. Se nos proporciona algo de background y perspectiva histórica para luego repasar las diferentes técnicas siguiendo el esquema secuencial de aplicación: escaneado óptico, segmentación de localización, preprocesado, segmentación, representación, extracción de características, entrenamiento y reconocimiento y postproceso.

El tercer capítulo '3. Soft Computing Techniques for Optical Character Recognition Systems' es, sin embargo, el capítulo que entiendo principal desde el punto de vista de los autores, puesto que en él se explican las técnicas de soft computing que los autores defienden como más eficaces. Nos hablan de conjuntos difusos ('fuzzy sets'), algoritmos genéticos, la transformada de Hough, variantes difusas del Perceptrón Multicapa o los Support Vector Machines, etc

A continuación en los siguientes capítulos se aplican las técnicas descritas en el tercer capítulo a diferentes idiomas y se analizan los resultados. Siguiendo un esquema muy parecido, se desarrollan los siguientes capítulos:
  • '4. Optical Character Recognition for English Language'
  • '5. Optical Character Recognition for French Language'
  • '6. Optical Character Recognition for German Language'
  • '7. Optical Character Recognition for Latin Language'
  • '8. Optical Character Recognition for Hindi Language'
  • '9. Optical Character Recognition for Gujrati Language'
En todos ellos se proporciona una breve introducción sobre el idioma en si, sobre alguno de los retos que plantea desde el punto de vista de OCR, las fuentes de datos usadas, qué técnicas y cómo se han aplicado y los resultados obtenidos.

Finaliza el libro con el capítulo '10. Summary and future research' que, siguiendo el estilo académico habitual, resume los hallazgos y plantea siguientes líneas de trabajo.

Un libro de alta calidad pero también muy, muy duro de leer, pensado para estudiantes e investigadores muy especializados y con un gran dominio de la algoritmia y mucho interés en ella.

Arindam Chaudhuri

(Fuente: Elaboración propia)

Arindam Chaudhuri
Experto en Pattern Recognition y Machine Learning, actualmente trabaja como ingeniero de investigación en Google Tokio donde se centra en las aplicaciones de negocio del Machine Learning.

Anteriormente, y durante dos años, fue profesor de 'Computer Science' en la NIIT University cercana a Delhi, India.

Arindan Chauduri tiene un doctorado en Computer Science por la Netaji Subhas Open University de Bengala.

Ficha técnica:

AUTOR: Arindam Chauduri, Krupa Mandaviya, Pratixa Badelia y Soumya K Ghosh.
EDITORIAL: Springer
AÑO: 2019
ISBN: 978-3319843575
PAGINAS: 268

Artículos de este blog relacionados

lunes, 13 de mayo de 2019

Dos pensamientos sobre la colaboración entre humanos y robots


No quisiera con el título de este artículo generar unas expectativas desmedidas. No voy a hacer un tratado completo sobre la relación entre humanos y robots, por más interesante que me resulte el tema. Ni voy a analizar de manera profunda las implicaciones técnicas, sociológicas, legales o laborales que esta colaboración implica. 

Lo que quiero es, únicamente, compartir des pensamientos que, de forma espontánea vinieron a mi la semana pasada a propósito de esa colaboración entre humanos y robots.

El disparador de ese pensamiento fue la inspiradora experiencia que supuso acudir a la Global Robot Expo en su sección WeAreCOBOTS dedicada a la robótica colaborativa. Allí pude atender a diversas ponencias y mesas redondas y, sobre todo, lo que más deseaba, asistir a una demo y recibir algunas explicaciones sobre un robot colaborativo de Universal Robots.

Los robots colaborativos son robots en general de dimensiones, peso y fuerza más reducidos que los robots industriales habituales y eso los hace aptos para trabajar de forma no aislada en una celda sino cercana a los humanos y eventualmente interaccionando con ellos.


Primer pensamiento: paralelismo entre robots físicos y robots software


Y se me ocurrió establecer el paralelismo entre esos robots físicos colaborativos y los robots que se manejan en las soluciones RPA ('Robotic Process Automation'), una tecnología a la que he dedicado mucho tiempo en el último año y que crea unos robots software capaces de realizar tareas hasta ahora realizadas por humanos, especialmente tareas repetitivas con altas dosis de interacción con sistemas de información y documentos.

Resulta que en RPA se distinguen dos tipos de robots: los atendidos y los no atendidos. Los no atendidos funcionan de manera completamente autónoma, ya sea de manera programada o reaccionando ante eventos, pero sin intervención de personas. Por su parte, los robots atendidos son invocados por las personas como cualquier otro programa y, de esta forma, las tareas se realizan conjuntamente entre el humano y el robot.

Y me parece estimulante observar el paralelismo del robot industrial tradicional con el robot no atendido del mundo software. Y, quizá más interesante, entre los robots colaborativos o cobots, tan de moda en la automatización industrial y los robots atendidos de RPA y como en ambos se tiende a una relación colaborativa entre los humanos y los robots. 

Esto es sólo un síntoma, un caso concreto, pero detecto paralelismos más profundos e interesantes, que seguramente desarrolle en este momento en este blog o en algún otro ámbito entre esa robotización hardware y software, entre el mundo industrial y el mundo de los servicios y la oficina.


Segundo pensamiento: una razón para la colaboración humano-robot.


El segundo pensamiento me surgió cavilando brevemente sobre el porqué colaborar humanos y robots. Por qué parece estar tan de moda la relación de colaboración entre humanos y robots. Es un tema que se presta a abstracciones, idealismos y demagogias y a teorías de naturaleza filosófica, sociológica, laboral e incluso ética.

Pero a mi se me ocurrió una razón mucho, mucho más prosaica e inmediata. Sin excluir que pueda haber otros motivos más complejos o elevados, mi explicación más inmediata es muy simple: recurrimos a la colaboración humano-robot porque todavía hay muchas tareas que no somos capaces de automatizar completamente mediante robots.

Así de simple.

Probablemente, desde un punto de vista meramente económico y de negocio, fundamentalmente en lo relativo a la eficiencia, rapidez e incluso la calidad, elegiríamos la automatización completa si fuese posible. Pero, como aún no lo hemos conseguido, usamos robots para al menos automatizar lo que sea posible y los hacemos colaborativos para que puedan interaccionar de forma sencilla y segura con humanos y de esa forma, integrarlos de forma ventajosa en la cadena productiva y en los procesos de negocio a la espera de que sean capaces de automatizar de forma completa esa cadena o proceso.


*****

Ya lo anunciaba al inicio del artículo. Se trata de dos reflexiones sencillas y apresuradas sobre un tema que merece mucho más estudio, reflexión y debate...pero me han parecido al menos suficientemente interesantes como para compartirlas con mis lectores...


viernes, 10 de mayo de 2019

Algoritmos genéticos para Process Mining

Tras dos artículos seguidos dedicados a los algoritmos genéticos, uno en que simplemente me preguntaba si estaban resurgiendo y otro en que explicaba su funcionamiento, cierro hoy esa mini-serie hablando de una de las aplicaciones recientes que me ha sido dado observar de uso de este tipo de algoritmos: su empleo como una técnica de Process Mining para el descubrimiento de procesos de negocio.

Recuerdo, escuetamente, que Process Mining son un conjunto de técnicas para obtener información de procesos de negocio a partir de las trazas ('logs') dejadas por los sistemas de información en que se apoyan esos procesos de negocio.

Y recuerdo también que una de las tareas que se pueden hacer con 'Process Mining', probablemente la más representativa y también la más compleja, es el descubrimiento de procesos de negocio, es decir, a partir de esos logs, lograr deducir la estructura de actividades, conexiones y bucles que definen ese proceso de negocio.

En su libro 'Process Mining. Data science in action', Wil van der Aalst nos describe el Genetic Process Mining como una técnica avanzada para el descubrimiento de procesos. Antes de leer lo que sigue, y para el lector que no recuerde cómo funcionan los algoritmos genéticos, le recomiendo repasar mi artículo anterior '¿Cómo funcionan los algoritmos genéticos?'

Y ahora sí, pasamos a ver su aplicaciones en process mining. Y nos apoyamos en la siguiente figura procedente de la obra y autor citados: 




Los pasos serían los siguientes:

  • Inicialización: Partiendo de los logs (que contienen registros con instancias de actividades correspondientes a instancias de procesos) se construye la población inicial ('initial population'). En el caso que nos ocupa, cada individuo o fenotipo sería un modelo de proceso de negocio expresado como una red de Petri, un diagrama BPMN o algo similar.

  • Selección: Se realiza la evaluación obteniendo para cada cada fenotipo (modelo de negocio candidato) el valor de adecuación ('fitness value'). En el caso del process mining dicho valor de adecuación mide hasta qué punto el modelo de proceso de negocio explica los logs, es decir, su ejecución sería capaz de producir esos logs. Un ejemplo muy sencillo (aunque no muy eficaz) de esa evaluación es calcular qué proporción de las trazas pueden ser replicadas por el modelo de proceso.Las funciones reales son más sofisticadas, pero no vamos a entrar en ello aquí. En cualquier caso, tras realizar la evaluación tenemos un valor de adecuación de cada modelo de proceso de la población. Ahora seleccionamos los mejores, los que tengan un valor de adecuación más alto. Esos individuos seleccionados, serán los procesos de negocio 'padres' de la siguiente generación.

  • Reproducción: Se aplican dos de los operadores genéticos de los que ya hablamos en el anterior artículo: el cruce ('crossover') y la mutación ('mutation'). El cruce, como su nombre indica, mezcla el material genético, en este caso secciones del modelo de proceso, para generar un modelo de proceso nuevo que tiene partes procedentes de cada uno de los padres. No es esta una tarea fácil pero en la obra citada se aporta algún ejemplo de cómo hacer esto. Mediante la mutación, además, se producen algunos cambios aleatorios que, en este caso, consisten en introducir alguna nueva relación causal. 

  • Con esto ya hemos cerrado la primera iteración. A partir de ahí se repiten todos los pasos, con lo que la calidad de cada generación debería ir mejorando y se actúa de esta forma hasta que se alcance un umbral de adecuación de proceso prefijado. 

Lo descrito constituye el esquema general que, como se puede ver, es una aplicación bastante inmediata de la estructura general de un algoritmo genético. Sin embargo, y aunque no lo hemos explicitado mucho, su uso real implica especificidades tanto del hecho de tratar con modelos de proceso así como decisiones específicas como la forma de representar el modelo de proceso, la forma de crear la población inicial, la función de evaluación concreta a aplicar, la estrategia concreta de selección a usar, el mecanismo concreto de cruce, el mecanismo concreto de mutación, etc

Parece un poco mágico que mediante los mecanismos descritos se pueda deducir un modelo de proceso de negocio a partir de unas simples trazas pero, aparentemente, igual que en la naturaleza la genética y la selección natural han conducido a una evolución exitosa, los algoritmos genéticos aplicados a la función de descubrimiento de procesos dentro del process mining parecen haber dado frutos satisfactorios.

miércoles, 8 de mayo de 2019

¿Cómo funcionan los algoritmos genéticos?

En el artículo anterior, me preguntaba si estaba ocurriendo algo con los algoritmos genéticos, si el hecho de que, tras años 'sin saber nada de ellos', ahora me los hubiese encontrado en muy breve plazo en dos lecturas actualizadas, significaba algún tipo de resurgimiento. Aunque en el artículo esbocé muy someramente en qué consistían, me quedé con las ganas de hacer una explicación básica pero algo más detallada sobre cómo funcionan estos algoritmos genéticos.

Y esa explicación sencilla es el objeto de este artículo. Y como apoyo tomo una de las dos lecturas que me 'avisaron' de ese posible renacimiento de los algoritmos genéticos, a saber, el libro 'Optical Character Recognition Systems for Different Languages with Soft Computing' de Arindam Chaudhuri, Krupa Mandaviya, Pratixa Badelia y Soumya K Ghosh. En el tercer capítulo de la citada obra se repasan diferentes algoritmos del campo del 'soft computing' que son aplicables al reconocimiento óptico de caracteres (OCR). Y como los algoritmos genéticos se encuadran en ese concepto, los autores hacen una breve revisión de conceptos.

Para ello, se apoyan en la siguiente figura (NOTA: la propiedad intelectual de esa figura es de los autores y la editorial Springer).


Los algoritmos genéticos fueron inicialmente propuestos por John Holland. En ellos, existe una población ('population') de soluciones candidatas al problema a resolver. Cada una de las soluciones posibles que conforman esa población se denomina individuo, criatura o fenotipo. Cada una de estos fenotipos está caracterizado por una serie de características que se denominan cromosomas y que, aunque depende del problema y algoritmo concretos, se intentan representar como cadenas digitales de unos y ceros.

Sobre cada población se aplica una función de evaluación ('evaluation') para obtener el valor de adecuación ('fitness value') de cada fenotipo como solución del problema, es decir, hasta qué punto resuelve o se acerca a resolver el problema que estamos tratando.

A su vez, cada población, una vez evaluada, y suponiendo que aún no damos por resuelto el problema,  se transforma, es decir, evoluciona, a una nueva población mediante la aplicación de los operadores genéticos ('genetic algorithm operators'). Estos operadores son reproducción ('reproduction'), cruce ('crossover') y mutación ('mutation'). Mediante la reproducción generamos individuos nuevos. Mediante el cruce se mezclan los materiales genéticos, es decir, creamos un nuevo individuo o fenotipo que usa parte de las características de uno de sus padres y parte de las características del otro. Mediante la mutación introducimos variaciones aleatorias en esos cromosomas, es decir, en las características del fenotipo, individuo o solución candidata.

¿Cómo funciona?

Para verlo nos apoyamos en la siguiente figura (NOTA: de nuevo, la propiedad intelectual de esa figura es de los autores y la editorial Springer).



  • Generamos una serie de soluciones candidatas (población inicial) generalmente al azar.A partir de ahí funcionamos en bucle hasta alcanzar la solución perseguida.

  • Primero aplicamos la función de evaluación a la población y encontramos el valor de adecuación de cada uno de sus individuos. Si alguna solución es suficiente, finalizaría el algoritmo. Si no, se seleccionan los individuos que tienen un mejor valor de adecuación.

  • Con esos individuos seleccionados se realiza la reproducción y el cruce, para obtener nuevos individuos hijos.

  • Al conjunto de individuos hijos se le aplican mutaciones aleatorias.

  • Hecho esto, tenemos ya una nueva población, que pasaría a evaluarse y así continuaría el bucle.

Como se puede apreciar los algoritmos genéticos están claramente inspirados en lo que sabemos de genética y selección natural. Esa inspiración y paralelismo se refuerzan utilizando términos procedentes, en efecto, de la biología y la genética.

De todas formas, no perdamos de vista que son algoritmos matemático-informáticos, unos algoritmos no especialmente eficientes (más bien, bastante poco eficientes) pero que pueden producir soluciones que no encontraríamos mediante algoritmos más clásicos y deterministas.