Saltar al contenido principal
LibreTexts Español

2.9: Algoritmos de artefactos

  • Page ID
    143863
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    El neurocientífico Valentino Braitenberg imaginó un mundo que comprende dominios tanto del agua como de la tierra (Braitenberg, 1984). En cualquiera de estos dominios se encontraría una variedad de agentes que perciben propiedades de su mundo, y que utilizan esta información para guiar sus movimientos a través de él. Braitenberg llamó a estos agentes “vehículos”. En el mundo vehicular de Braitenberg, los científicos se encuentran con estos agentes e intentan explicar los mecanismos internos que son responsables de sus diversos movimientos. Muchos de estos científicos adoptan lo que Braitenberg llamó una perspectiva analítica: inferyen mecanismos internos al observar cómo se alteran los comportamientos externos en función de cambios específicos en el entorno de un vehículo. Lo que Braitenberg llamó análisis también se llama ingeniería inversa.

    Vimos antes que una máquina Turing genera un comportamiento observable a medida que calcula la respuesta a una pregunta. Una descripción de los comportamientos de una máquina Turing, ya sea por diseño o por artefacto, proporcionaría la secuencia de operaciones que se realizaron para convertir una pregunta de entrada en una respuesta de salida. Cualquier secuencia de pasos que, cuando se lleva a cabo, logra un resultado deseado se denomina algoritmo (Berlinski, 2000). El objetivo, entonces, de la ingeniería inversa de una máquina Turing o cualquier otro dispositivo de cálculo sería determinar el algoritmo que estaba utilizando para transformar su entrada en una salida deseada.

    Los dispositivos de cálculo presentan dos propiedades que dificultan su ingeniería inversa. Primero, suelen ser lo que se llama cajas negras. Esto significa que podemos observar el comportamiento externo, pero no podemos observar directamente las propiedades internas. Por ejemplo, si una máquina Turing era una caja negra, entonces podríamos observar sus movimientos a lo largo, y el cambio de símbolos en, la cinta, pero no podíamos observar el estado de la máquina del cabezal de la máquina.

    En segundo lugar, y particularmente si nos enfrentamos a una caja negra, otra propiedad que hace que la ingeniería inversa sea desafiante es que existe una relación de muchos a uno entre algoritmo y mapeo. Esto significa que, en la práctica, se puede establecer un único mapeo input-output mediante uno de varios algoritmos diferentes. Por ejemplo, hay tantos métodos diferentes para ordenar un conjunto de elementos que se requieren cientos de páginas para describir los algoritmos disponibles (Knuth, 1997). En principio, existe un número infinito de algoritmos diferentes para computar un único mapeo input-output de interés (Johnson-Laird, 1983).

    El problema con la ingeniería inversa de una caja negra es este: si potencialmente hay muchos algoritmos diferentes que pueden producir el mismo mapeo de entrada y salida, entonces las meras observaciones del comportamiento de entrada y salida no indicarán por sí mismas qué algoritmo particular se usa en el diseño del dispositivo. Sin embargo, la ingeniería inversa de una caja negra no es imposible. Además de los comportamientos que fue diseñado para producir, la caja negra también producirá artefactos. Los artefactos pueden proporcionar gran cantidad de información sobre algoritmos internos e inobservables.

    Imagínese que nos enfrentamos a la ingeniería inversa una calculadora aritmética que también es una caja negra. Algunos de los artefactos de esta calculadora proporcionan evidencia de complejidad relativa (Pylyshyn, 1984). Para recolectar dicha evidencia, se podría realizar un experimento en el que los problemas presentados a la calculadora fueran sistemáticamente variados (por ejemplo, usando diferentes números) y se hicieran mediciones de la cantidad de tiempo necesario para que se produjera la respuesta correcta. Para analizar esta evidencia de complejidad relativa, se exploraría la relación entre las características de los problemas y el tiempo requerido para resolverlos.

    Por ejemplo, supongamos que se observó un incremento lineal en el tiempo necesario para resolver los problemas 9 × 1, 9 × 2, 9 × 3, etcétera. Esto podría indicar que el dispositivo estaba realizando multiplicación haciendo adiciones repetidas (9, 9 + 9, 9 + 9 + 9, y así sucesivamente) y que cada operación “+ 9” requería una cantidad de tiempo constante adicional para ser realizada. Los psicólogos han utilizado pruebas de complejidad relativa para investigar algoritmos cognitivos desde que Franciscus Donders inventó su método sustractivo en 1869 (Posner, 1978).

    Los artefactos también pueden proporcionar evidencia estatal intermedia (Pylyshyn, 1984). La evidencia de estado intermedio se basa en la suposición de que un mapeo de entrada y salida no se calcula directamente, sino que requiere varias etapas diferentes de procesamiento, representando cada etapa un resultado intermedio de una manera diferente. Para recolectar evidencia estatal intermedia, se intenta determinar el número y la naturaleza de estos resultados intermedios.

    Para algunos dispositivos de cálculo, la evidencia de estado intermedio se puede recopilar fácilmente. Por ejemplo, los estados intermedios de la cinta de la máquina Turing, las cuentas de abaco o los engranajes del motor diferencial están a la vista. Para otros dispositivos, sin embargo, los estados intermedios están ocultos a la observación directa. En este caso, se deben desarrollar técnicas inteligentes para medir estados internos ya que el dispositivo se presenta con diferentes entradas. Se podrían medir los cambios en la actividad eléctrica en diferentes componentes de una calculadora electrónica a medida que funcionaba, en un intento de adquirir evidencia de estado intermedio.

    Los artefactos también proporcionan evidencia de error (Pylyshyn, 1984), que también pueden ayudar a explorar estados intermedios. Cuando se imponen demandas adicionales a los recursos de un sistema, puede que no funcione según lo diseñado, y es probable que su funcionamiento interno se haga más evidente (Simon, 1969). Esto no es solo porque el sistema sobrecargado comete errores en general, sino porque estos errores suelen ser sistemáticos, y su sistematicidad refleja el algoritmo subyacente.

    Debido a que confiamos en su precisión, esperaríamos que la evidencia de error sea difícil de recopilar para la mayoría de los dispositivos de cálculo. Sin embargo, la evidencia de error debería estar fácilmente disponible para calculadoras que podrían ser de particular interés para nosotros: humanos haciendo aritmética mental. Podríamos encontrar, por ejemplo, que las calculadoras humanas sobrecargadas cometen errores al olvidarse de llevar valores de una columna de números a la siguiente. Esto proporcionaría evidencia de que la aritmética mental implicaba representar números en forma columnar, y realizar operaciones columna por columna (Newell & Simon, 1972). Se esperarían tipos muy diferentes de errores si se tomara un enfoque diferente para realizar la aritmética mental, como imaginar y manipular un ábaco mental (Hatano, Miyake, & Binks, 1977).

    En resumen, descubrir y describir qué algoritmo se está utilizando para calcular un mapeo input-output implica el examen sistemático del comportamiento. Es decir, se realizan e interpretan mediciones que proporcionan evidencia de complejidad relativa, evidencia de estado intermedio y evidencia de error. Además, el algoritmo que se deducirá de tales mediciones es en esencia una secuencia de acciones o comportamientos que producirán un resultado deseado.

    El descubrimiento y descripción de un algoritmo involucra así métodos empíricos y vocabularios, más que los formales utilizados para dar cuenta de las regularidades input-output. Así como parecería probable que las asignaciones input-output fueran el tema de interés para investigadores formales como cibernéticos, lógicos o matemáticos, los relatos algorítmicos serían el tema de interés para investigadores empíricos como los psicólogos experimentales.

    El hecho de que las cuentas computacionales y las cuentas algorítmicas se presenten en diferentes vocabularios sugiere que describen propiedades muy diferentes de un dispositivo. De nuestra discusión sobre las cajas negras, debe quedar claro que una cuenta computacional no proporciona detalles algorítmicos: saber qué mapeo entrada-salida se está calculando es bastante diferente de saber cómo se está calculando. En una línea similar, las cuentas algorítmicas son silenciosas con respecto al cómputo que se está llevando a cabo.

    Por ejemplo, en Understanding Cognitive Science, Dawson (1998) proporciona una tabla de máquina de ejemplo para una máquina de Turing que agrega pares de enteros. Dawson también proporciona ejemplos de preguntas a este dispositivo (por ejemplo, cadenas de espacios en blanco, 0s y 1s) así como las respuestas que genera. Los lectores de Understanding Cognitive Science pueden pretender ser el cabezal de la máquina siguiendo las instrucciones de la mesa de la máquina, usando lápiz y papel para manipular una cinta de ticker simulada. De esta manera, pueden convertir fácilmente la pregunta inicial en la respuesta final: entienden completamente el algoritmo. Sin embargo, son incapaces de decir lo que logra el algoritmo hasta que leen más en el libro.


    This page titled 2.9: Algoritmos de artefactos is shared under a CC BY-NC-ND license and was authored, remixed, and/or curated by Michael R. W. Dawson (Athabasca University Press) .