¿Qué proporción de artículos de informática publicados contienen resultados no válidos?

Esa es una pregunta bastante difícil de responder, ya que casi ninguno de los artículos de informática involucra algo que pueda considerarse inválido en un sentido matemático.

Algunos documentos tienen derivaciones, y en ocasiones pueden estar equivocados, pero creo que solo puedo recordar algunos errores reales durante décadas, todos ellos relacionados con el problema P versus NP.

Una pregunta más responsable sería cuántos documentos son incorrectos. Pero luego tendrías que definir “incorrecto” antes de preguntarlo. El problema es que las matemáticas son puras, pero la informática rara vez lo es.

A pesar de la homilía de que cualquier cosa llamada ciencia no lo es, hay una buena cantidad de ciencia en informática. (Hay mucha ciencia en ingeniería informática con respecto al hardware, pero no cuentemos eso).

Algunas de las ciencias de la computación serían reconocibles como ciencias blandas, tales como estudios de percepción y experiencia del usuario en seres humanos. Algo de esto puede ser mal aplicado y mucho más simplemente ignorado, pero se hace de una manera bastante científica y generalmente se mantiene. Muy poco resulta ser simplemente incorrecto.

Sin embargo, hay otra necesidad de ciencia. Aunque todo, excepto los humanos, sería matemático, el espacio del problema es tan grande que nadie lo ha clasificado, ni mucho menos lo ha entendido.

La mayoría de los documentos de ciencias de la computación tienen la siguiente forma: “Oye, esto es genial; échale un vistazo. Parece resolver este problema en particular”. Luego obtenemos, para un problema particular o conjunto de problemas, un documento que sugiere un enfoque. La ética es muy buena. La mayoría de los trabajos muestran dónde fallan sus algoritmos y dónde tienen éxito. Entonces alguien desarrollará el trabajo o propondrá un enfoque diferente. Eventualmente mejorará hasta que una solución llegue a dominar (a veces más).

Es un proceso de prueba y error que es completamente consistente con el proceso científico. Mientras que, por supuesto, los matemáticos generalmente progresan en su trabajo al encontrar soluciones parciales para casos especiales conocidos, en informática casi nunca sabemos cuáles son los casos especiales. Sin embargo, como con la ciencia, dudaría en llamarlo inválido o incluso incorrecto. Más bien, hay (si tenemos suerte) soluciones sucesivamente mejores. Es algo necesario hacer.

Luego están las mentiras. Estos, en mi experiencia, generalmente son de compañías que intentan hacer pasar lo que llaman “libros blancos” como papeles. Esto debe ser difícil para los editores, ya que rara vez me encuentro con una persona de negocios que tenga idea de qué es un periódico.

Sin embargo, los editores mantienen una alta calidad. Una vez vi un excelente artículo en SIGGRAPH sobre cómo calcular la dinámica de los objetos que caen rápidamente. Es un problema difícil y tenían una solución admirable. Sin embargo, me preguntaba por qué todos los objetos en las demos eran cráneos y fémures estilizados. Por supuesto, un fémur tiene una curva interesante que dificulta la detección de colisiones. Algunos años más tarde, cuando vi la secuencia de Path of the Dead en una de las películas de El señor de los anillos , quedó claro.

Las cosas que salen de Microsoft Research, Disney, los últimos Silicon Graphics, Intel o Apple tienden a ser muy buenas, tan buenas como los mejores trabajos académicos.

Sin embargo, eso deja una clase, que encuentro notable. Casos en los que está mal, y no hicieron su trabajo, y tenían suficiente influencia para superar no solo el proceso de revisión por pares, sino, irritantemente, un nivel de dominio. He visto algunos de estos a lo largo de los años, y el más atroz fue el algoritmo Marching cubes. Como no sé cuántas personas son expertas, seré elemental con el resto. Puede ignorarse con seguridad si confía en mi palabra de que Marching Cubes es atroz.

Si tiene, por ejemplo, terreno, y desea dibujarlo en una hoja de papel, una forma es el mapa de contorno. Dibuja líneas en ciertas elevaciones, por ejemplo, 100 pies, 200 pies, etc. Se parece a esto:


Todos ustedes han visto estos. Son un poco desagradables, pero son mejores que nada, y son baratos y rápidos. Puedes hacerte una idea de que la B es de gran elevación, y está un poco más alta en el medio de eso y hay un pequeño punto alto a la izquierda.

Hay un problema similar en 3-D, y una de las soluciones es la isosuperficie. En lugar de líneas con cierto valor, hay una superficie con cierto valor. No es la única solución (la visualización del volumen, el trazado de rayos o el cálculo HOD de atrás hacia adelante es mejor), pero es computacionalmente barato y se puede hacer bien en cualquier tarjeta gráfica moderna. (Cuando estaba haciendo mucho de esto, no había ninguno, y tuvimos que usar estaciones de trabajo de Silicon Graphics, pero estoy divagando).

Aqui hay uno.


Este es mío. Lo hice, e hice el software que lo hizo, en algún momento a fines de la década de 1980. También apesta. Parte del problema es que no tengo el original (tengo el código pero no tengo una máquina para ejecutarlo) y tuve que escanear esto desde un folleto a medio tono (me tomó años incluso encontrar un escáner que no tuviera alias con el medio tono).

Por supuesto, también apesta un poco, pero da una estimación aproximada de lo que está sucediendo. El bit blanco es básicamente la nube. Los grumos verdes son donde llueve. Y las cosas de punta roja son corrientes ascendentes.

Ahora, para Cubos en marcha. Olía un poco raro desde el primer momento.

Primero, recibió el nombre de la parte menos importante del algoritmo, que operaba en cubos topológicos individuales, sólidos de seis lados dentro de los cuales se podían dibujar superficies, produciendo (con suerte) una isosuperficie consistente. Los “cubos” podrían deformarse, por supuesto, y eso podría romper las suposiciones, pero no era probable que aparecieran en cuadrículas regulares, separables o incluso curvilíneas. (Ahora los llamamos hexahedra, posiblemente debido al disgusto de muchas personas por este documento).

El truco es cómo obtener las superficies de los datos, y conduce a una isosuperficie completa consistente y comprensible. Esa es la única parte del documento que podría hacer que el algoritmo sea incluso interesante para cualquiera. Todos sabemos cómo atravesar una matriz de sangrado y hacer operaciones locales durante décadas de sangrado.

Esa parte fue simplemente una afirmación de que todos los casos se redujeron en simetría a unos pocos casos que podrían aplicarse simplemente haciendo coincidir un patrón con un patrón alto-bajo en los vértices.

Eso fue un poco inquietante para mí. Hay un problema en los mapas de contorno llamado problema de silla de montar. Si dos esquinas opuestas son altas y las otras dos son bajas, hay dos formas de dibujar las líneas. Aunque es teóricamente imposible de resolver debido al teorema de Nyquist en todos los casos, saber algo sobre los datos (el terreno y las nubes son bastante suaves) o al probarlo a partir de todo el conjunto de datos, puede hacerlo mejor. Por ejemplo, puede ver cuál es el promedio, o puede calcular gradientes aproximados a partir de “cuadrados” vecinos, o algo así. En el peor de los casos, puede dejar que el usuario lo vea en ambos sentidos y decidir si es importante.

En 3D, ese problema existe, pero hay otro problema peor, que llamo el problema del tubo. Si dos esquinas opuestas son, digamos, altas, y todas las demás son bajas, entonces obtienes algo que está igualmente satisfecho por un tubo a través del hexaedro o tapas en las esquinas. En general, esto podría, por ejemplo, hacer que una secuencia parezca una serie de burbujas.

La reducción a unos pocos casos afirmó una solución al problema sin pensarlo en absoluto. Ningún intento de pensamiento o demostración.

Lo único nuevo sobre el algoritmo era una afirmación, sin pruebas, de que esta era una buena manera de hacerlo. Obtuvo una patente de EE. UU. (4.710.876). Su influencia y la influencia de su escuela fueron suficientes para que cualquiera que se le ocurriera algo mejor, incluso independientemente, tuviera que citar a los hijos de puta.

Cuando las cosas no me huelen bien, no las hago. Se me ocurrió mi propio algoritmo, al que llamo Cutting Corners. Se extiende a otras topologías y cuadrículas, pero maneja hexahedra individualmente, como lo hace la parte completamente trivial de Marching Cubes. También está informado por el gradiente, que, aunque no es local, puede calcularse previamente sin mayor complejidad de tiempo.

Cuando estaba produciendo esas imágenes, la bomba cayó. Marchar cubos estaba mal.

Wikipedia afirma: “Su primera versión publicada explotó la simetría rotacional y reflexiva y también firmó cambios para construir la tabla con 15 casos únicos. Sin embargo, en el acoplamiento de las caras hay casos posiblemente ambiguos. [2] Estos casos ambiguos pueden conducir a mallas con agujeros “Las isosuperficies topológicamente correctas aún se pueden construir con un esfuerzo adicional”.

Esto es una mierda completa. Los casos ambiguos siempre resultan en una isosuperficie consistente con mi algoritmo. No hay razón para que no lo hagan con las suyas. Esto se debe a que para cualquier par de vértices conectados por un borde, hay un vértice entre ellos o no lo hay. Simplemente cagaron en sus cálculos de simetría, si es que incluso calcularon algo, lo cual dudo.

Aquí hay una razón por la cual esto es importante. Si miras mi ilustración sobre, cerca de la parte inferior izquierda de la tormenta, en la parte blanda, verás que falta un triángulo muy obvio. Este es un conjunto de datos real y le faltan datos. Para algunos puntos, el radar Doppler pierde algo y lo informa como datos faltantes. (Por alguna razón, piensan que 999 es un buen número para los datos faltantes). Tenía que tener mucho cuidado con eso, porque decía algo sobre el conjunto de datos y lo confiable que era. Así que simplemente no lo dibujé. Si vio un montón de estos, podría decir que el conjunto de datos no era muy bueno para ese segmento de tiempo. Es como ver nieve en una transmisión de televisión.

Sé que faltan datos. No podía saber con Marching Cubes, debido a los problemas con el algoritmo. Rápidamente lo arreglaron, por supuesto.

A pesar de que mi algoritmo era demostrablemente consistente, me asusté y configuré una prueba mediante la cual se podían probar todas las combinaciones posibles de hexaedro. Los vi pasar por varias horas. Cada uno de ellos estaba en lo correcto.

Tampoco es esto lo único que me molesta. Los problemas del tubo y el sillín nunca fueron reparados. Veo en Wikipedia que este algoritmo se usa principalmente en aplicaciones médicas. Vi un artículo sobre las primeras aplicaciones de la colonoscopia virtual. Así se hacen las cosas ahora. Te llenan de combustible y te hacen una resonancia magnética o algo así, luego hacen isosuperficies. A los médicos realmente no les gusta nada que no parezca una radiografía, pero les gusta esto porque calculará el volumen de un pólipo, importante para el diagnóstico. Bueno, los tubos versus las tapas y las sillas de montar pueden cambiar este volumen.

Vi otra presentación sorprendente en la que alguien señaló que debido al muestreo, existe una ambigüedad inherente en la posición de la isosuperficie, y que es fácil estimar esta ambigüedad: el gradiente. Nunca había visto ningún programa de isosuperficie que lo mostrara. Regresé y lo puse en mi programa. Pero apuesto a que todas las resonancias magnéticas de GE con la patente Cubos de marcha de GE (que finalmente expiró en 2005) no tienen nada de esto, ni fueron hechas por personas a las que incluso se les haya provocado pensar en el problema, cosas en las que pienso.

Lo que supongo es por qué voy a Indiana con menos de $ 2000 preguntándome si alguien me volverá a contratar. Ni William E. Lorensen ni Harvey E. Cline tienen páginas de Wikipedia, por lo que quizás les va tan mal. Ellos deberían. Pero de alguna manera lo dudo. Y sí, estoy cabreado y tengo derecho a estarlo.

Responder esto sería en sí mismo inválido. Piénsalo.

More Interesting

¿Soy demasiado estúpido para la informática?

¿Cómo usan los hackers Linux?

¿Cuál es la formación en informática en la Universidad Estatal de Michigan (MSU)?

¿Cuál es la diferencia entre el control de calidad para una plataforma Enterprise Big Data vs una aplicación Enterprise Big Data?

¿Cuáles son algunos proyectos que implementan Machine Learning e Ingeniería Eléctrica?

¿Es posible ver si / cuando un archivo fue copiado en mi computadora?

¿Cuál será la próxima revolución informática y cómo puedo participar?

¿Es posible una computadora biológica cuántica Lisp?

Si solo tuviera unos pocos megabytes / kilobytes libres en un disco grabable planificado, ¿cómo los utilizaría exactamente?

¿Cuáles son las especificaciones mínimas de computadora portátil que necesito para que una computadora portátil pueda lograr cualquier cosa (creación de software, juegos, 30 pestañas abiertas a la vez, MSoffice, etc.)?

¿Cómo se relacionan el aprendizaje automático y el aprendizaje profundo?

¿Qué causó el 'invierno AI' y cuáles fueron las primeras señales de advertencia? Dado el estado actual de la IA, ¿es probable que haya otro período de bajo interés en el campo? ¿Qué cuellos de botella serían la causa de eso?

Estoy interesado en CS y quiero seguir investigando en el futuro. ¿DTU / NSIT o los 5 NIT principales serán mejores para mí?

¿Cuál es la función de un registro en una CPU?

¿Hay más de un sistema operativo instalado en mis computadoras?