Guias de anotaciones¶
Esta guía establece un vocabulario técnico preciso y lenguaje matemático riguroso para documentar retos ARC.
Usa lenguaje claro y preciso
No se pide una precisión matemática al anotar observaciones o hipótesis, pero sí usar un lenguaje claro, sencillo, y que no dé pie a interpretaciones.
Su propósito es maximizar la información transmitida con mínima ambigüedad y verbosidad.
Principios generales¶
- Precisión "matemática": Utilizar terminología inequívoca, no necesariamente formalmente matemática.
- Concisión: Eliminar palabras vacías, adjetivos imprecisos, descripciones vagas y expresiones redundantes.
- Objetividad: Describir propiedades observables, no interpretaciones subjetivas.
- Cuantificación: Especificar cardinalidad, frecuencia y distribución siempre que sea posible.
Definiciones fundamentales (matemáticas y sencillas)¶
- Conjunto: Colección no ordenada de elementos distintos, denotado como {a, b, c}. Un grupo de cosas diferentes, sin importar el orden.
- Subconjunto: Conjunto A donde ∀x∈A: x∈B para algún conjunto B. Un grupo más pequeño que está dentro de otro grupo.
- Elemento: Unidad atómica dentro de un conjunto. Una cosa individual dentro de un grupo.
- Dimensión: Par ordenado (w, h) que especifica ancho (width) × alto (height) de una matriz. El tamaño de una tabla: cuántas filas y columnas tiene.
- Matriz: Función f: {0,1,...,m-1}×{0,1,...,n-1} → V donde V es el conjunto de valores posibles. Una tabla de números o colores, organizada en filas y columnas.
- Posición/Coordenada: Par ordenado (i,j) que identifica una celda específica en una matriz. El lugar exacto de una celda en la tabla (fila, columna).
- Adyacencia: Relación entre elementos que comparten un borde o vértice. Cuando dos celdas están una al lado de la otra (tocándose por un lado o esquina).
- Componente conexa 4 (N4-conexa): Conjunto de celdas conectadas por adyacencia cardinal (N, S, E, O). Un grupo de celdas conectadas solo por arriba, abajo, izquierda o derecha.
- Componente conexa 8 (N8-conexa): Conjunto de celdas conectadas por adyacencia cardinal o diagonal. Un grupo de celdas conectadas por cualquier vecino, incluyendo diagonales.
- Componente máxima: Componente conexa C tal que |C| ≥ |C'| para toda otra componente C'. El grupo conectado más grande.
- Contorno: Conjunto de celdas de una componente conexa que tienen al menos un vecino fuera de la componente (pueden ser parte del grupo o referirse solo a la frontera). Las celdas que están en el borde de un grupo.
- Interior: Elementos de una componente conexa que no pertenecen a su contorno. Las celdas dentro de un grupo, que no están en el borde.
- Patrón: Configuración espacial específica de valores, definida por su forma y distribución. Una forma o dibujo hecho por los valores en la tabla.
- Cardinalidad: |S| = número de elementos en el conjunto S. Cuántos elementos hay en un grupo.
- Frecuencia: f(v) = número de ocurrencias del valor v. Cuántas veces aparece un valor.
- Distribución: Función que asigna a cada valor posible su frecuencia relativa. Cómo se reparten los valores en la tabla.
- Moda: Valor v donde f(v) es máximo. El valor que más se repite.
- Paridad: Propiedad de un entero n de ser par (n mod 2 = 0) o impar (n mod 2 = 1). Si un número es par o impar.
- Direcciones cardinales: N(orte), E(ste), S(ur), O(este)/W(est). Arriba, derecha, abajo, izquierda.
- Direcciones intercaladas: NE, SE, SO/SW, NO/NW. Las diagonales: arriba-derecha, abajo-derecha, abajo-izquierda, arriba-izquierda.
- Relación espacial: (∆i,∆j) donde ∆i, ∆j ∈ {-1, 0, 1} para adyacencia inmediata. Cuánto se mueve una celda respecto a otra.
- Vecindad de Von Neumann: N₄(i,j) = {(i+1,j), (i,j+1), (i-1,j), (i,j-1)}. Los vecinos que están justo arriba, abajo, derecha o izquierda de una celda.
- Vecindad de Moore: N₈(i,j) = {(i±1,j±1), (i±1,j), (i,j±1)}. Todos los vecinos alrededor de una celda, incluyendo diagonales.
- k-vecindad: Conjunto de todas las celdas a distancia ≤ k de (i,j). Todas las celdas que están a k pasos o menos de una celda.
- Fondo (background): Valor predominante en la matriz, normalmente el que ocupa más celdas (típicamente 0).
- Ruido: Elementos dispersos que no forman patrones relevantes sobre el fondo.
- Traslación: T(i,j) = (i+∆i, j+∆j) para constantes ∆i, ∆j. Mover un elemento de una posición a otra.
- Rotación: Rx(i,j) = (j, n-1-i) para rotación de X° en sentido horario. Girar una figura X grados.
- Rotación antihoraria: Girar una figura X° en sentido contrario a las agujas del reloj.
- Reflexión horizontal: H(i,j) = (n-1-i, j). Voltear una figura de arriba a abajo.
- Reflexión vertical: V(i,j) = (i, m-1-j). Voltear una figura de izquierda a derecha.
- Mapeo: Función φ: V₁ → V₂ que asigna a cada valor v∈V₁ un valor φ(v)∈V₂. Cambiar los valores según una regla.
- Negación: ¬v o complemento de v. Cambiar 0 por 1 y 1 por 0 (o el opuesto de un valor).
- Substitución: Reemplazo de un valor por otro siguiendo una regla φ.
- Sentido horario / antihorario: "Horario" es el giro en el sentido de las agujas del reloj; "antihorario" es el opuesto. Se usa para describir el sentido de rotación o recorrido de un contorno.
- Punto de inicio: Celda desde la que comienza un recorrido, patrón o transformación.
- Propagación: Extensión de un valor a otras celdas, por adyacencia directa o siguiendo una regla (no siempre todos los vecinos deben tocarse). Cambiar un valor por otro en función de una regla.
- Unión: A ∪ B = {x: x∈A ∨ x∈B}. Juntar dos grupos en uno solo.
- Intersección: A ∩ B = {x: x∈A ∧ x∈B}. Quedarse solo con lo que está en ambos grupos.
- Diferencia: A B = {x: x∈A ∧ x∉B}. Quitar de un grupo los elementos que están en el otro.
- Operaciones bit a bit: ∧ (AND), ∨ (OR), ⊕ (XOR). Operaciones lógicas entre valores (y, o, o exclusivo).
- Escalado: Expansión o contracción uniforme de un patrón. Hacer una figura más grande o más pequeña manteniendo su forma.
- Propagación: Extensión de valores siguiendo reglas de adyacencia. Rellenar celdas a partir de otras, siguiendo vecinos.
- Segmentación: Partición en subconjuntos según algún criterio.
- Valor predominante: Valor v tal que f(v) > f(v') para todo v'≠v.
- Elementos únicos: Conjunto {v: f(v)=1}.
- Inclusión: Patrón A contenido completamente dentro de patrón B.
- Alineación: Patrones que comparten coordenadas en al menos un eje.
- Equidistancia: Patrones separados por distancia constante.
Bases de los retos¶
- Matrices: Todos los elementos se interpretan como matrices de distintas dimensiones.
- Dimensiones: Las dimensiones pueden variar entre problemas, y puedes ser distintas en el espacio input y output.
- Cardinalidad: El espacio cardinal máximo es 10, porque los valores pueden ser 0 (nulo), 1 .. 9. Cada problema puede tener un valor entre 1 (solo hay nulos), y 10, todos existen.
- Conjuntos: En Arc los conjuntos inputs y outputs pueden tener distinto tamaño, es importante tener en cuenta para afinar en gran medida las hipótesis.
- Fondo: El valor predominante en la matriz, normalmente 0.
- Ruido: Elementos dispersos que no forman patrones relevantes sobre el fondo.
- Transformaciones típicas: Traslaciones, rotaciones, reflexiones, propagaciones, mapeos de valores, etc.
- Patrones relevantes: Componentes conexas, contornos, alineaciones, simetrías, etc.
Todas las anotaciones se referirán a:
- Distribución, frecuencia, y patrones en el input u output.
- Transformaciones que apliquen siempre entre input y output.
- Descripciones detalladas de los elementos que dan información útil.
- La información útil es aquella que resuelve el problema, o descarta afirmaciones.
Patrones comunes en ARC¶
Sección ñeee, no me convence lo que aporta. TODO ver si reelaborar o borrar.
Relaciones estructurales¶
- Alineación: Patrones que comparten coordenadas en al menos un eje.
- Simetría: Propiedad de mantener la forma bajo ciertas transformaciones (rotación, reflexión).
- Ruido: Elementos dispersos que no forman patrones relevantes sobre el fondo.
Relaciones espaciales¶
En problemas basados en posiciones relativas:
- Utilizar coordenadas precisas
- Referenciar mediante relaciones de vecindad
- Especificar distancias y direcciones
Transformaciones¶
En problemas de mapeo entre entrada y salida:
- Describir mediante composición de funciones
- Especificar dominio y codominio de cada transformación
- Indicar invariantes (propiedades que no cambian)
Ejemplos¶
Para el análisis, es importante:
- Cuantificar cardinalidad de cada grupo
- Indicar la frecuencia de cada cardinal
- Indicar distribución espacial de los grupos
- Especificar criterio de agrupación (adyacencia, valor, etc.)
Esta sección contiene algunos ejemplos para detectar conceptos y patrones, y poder expresarlos.
Ejemplos de conceptos y patrones¶
- Componente conexa 4 (N4-conexa):
Los "1" de la izquierda y centro forman una componente conexa 4; el "1" de la esquina inferior derecha está separado.
1 0 0 1 1 0 0 1 1 - Componente conexa 8 (N8-conexa):
Todos los "1" están conectados en una sola componente conexa 8.
1 0 1 0 1 0 1 0 1 - Contorno:
El contorno son los "1" del borde; el interior sería el "0" central si fuera parte del grupo.
1 1 1 1 0 1 1 1 1 - Fondo (background):
El fondo es 0.
0 0 0 0 0 5 0 0 0 0 0 0 - Ruido:
Los "1" y "2" son ruido sobre el fondo 0.
0 0 0 0 0 1 0 0 0 0 0 2 - Propagación:
Propagación de "1" desde (0,1) a toda la componente conexa 4.
0 1 0 1 1 0 0 0 0 - Traslación:
Input: 0 1 0 0 0 0 0 0 0 Output: 0 0 0 0 1 0 0 0 0 Traslación: (0,1) → (1,1) - Rotación 90° horario:
1 2 3 4 => 3 1 4 2 - Rotación 90° antihorario:
1 2 3 4 => 2 4 1 3 - Mapeo de valores (input → output):
Input: 1 2 2 1 1 2 Output: 3 4 4 3 3 4 Mapeo: { 1 -> 3, 2 -> 4 }
Ejemplos de expresión: mal dicho vs bien dicho¶
- "grupos de 8s juntos" > Componentes conexas de valor 8 con cardinalidad 3
- "fondo de 0s con unos pocos 5s" > Matriz con valor predominante 0 (f(0)=40) y elementos minoritarios de valor 5 (f(5)=4)
- "relleno de huecos" > Asignación de valor v a celdas que satisfacen predicado P(i,j)
- "el patrón se mueve" > Traslación T(2,3) aplicada al subconjunto S
- "hay un cambio de colores" > Mapeo {1→3, 2→4, 3→2} entre input y output
- "elementos que forman una L" > Patrón con configuración espacial L, compuesto por elementos en posiciones {(i,j), (i+1,j), (i+2,j), (i+2,j+1)}
- "hay puntos sueltos" > Ruido sobre fondo 0: elementos aislados de valor distinto al fondo
- "se rellena la figura" > Propagación de valor v a la componente conexa a partir de (i,j)
- "se gira la figura" > Rotación 90° horario del subconjunto S respecto al centro (cx,cy)
- "se empieza por la esquina" > Punto de inicio en (0,0) para el recorrido del contorno
- "En origen un grupo de no nulos componen el fondo, y en el centro hay grupos de valores no nulos con distintas frecuencias y posiciones." > En la matriz de entrada, el fondo está compuesto por valores no nulos (fondo predominante). En el centro existen subconjuntos de valores no nulos, cada uno con frecuencia específica.
- "En destino hay muchos menos elementos, concretamente 4 veces menos de cada grupo no nulo de origen." > En la matriz de salida, la frecuencia de cada valor no nulo es exactamente ¼ respecto al input.
- "Las dimensiones de destino son más 3 veces menores tanto en filas como columnas." > La dimensión de la matriz de salida es (3×3), siendo ⅓ de la dimensión de entrada en ambos ejes.
- "Iden, excepto distintos números con distintas frecuencias." > En la segunda muestra, los valores y sus frecuencias cambian, y los subconjuntos centrales presentan una traslación respecto al centro original.
- "Los elementos ya no están en el centro de origen sino que tienen un ligero desplazamiento." > Los subconjuntos centrales presentan una traslación respecto al centro original.
- "En origen casi todos valores nulos, excepto 2 subgrupos de 8s, en forma de esquina." > En la matriz de entrada, el fondo es 0 (f(0) ≫ f(8)), con dos componentes conexas de valor 8, cada una con cardinalidad 3, formando esquinas.
- "En destino están los mismos 8s, en las mismas posiciones, y un uno con los 3 8s como vecino." > En la matriz de salida, los valores 8 se mantienen en las mismas posiciones, y se añade un valor 1 en la celda adyacente diagonal a tres valores 8, completando un patrón cuadrado.
- "El 1 siempre tiene 3 vecinos en lateral diagonal de 8s." > El valor 1 se ubica en la posición que completa la componente conexa 8 formando un cuadrado (adyacencia diagonal).
- "Concepto rellenar cuadrados." > El patrón de salida consiste en completar componentes conexas cuadradas a partir de tres valores 8 adyacentes.
- "En origen fondo de elementos nulos. Solo 2 elementos no nulos, un 2 y un 8 en la primera fila, distintas columnas." > Input: fondo 0, con dos elementos no nulos (2 y 8) en la primera fila, posiciones (0,i) y (0,j).
- "En destino están los 2 mismos valores en la misma posición, pero en las siguientes filas hay consecutivamente 2, 1, 2, 1 de cada elemento replicados (columna -1 y +1 del valor original)." > Output: los valores no nulos se mantienen en la primera fila, y en cada fila subsiguiente se replica el valor original en posiciones desplazadas ±1 columna respecto a la anterior, formando un patrón alternante.
- "Idem, pero en este caso solo hay un 4 en origen. En destino mismo patrón de 4s." > En la segunda muestra, solo un valor 4 se replica siguiendo el mismo patrón de desplazamiento.
- "En origen fondo de elementos no nulos, con las 2 primeras filas de 2s y la 3a fila de 3s." > Input: matriz con fondo predominante distinto de 0, dos primeras filas con valor 2, tercera fila con valor 3.
- "En destino hay el doble de elementos, los de origen copiados en la misma posición, y en las últimas posiciones en inverso." > Output: la frecuencia de cada valor se duplica respecto al input. Los valores originales se mantienen en posición, y se añaden sus reflejos horizontales en las filas correspondientes.
- "Los elementos extra (x2) presentan una reflexión horizontal." > Transformación: reflexión horizontal de cada fila, uniendo el original y su reflejo.
Errores comunes a evitar¶
- Uso de expresiones vagas: "ligero desplazamiento", "rellenar cuadrados", "idéntico pero con otros números".
- Falta de cuantificación: no se especifica cardinalidad, frecuencia, ni distribución.
- Descripciones subjetivas o poco objetivas: "en el centro", "forma de esquina", "componen el fondo".
- No se usan términos de la guía como "componente conexa", "adyacencia", "traslación", "reflexión", "cardinalidad", "frecuencia", etc.
- No indicar explícitamente las transformaciones o patrones detectados.