Mentes geniales. La vida y obra de 12 grandes informáticos. Camilo Chacón Sartori. Читать онлайн. Newlib. NEWLIB.NET

Автор: Camilo Chacón Sartori
Издательство: Bookwire
Серия:
Жанр произведения: Зарубежная деловая литература
Год издания: 0
isbn: 9788426733917
Скачать книгу
(* 5 (+ 1 2)).

Illustration

      En la figura 4 superior se puede ver cómo la computación se ejecuta desde los nodos inferiores hasta los superiores. Así, es posible detectar el operador que usar en una operación binaria (suma o multiplicación, pues solo requiere de dos valores) sin problema.

      La función de Fibonacci se define matemáticamente de la siguiente manera:

      F0 = 0,F1 = 1

      Fn = Fn–1 + Fn–2

      Y en Lisp, la implementación se podría definir con el siguiente código:

      (defun fib (n)

      “Retorna el enésimo número de Fibonacci.”

      (if (< n 2)

      n

      (+ (fib (- n 1))

      (fib (- n 2)))))

      La palabra «defun» define una nueva función; luego «fib» es el nombre de la función a definir junto, entre paréntesis, sus argumentos, en este caso solo uno: n. Luego, lo interesante comienza con la expresión «if», pues, si n>2 (véase que en esta sintaxis el operador es una función, por ello comienza al principio, así y 2 son los argumentos), entonces retornará n, en cambio, si n>=2, se aplicará una suma de manera recursiva. Donde se invoca la función «fib» restando uno y otra restando dos (según la definición matemática de Fibonacci). La descripción o comentario de la función se define entre comillas «”», como se puede ver en el ejemplo.

      Aunque pueda parecer a primera vista confusa, la sintaxis es, sin duda, una excelente manera para pensar de manera recursiva y compacta. Funcional, después de todo. Que difiere del paradigma imperativo. Pues obliga al programador a crear pequeños «bloques», compactos, donde la mutabilidad de las variables es reducida.

      2.4 TIEMPO COMPARTIDO

      Puede imaginarse lo ineficiente que era que un mismo ordenador no pudiera ser usado al mismo tiempo por múltiples usuarios; gracias a ello no tenemos que turnarnos entre distintos usuarios para acceder al mismo servidor que tenemos en la nube... Sin duda, ¡fue un gran aporte!

      Indirectamente se puede decir que McCarthy aportó a que la computación pueda ser vista como un servicio. Sistemas como Amazon AWS y Microsoft Azure (por decir algunos) nos permiten ocupar servidores a un bajo coste, cuántos recursos ocupas es lo que pagas, similar a lo que hacemos con servicios básicos como el agua y la energía. Después de todo, software como servicio.

      2.5 TÉCNICAS DE PROGRAMACIÓN Y EL AJEDREZ

      Además de su aporte con la creación de Lisp, McCarthy creó —en 1959— algo que es muy conocido por cualquier programador en la actualidad: el recolector de basura (garbage collector). Este permite liberar espacios de memoria de código que no está siendo utilizado en el programa. A diferencia de lenguajes como C, donde esa responsabilidad recae exclusivamente en el programador. En la actualidad es usado en lenguajes de programación fundamentales como Java, C#, Python, y muchos más.

      Está técnica fue incluida en Lisp. Por otro lado, y también por aquellos años, hizo contribuciones a las versiones ALGOL 58 y 60.

      McCarthy, junto a un grupo de estudiantes en el MIT, diseñaron lo que sería uno de los primeros programas para jugar al ajedrez. Este programa usaba una heurística llamada alpha-beta (muy popular en el área de la inteligencia artificial); la idea subyacente es reducir el espacio de búsqueda para anticiparse a los posibles movimientos del rival hacia el futuro, para, así, tomar la mejor opción posible (Nilsson, 2007, pág. 11).

      Sobre esta heurística, McCarthy ya había propuesto algo similar, años antes, en su artículo —muy influyente—, «Programs with Commonsense» (programas con sentido común), escrito en 1959; presentó el sistema llamado Advice Taker (asesoramiento), un conjunto de reglas heurísticas que hacen uso de premisas para llegar a una conclusión. Un sistema lógico deductivo, para ser más específico: lógica de primer orden. Demostró que es posible crear programas utilizando la lógica como cimiento. Es considerado un artículo fundamental, y el primero en tratar la capacidad de razonamiento de sentido común en programas, como la pieza central en la IA.

      2.6 SAIL (STANFORD ARTIFICIAL INTELLIGENCE LABORATORY)

      Después de su breve paso por el MIT, McCarthy fue fundador del laboratorio de inteligencia artificial de la Universidad de Stanford (Stanford Artificial Intelligence Laboratory [SAIL, por sus siglas en inglés]), en 1962. Este laboratorio todavía existe. Y es un lugar donde se realizan diversas investigaciones sobre inteligencia artificial pioneras en el mundo.

      Posteriormente, el laboratorio SAIL se abocó a la investigación en robótica, por ejemplo, al reconocimiento de objetos desde la captura en una cámara, lo que conocemos como visión por computadora. Lo que quiso lograr McCarthy y su equipo era que un robot fuera capaz no solo de discriminar diferentes objetos, sino, más bien, de describirlos, buscar que puedan «entender» su propio entorno. McCarthy ya por aquel entonces pensaba en robots capaces de discriminar objetos, pues, si quería que el robot recogiera e interactuara con objetos, debía ser capaz de detectarlos de manera independiente, representar su forma, y una buena manera de conseguirlo es a través de la robótica (Nilsson, 2007, pág. 17).

      Es decir, si tenemos un robot que va grabando un vídeo y entra en una habitación, no solo debe detectar que no es el baño o la cocina, por el contrario, se necesita ir a los detalles: debe ser capaz de detectar cuáles son los objetos que se encuentran en la habitación, por ejemplo, la cama, la almohada, la lámpara, etc. Cabe decir que hoy en día esto ya es algo posible. Pero resulta extraordinario pensar que fue planteado en la década de 1960.

      La investigación en inteligencia artificial ha tenido, hasta ahora, un éxito parcial; su ritmo de progreso es quizá mayor que el de la mayoría de las ciencias sociales y menor que el de muchas ciencias físicas. Esto es quizá lo que cabía esperar, teniendo en cuenta la dificultad del problema.