¿Por qué la gente habla de algoritmos como si pudieran resolver todos los problemas?

Bueno, un algoritmo es una lista de instrucciones para resolver un problema, por lo que si un problema se puede resolver, entonces (por definición) se puede resolver mediante un algoritmo.

Lo curioso de esta pregunta: cualquiera que haya estudiado algoritmos en serio es muy consciente de que existen muchos problemas que sabemos con absoluta certeza que no se pueden resolver. De hecho, una parte importante del estudio de algoritmos trata de comprender esta frontera.

Para un ejemplo muy agradable, considere el problema de mosaico de Wang : puede comprar mosaicos con patrones específicos, por ejemplo:

Puede comprar infinitos de cada tipo de mosaico (pero solo puede comprar este tipo de mosaicos), y le gustaría colocar un plano con estos de tal manera que los colores tengan que coincidir a lo largo de los bordes adyacentes. (No está permitido rotarlos).

Obviamente, esto será imposible en algunas circunstancias. Si solo tiene un tipo de mosaico, y se ve como uno en la parte inferior izquierda, entonces no tiene suerte, porque uno que haya colocado no puede poner nada debajo. Por otro lado, si tuviera solo una ficha, pero fuera de color rojo sólido, entonces sería fácil colocar una ficha completa con ella. Por cierto, se sabe que el conjunto completo de 13 mosaicos de arriba reviste el plano.

Por lo tanto, podríamos imaginar escribir un programa de computadora que tome una lista de tipos de mosaicos como entrada y nos diga como salida si tenemos suficientes tipos para mosaico del plano. Parece lo suficientemente claro, ¿verdad?

Para resumir, cualquiera que haya tomado un curso serio sobre algoritmos sabe que no existe tal algoritmo. Y, para ser claros, no quiero decir que esto es algo que aún no hemos descubierto. La existencia de tal algoritmo llevaría a una paradoja. Simplemente no puede existir.

Sin embargo, dada la descripción de la pregunta, la pregunta real no parece ser sobre algoritmos; más bien, la pregunta podría plantearse más acertadamente: “Dado que los sistemas sociales son tan complicados, ¿por qué pensamos que los problemas no triviales en las ciencias sociales deberían ser manejables?”

Esto es, por supuesto, una cuestión propia, pero haré un punto rápido. No es necesario axiomatizar y simular las esperanzas y los sueños de cada persona en el planeta para obtener información útil sobre cómo se comportarán en conjunto. Cuatro personas comen en un lugar de comida rápida: una, porque le gustan las papas fritas; uno, porque no puede permitirse comer en otro lugar; uno, porque sus hijos lo han desgastado con sus constantes demandas de una comida en una caja con un juguete adentro; uno, porque está enamorado de uno de los cajeros. A nivel corporativo, ¿la empresa realmente se preocupa por toda esta información? Claro, estarían felices de adquirirlo al precio correcto, pero realmente no necesitan saber todo esto para mantener las parrillas en funcionamiento. Solo pueden ver cuántos clientes tuvieron ayer y predecir cuántos tendrán mañana; La ley de promedios se encarga del resto. En otras palabras, solo porque un sistema sea complicado, no significa que las partes del sistema que le interesan están más allá de la comprensión.

Un algoritmo es solo un método para resolver un problema. No hay nada mágico al respecto.

Digamos que el problema es: crear un pastel de chocolate perfecto.

El algoritmo es la receta del pastel de chocolate. Obviamente, hay muchas recetas que crean pastel de chocolate. Algunos son rápidos, algunos son lentos. Algunos son muy dulces. Otros son demasiado densos.

Las recetas (algoritmos) se prueban para ver cuáles funcionan mejor. Están manipulados con. Sus beneficios son discutidos. Se crean y prueban nuevas recetas. Las recetas probadas y verdaderas que producen Pastel de chocolate bastante bueno se publican en libros de cocina grandes y gordos para aquellos que solo quieren una respuesta confiable, pero a su vez se pueden modificar y mejorar.

Así es como evolucionan los algoritmos basados ​​en nuevos conocimientos y experiencia.

Si las personas piensan que su algoritmo es realmente especial y nadie más lo pensó primero, entonces pueden patentarlo o tratar de ocultarlo y hacerlo secreto, pero eso no lo hace mágico. Cuando la investigación científica presenta un ingrediente totalmente nuevo que reemplaza el polvo de hornear con algo mejor, las recetas antiguas se actualizarán con el nuevo ingrediente o proceso.

[La formulación de esta pregunta parece casi trollish, así que voy a intentar ser diplomático aquí …]

Liz, no estoy de acuerdo con tu pregunta en varios niveles.

Primero, no veo cómo las ciencias y las matemáticas que nos dan algoritmos útiles permanecen ocultos o místicos, tales términos son hiperbólicos. En el peor de los casos, las ciencias y las matemáticas son meramente esotéricas.

No es el objetivo de los ingenieros y científicos hacer que nuestro trabajo sea inaccesible. En todo caso, estamos intentando activamente que nuestro trabajo sea más comprensible y accesible todo el tiempo. Sí, hay una curva de aprendizaje, pero hay suficiente información disponible hoy en día que un laico lo suficientemente motivado puede aprender al menos los fundamentos de la informática o las estadísticas simplemente pasando tiempo en Google y Wikipedia.

Luego, para abordar la premisa de la pregunta: los algoritmos definitivamente no pueden resolver “todos los problemas”. No creo que nadie crea seriamente que ese es el caso. Incluso en un sentido teórico fundamental, existen límites para lo que los algoritmos pueden lograr (por ejemplo: http://en.wikipedia.org/wiki/Hal …).

Todavía no tenemos (y nunca podríamos tener) algoritmos manejables para abordar la enorme cantidad de problemas que siguen siendo un problema en nuestro mundo. Esto se espera.

Sin embargo, eso no significa que los algoritmos no puedan resolver una enorme cantidad de problemas de manera efectiva. Incluso en el peor de los casos, ciertamente nos pueden dar un poderoso conjunto de herramientas. (Para un ejemplo algo simple, ver: leeds-faculty.colorado.edu/vandenbr/papers/05sep05article.pdf)

Los algoritmos son herramientas. No siempre son soluciones en sí mismas. Alguien todavía tiene que implementar las soluciones ellos mismos. Nuevamente, nadie cree seriamente que los algoritmos son un fin en sí mismos en lo que respecta a los problemas sociales.

Continuando: los tipos de algoritmos sociales que parece estar describiendo siempre funcionan en modelos de comportamiento humano e interacción humana. Es decir, tomamos las interacciones humanas y las simplificamos de alguna manera, luego aplicamos algoritmos para descubrir las implicaciones de esas interacciones y conexiones. Tenemos medidas aproximadas (pero aún muy buenas) de lo que constituye influencia y conectividad social dados ciertos supuestos.

En el futuro con estos supuestos, podemos colocar límites de error en los resultados obtenidos en medidas como la “influencia social”. Nuevamente, nadie cree que los resultados que obtienen sean 100% precisos. Pero son lo suficientemente precisos como para que podamos construir negocios a su alrededor: dirigiendo anuncios a los usuarios, recomendando contenido futuro basado en contenido visto anteriormente, y así sucesivamente. Incluso podemos basar los servicios sociales y de salud a su alrededor: dónde distribuir la ayuda, qué pueblos vacunar en caso de un brote, etc.

Finalmente, Liz, ¿has intentado aprender los conceptos básicos de los algoritmos tal como están hoy? Wikipedia ofrece un gran comienzo. Si está realmente interesado en las métricas sociales, un algoritmo gráfico simple como el de Dijkstra es un excelente lugar para comenzar.

http://en.wikipedia.org/wiki/Dij