2: Yupana: método computacional-experimental para simular sumas y restas (Método)

1. Principio metodológico: aprender haciendo, luego formalizar

A diferencia de los enfoques puramente teóricos o arqueológicos, este trabajo parte de una premisa metodológica inversa: primero aprender a usar la Yupana físicamente, luego modelar computacionalmente lo que se aprendió.

El autor, hablante nativo de quechua, aprendió el sistema numérico quechua desde la infancia. Sin embargo, el salto cualitativo ocurrió durante un curso de estudios superiores, al constatar una ausencia crítica:

No existía ninguna aplicación digital funcional de la Yupana. Solo tutoriales para jugar con tableros físicos.

Esta carencia motivó un proceso de desarrollo en dos fases (2024 y 2026), que constituye la base metodológica de esta investigación.


2. Tipo de investigación

Este estudio es de carácter computacional-experimental, con diseño cuasi-experimental, basado en simulación de sistemas discretos y análisis cuantitativo de resultados.

CaracterísticaDescripción
NaturalezaComputacional-experimental
DiseñoCuasi-experimental (no hay grupo de control aleatorizado, sino comparación con algoritmo decimal clásico)
MétodoSimulación de sistemas discretos
Enfoque analíticoCuantitativo (métricas de eficiencia, frecuencias, entropía)
AlcanceExplicativo (busca medir y comparar, no solo describir)

Esta clasificación permite situar el trabajo en el campo de la computación experimental y la lingüística computacional aplicada a sistemas precolombinos.


3. Fase 1 (2024): Aprendizaje físico y primer prototipo (PHP)

3.1. Aprendizaje en tablero físico

El primer paso fue construir o conseguir un tablero físico de Yupana (según la interpretación de Poma de Ayala). El autor:

  • Practicó sumas manualmente con fichas
  • Interiorizó las reglas de reorganización interna
  • Validó personalmente la lógica del sistema

Este paso es metodológicamente crucial porque garantiza que el modelo digital posterior no es una invención teórica, sino la traducción de una práctica real.

3.2. Primer prototipo digital en PHP

Con el conocimiento práctico adquirido, el autor se propuso programar una Yupana digital. El resultado fue:

  • Lenguaje: PHP
  • Funcionalidad: Solo suma (resta no implementada)
  • Calidad del código: Alto nivel de redundancia, escasa limpieza estructural
  • Estado: Funcional pero frágil

Este prototipo se publicó en soyquechua.org (versión 2024). No se extrajeron ni analizaron datos en esta fase. Solo existía la aplicación funcionando, sin métricas ni logging.


4. Fase 2 (2026): Refactorización, automatización y extracción de datos

4.1. Objetivo de la segunda fase

Partiendo del código existente (con sus falencias), se establecieron dos metas:

  1. Mejorar la aplicación: depurar, reducir redundancia y extender a resta
  2. Convertir la aplicación en una herramienta de investigación: añadir capacidad de extracción de datos

4.2. Refactorización del núcleo lógico

Se reescribieron los algoritmos de:

  • Suma: optimizando las reglas de reorganización interna
  • Resta: implementada desde cero, siguiendo la lógica de «destrucción» (Yanantin)

La aplicación mejorada funcionó localmente (PC local) antes de cualquier despliegue.

4.3. Automatización de entradas (input masivo)

Para generar un corpus estadísticamente significativo, se introdujo un sistema de input automatizado mediante Python:

  • Se generaron aproximadamente 500,501 operaciones (sumas y restas)
  • Las entradas fueron inyectadas al simulador Yupana de forma programática
  • El rango de números cubrió desde unidades hasta centenas (según capacidad del tablero)

4.4. Extracción y almacenamiento de datos

Por cada operación (input), el sistema registró:

  • Operandos (a y b)
  • Tipo de operación (suma/resta)
  • Número de acarreos (carry) generados
  • Pasos intermedios de reorganización
  • Resultado final
  • Estado del tablero en cada capa

Los datos fueron extraídos a un formato estructurado (CSV/JSON) para su análisis posterior.


5. Definición formal del sistema

La Yupana se modela como un sistema discreto definido por:

ComponenteNotaciónDescripción
EstadoStStConfiguración del tablero en el tiempo tt (distribución de fichas en 5 filas × 4 columnas)
Reglas de transiciónTTConjunto de reglas deterministas que transforman StSt+1St​→St+1​
Función de salidaO(S)O(S)Lectura del valor numérico a partir de un estado estable del tablero

El sistema opera como un autómata de estados discretos:St+1=T(St)St+1​=T(St​)

La secuencia de transformaciones continúa hasta alcanzar un estado estable SS∗, donde ya no es posible aplicar más reglas. En ese punto:Resultado=O(S)Resultado=O(S∗)

Este enfoque se alinea con interpretaciones modernas de la Yupana que destacan su carácter no simbólico y basado en reconocimiento de patrones, en lugar de cálculo aritmético tradicional. Investigaciones como las de Tawa Pukllay han documentado que en la Yupana:

  • No hay cálculo mental secuencial
  • Hay manipulación por patrones y reorganización espacial

6. Procedimiento computacional (pseudocódigo)

El algoritmo central del simulador sigue esta estructura:

text

function operar_yupana(a, b, tipo):
    # 1. Cargar operandos al tablero como estado inicial
    estado = cargar_tablero(a, b)
    
    # 2. Aplicar reglas de reorganización hasta alcanzar estabilidad
    while not estado_estable(estado):
        estado = aplicar_reglas(estado, tipo)  # tipo = suma o resta
    
    # 3. Leer el resultado del tablero estabilizado
    resultado = leer_tablero(estado)
    
    return resultado, registrar_metricas(estado)

Ejemplo concreto para suma:

text

# Estado inicial: operandos colocados en filas correspondientes
S0 = [ [3,0,0,0],   # fila 1 (unidades)
       [0,0,0,0],   # fila 2
       [0,0,0,0],   # fila 3
       [0,0,0,0],   # fila 4
       [0,0,0,0] ]  # fila 5

# Regla: si una celda tiene 4 fichas, se canjean por 1 ficha en la columna siguiente
# (equivalente al acarreo pero reorganizado espacialmente)

# Después de aplicar reglas iterativamente...
S_estable = [ [1,0,0,0],   # resultado final
              [0,0,0,0],
              [0,0,0,0],
              [0,0,0,0],
              [0,0,0,0] ]

# Salida: 3 + 0 = 1? (NO, es solo ejemplo de estructura; los números reales 
# dependen de la interpretación de pesos por celda)

7. Definición operativa de carry (acarreo)

Se define «carry» como cualquier transferencia de fichas entre celdas que modifica la representación posicional del valor dentro del tablero.

Esta definición es crucial porque:

AspectoImplicancia
Diferencia con carry decimalEn el sistema decimal, el carry es una operación aritmética (sumar 1 a la columna siguiente). En la Yupana, es una reorganización espacial de fichas.
Unidad de medida comúnPermite comparar ambos sistemas (Yupana vs decimal) usando la misma métrica funcional: número de eventos de transferencia entre posiciones.
Evita críticas metodológicasAl definir explícitamente qué se cuenta como «carry», cualquier investigador puede replicar la medición.

En este estudio, se contabiliza como un carry por cada evento de canje (ej. 4 fichas → 1 ficha en la celda adyacente).


8. Análisis de datos

8.1. Librerías utilizadas

LibreríaFunción
pandasManipulación y limpieza del corpus
numpyCálculos vectoriales y métricas básicas
matplotlib / seabornVisualización de patrones y gráficas estadísticas
networkxAnálisis de red de transiciones entre estados
gephi (software independiente)Visualización avanzada de grafos de reorganización
scipy.statsPruebas estadísticas comparativas
collectionsConteo de frecuencias y patrones

Nota sobre Gephi: Los grafos de transición entre estados del tablero se exportaron desde Python (formato .gexf) y se visualizaron en Gephi para identificar:

  • Nodos más frecuentes (estados estables recurrentes)
  • Rutas críticas (secuencias de reorganización más comunes)
  • Comunidades (subgrafos de estados conectados por reglas similares)

8.2. Métricas calculadas

MétricaDescripción
Frecuencia de acarreos (carry)Comparación Yupana vs algoritmo decimal clásico
Profundidad de reorganizaciónNúmero de capas de transformación interna (pasos hasta SS∗)
Distribución de estadosFrecuencia de cada configuración del tablero
Eficiencia relativa(Pasos Yupana) / (Pasos decimal)
Entropía de ShannonIncertidumbre en la secuencia de estados
Compresibilidad (Kolmogorov proxy)Longitud de mensaje mínimo para describir una operación
Métricas de red (Gephi)Grado medio, coeficiente de clustering, diámetro del grafo de transiciones

8.3. Validación del modelo

La validación se basa en el carácter determinista del sistema: dado un estado inicial idéntico, la secuencia de transformaciones produce siempre el mismo resultado.

Procedimiento de validación:

  1. Se compararon resultados de 100 operaciones manuales (tablero físico) vs simulador
  2. Concordancia del 100% (las reglas de transición son deterministas)
  3. Se verificó que el simulador no produce estados muertos o no alcanzables

Limitación de la validación: La concordancia con el tablero físico valida el comportamiento funcional, pero no puede garantizar que coincida exactamente con el uso original prehispánico (ver sección 9).


9. Limitaciones del método

LimitaciónDescripciónImpacto
Corpus limitado a suma y restaNo se implementaron multiplicación ni divisiónLos hallazgos aplican solo a operaciones básicas
Rango numérico acotadoLimitado por la capacidad del tablero (5 filas × 4 columnas)No se probaron números > 10⁵ aprox.
Prototipo inicial en PHPEl código original contenía redundanciasLa refactorización pudo introducir sesgos inadvertidos
Sesgo del aprendizEl autor aprendió con una interpretación específica (Poma de Ayala)Otras interpretaciones de la Yupana no fueron modeladas
Ausencia de validación histórica directaEl modelo reproduce un comportamiento funcional, pero no puede garantizar que coincida exactamente con el uso original prehispánicoLas conclusiones sobre «cómo usaban la Yupana los Incas» deben ser cautelosas

Esta última limitación es metodológicamente importante: el estudio valida un modelo funcional, no una reconstrucción histórica exacta.


10. Reproducibilidad

El código completo (simulador + scripts de análisis + exportación a Gephi) está disponible en:

  • Repositorio público: [enlace al GitHub / repositorio]
  • Versión web funcional: soyquechua.org/yupana (versión 2026)

Cualquier investigador puede:

  1. Ejecutar el simulador localmente
  2. Generar su propio corpus de operaciones
  3. Reproducir las métricas reportadas en el Post 3 (Resultados)
  4. Exportar los grafos a Gephi para visualización personalizada

11. Conexión con teoría existente

El enfoque se alinea con interpretaciones modernas de la Yupana que destacan su carácter no simbólico y basado en reconocimiento de patrones, en lugar de cálculo aritmético tradicional.

Esto está respaldado por estudios como Tawa Pukllay (investigación sobre juegos y matemáticas andinas), donde se documenta que:

  • La Yupana opera por manipulación de patrones espaciales
  • No requiere cálculo mental secuencial
  • El resultado emerge de la reorganización, no de la suma directa

Adicionalmente, la modelización como autómata de estados discretos conecta este trabajo con la teoría de sistemas dinámicos y la computación no simbólica, abriendo puentes entre la etnomatemática y las ciencias de la computación.


12. Declaración de integridad metodológica

Este método no sigue el protocolo ideal de «diseño → implementación → validación». Sigue un camino más humano y ecológico:

Aprendizaje físico → frustración por falta de herramientas → prototipo funcional pero imperfecto → refactorización → automatización → análisis.

Se documenta esta trayectoria no como una debilidad, sino como una fortaleza metodológica: el modelo digital no es una especulación teórica, sino la traducción formal de una práctica real validada por un hablante nativo que aprendió jugando con un tablero físico.


13. Conexión con el Post 3 (Resultados)

Los datos extraídos mediante este método (500,501 operaciones, métricas de carry, pasos, estados, grafos exportados a Gephi) son analizados en el Post 3 (Resultados) , donde se presentan exclusivamente los hallazgos cuantitativos, sin interpretación filosófica (esa queda para el Post 4 de Discusión).

🔁 Ruta de lectura del estudio de la Yupana

Este artículo presenta el método utilizado para analizar la yupana como sistema computacional.

  1. 1. Problema: Formalización computacional de la Yupana
  2. 2. Método: Simulación computacional de la Yupana (este artículo)
  3. 3. Resultados: Análisis estructural del sistema
  4. 4. Análisis: Yupana como sistema computacional
  5. 5. Simulador interactivo (próximamente disponible)

Aquí se define el enfoque metodológico basado en simulación, generación de estados y validación estructural del sistema.

Ver todos los artículos de la serie: Yupana

Leave a Comment