¿Cuál es el problema lógico más difícil que has encontrado? Sea lo suficientemente amable como para mencionar la solución también.

Originalmente encontré esto en la sección “desafío para la mente” de la Academia Khan. Desde entonces lo he visto en la web bajo el nombre de “Blue Eyes” o “The Blue Foreheads Puzzle” (etc.). No puedo determinar la fuente original del rompecabezas simplemente buscando en Google, así que aquí lo llamaré …

El rompecabezas de los 100 lógicos

“Perfecto lógico” (n.): Una persona o entidad que puede observar cualquier situación y deducir instantáneamente de ella todo lo que se puede deducir.

Como parte de un experimento, un científico recoge a 100 de estos lógicos perfectos de las calles. El científico explica las siguientes reglas a los lógicos:

Mañana por la mañana, explica, cada uno de ustedes será ubicado en una habitación con las luces apagadas. Cada una de tus frentes contendrá un punto azul o nada en absoluto. Todas las mañanas prenderemos las luces de la habitación, y todas las noches las apagaremos. Cuando las luces estén encendidas, podrás ver la frente de cualquier otro lógico, excepto, por supuesto, el tuyo . Debe ser evidente que no debe comunicar ni transmitir ninguna información adicional a otros lógicos mientras esté en la habitación.

Su trabajo es este: si determina por la mañana que tiene un punto azul en la frente, debe abandonar la habitación a la mañana siguiente. Si determina que no tiene un punto, o simplemente no está seguro, debe permanecer en la habitación. El juego continuará hasta que todos los lógicos con un punto azul se hayan ido.

El científico hace una pausa, luego agrega: No le daremos información sobre cuántos puntos hay en total. Solo hay una restricción: al menos uno de ustedes debe tener un punto azul. Con esto, se va.

A la mañana siguiente, los lógicos están reunidos en la sala. Cuando las luces se encienden, cada lógico nota algo peculiar: cada frente a la vista contiene un punto azul.

¿Lo que pasa?

(Otra muy buena declaración de este problema se puede encontrar en xkcd’s Blue Eyes – A Logic Puzzle. Lea la sección de “respuesta” si está atascado – a una persona que trata de entender completamente el rompecabezas, casi no proporciona ninguna ventaja, que es una de las razones por las que este rompecabezas es tan difícil).

Responder

Pasan 100 días y noches, y ninguno de los lógicos se mueve. Luego, en la mañana del día 101, todos los lógicos se ponen de pie y salen arrastrando los pies.

Solución

Olvidando por un momento el caso de 100 puntos, imagina lo contrario: el caso donde solo hay 1 punto entre los 100 lógicos. En la mañana del primer día, el “lógico punteado” mira a su alrededor y solo ve frentes en blanco. Él sabe, sin embargo, que debe haber al menos un punto en el grupo. Como no puede verlo, debe estar en su propia frente. Así, en la mañana del día 2, él sale y el juego termina.

100 lógicos: 1 punto: 2 días

Ahora considere el caso donde hay 2 puntos. Llamemos a los lógicos punteados “L1” y “L2”. El primer día, L1 mira a su alrededor y ve otra frente punteada: la frente de L2. Por lo tanto, desde la perspectiva de L1 hay 2 posibilidades: una en la que L1 tiene un punto y otra en la que no. Si L1 no tiene un punto, solo hay 1 punto en total entre los lógicos. Si L1 tiene un punto, hay 2 puntos en total. L2, por supuesto, tiene la misma información.

Aquí está el truco: sabemos que si solo hay 1 punto, el juego termina en 2 días. Como L1 y L2 son lógicos perfectos, también saben que un juego de 1 punto lleva 2 días. Pero ni L1 ni L2 están seguros del número total de puntos al final del día 1, por lo que el juego no termina en 2 días. A partir de esto, L1 y L2 determinan que debe haber 2 puntos, y que el segundo punto debe estar en su propia frente. Así, tanto L1 como L2 se retiran la tercera mañana, y el juego termina.

100 lógicos: 2 puntos: 3 días

¿Ves el patrón? Ahora se puede convertir en una declaración inductiva formal. Supongamos que hay puntos A. Luego están los lógicos A que solo ven puntos A-1. Además, suponga que el resultado de “Días (A-1)” se puede determinar lógicamente, donde “Días” es una función que toma una cantidad de puntos X y genera la cantidad de días necesarios para finalizar un juego con X puntos. Dado que este resultado puede determinarse lógicamente, todos los lógicos perfectos lo saben. Por lo tanto, cuando el juego no termina en días (A-1), los lógicos A que ven los puntos A-1 saben que debe haber otro punto. Como no pueden verlo, este punto debe estar en su propia frente. Por lo tanto, el juego termina el día Días (A-1) +1, cuando todos los lógicos con puntos A se retiran.

100 lógicos: puntos A: días (A-1) +1 días

Y por inducción de A = 1 o 2

100 lógicos: 100 puntos: 101 días

Esta es la respuesta matemáticamente más rigurosa requerida para resolver un “rompecabezas lógico divertido” que he visto, y es por eso que lo puse aquí.

Apéndice

Cerca del final de escribir esto descubrí una variante aún más difícil del rompecabezas, “Alicia en la Convención de los lógicos”, que se describe aquí: rompecabezas de inducción

El problema lógico más difícil que conozco se llama acertadamente “El problema lógico más difícil jamás” por George Boolos.

Planteamiento del problema

Se declara de la siguiente manera:
Tres dioses A, B y C se llaman, sin ningún orden en particular, Verdadero, Falso y Aleatorio. True siempre habla de verdad, False siempre habla de manera falsa, pero si Random habla de manera verdadera o falsa es una cuestión completamente aleatoria. Su tarea es determinar las identidades de A, B y C haciendo tres preguntas de sí a no; cada pregunta debe hacerse exactamente a un dios. Los dioses entienden inglés, pero responderán todas las preguntas en su propio idioma, en el que las palabras para y no son da y ja , en algún orden. No sabes qué palabra significa cuál.
Boolos proporciona las siguientes aclaraciones:

  • Podría ser que a algún dios se le haga más de una pregunta (y, por lo tanto, a algún dios no se le hace ninguna pregunta).
  • Cuál es la segunda pregunta, y a qué dios se dirige, puede depender de la respuesta a la primera pregunta. (Y, por supuesto, de manera similar para la tercera pregunta).
  • Si Random habla de verdad o no, debe considerarse que depende del lanzamiento de una moneda escondida en su cerebro: si la moneda cae cara abajo, habla de verdad; si colas, falsamente.

Solución

Boolos proporcionó su solución en el mismo artículo en el que introdujo el rompecabezas. Boolos afirma que “el primer movimiento es encontrar un dios del que puedas estar seguro que no es aleatorio y, por lo tanto, es verdadero o falso”. [1] Hay muchas preguntas diferentes que lograrán este resultado. Una estrategia es utilizar conexiones lógicas complicadas en sus preguntas (ya sea bicondicionales o alguna construcción equivalente).
La pregunta de Boolos fue preguntarle a A:
¿Quiere decir si eres falso si B es aleatorio?
Equivalentemente:
¿Es cierto un número impar de las siguientes afirmaciones: usted es falso, da significa que , B es aleatorio?
Roberts (2001) e Rabern y Rabern (2008) observaron de forma independiente que la solución del rompecabezas se puede simplificar mediante el uso de ciertos contrafácticos. La clave de esta solución es que, para cualquier pregunta sí / no Q, hacer la pregunta Verdadero o Falso
Si te preguntara Q, ¿dirías ja ?
da como resultado la respuesta ja si la respuesta veraz a Q es , y la respuesta da si la respuesta veraz a Q es no (Rabern y Rabern (2008) llaman a este resultado el lema de la pregunta incrustada). La razón por la que funciona se puede ver al observar los ocho casos posibles.

  • Suponga que ja significa y da significa no .
  1. True se pregunta y responde con ja . Como él está diciendo la verdad, la respuesta veraz a Q es ja , lo que significa que .
  2. True se pregunta y responde con da . Como él está diciendo la verdad, la respuesta veraz a Q es da , lo que significa que no .
  3. Falso se le pregunta y responde con ja . Como él está mintiendo, se deduce que si le preguntas a Q, él responderá a da . Él estaría mintiendo, por lo que la respuesta veraz a Q es ja , lo que significa que .
  4. Falso se pregunta y responde con da . Como él está mintiendo, se deduce que si le preguntaras a Q, él respondería de hecho a ja . Él estaría mintiendo, por lo que la respuesta veraz a Q es da , lo que significa que no .
  • Suponga que ja significa no y da significa .
  1. True se pregunta y responde con ja . Como él está diciendo la verdad, la respuesta veraz a Q es da , lo que significa que .
  2. True se pregunta y responde con da . Como él está diciendo la verdad, la respuesta veraz a Q es ja , lo que significa que no .
  3. Falso se le pregunta y responde con ja . Como él está mintiendo, se deduce que si le preguntaras a Q, él respondería de hecho a ja . Él estaría mintiendo, por lo que la respuesta veraz a Q es da , lo que significa que .
  4. Falso se pregunta y responde con da . Como él está mintiendo, se deduce que si le preguntas a Q, él responderá a da . Él estaría mintiendo, por lo que la respuesta veraz a Q es ja , lo que significa que no .

Independientemente de si el dios preguntado está mintiendo o no e independientemente de qué palabra significa y cuál no , puede determinar si la respuesta veraz a Q es o no . Sin embargo, si el dios está respondiendo al azar, la respuesta a la pregunta aún no tiene sentido.

La solución a continuación construye sus tres preguntas utilizando el lema descrito anteriormente.

  1. Pregúntale al dios B: “Si te preguntara ‘¿Es aleatorio?’, ¿Dirías ja ?”. Si B responde a ja , B es aleatorio (y responde aleatoriamente) o B no es aleatorio y la respuesta indica que A es aleatorio. De cualquier manera, C no es aleatorio. Si B responde da , B es aleatorio (y responde aleatoriamente) o B no es aleatorio y la respuesta indica que A no es aleatorio. De cualquier manera, conoces la identidad de un dios que no es aleatorio.
  2. Dirígete al dios que fue identificado como no aleatorio por la pregunta anterior (ya sea A o C), y pregúntale: “Si te preguntara ‘¿Eres falso?’, ¿Dirías ja ?”. Como no es Aleatorio, una respuesta de da indica que es Verdadero y una respuesta de ja indica que es Falso.
  3. Pregúntale al mismo dios la pregunta: “Si te preguntara ‘Is B Random?’, Dirías ja ?”. Si la respuesta es ja , B es aleatorio; si la respuesta es da , el dios con el que aún no has hablado es Aleatorio. El dios restante puede ser identificado por eliminación.

Fuente: Wikipedia

He conocido a bastantes personas que estudian o han estudiado lógica filosófica a nivel de posgrado que estaban desconcertados por este tipo de problema (si es que no lo habían oído antes, eso es; la mayoría de ellos sí), así que creo que si bien es Siempre es difícil clasificar algo como “el problema más difícil”, sin duda es un buen candidato para este puesto. 🙂

Muy bien, recibí esta pregunta en una pregunta de examen final de algoritmos recientemente y creo que es interesante, así que la publicaré. Siéntase libre de eliminar cualquier error que pueda haber cometido.

Planteamiento del problema

Supongamos que tengo un gráfico G y ejecuto el algoritmo de Kruskal en ese gráfico para obtener MST T y luego tomar G, compensar todos sus pesos de borde por algún positivo k> 0 para producir G ‘. Ejecutemos Kruskal’s nuevamente en G ‘para obtener un MST T’ ¿el conjunto de bordes de T ‘sería idéntico a T? Por qué o por qué no

Mi respuesta

Mi respuesta a esa pregunta es un sí y hay una elegante “prueba” detrás.

La razón detrás de mi lógica es la siguiente: consideramos cómo funciona el algoritmo de Kruskal, esencialmente tomamos todos nuestros pesos de borde y los clasificamos en orden ascendente, luego implementamos una estructura de datos Union Find para fusionar los componentes conectados según sea necesario. Si compensamos todos los bordes por k, el algoritmo de Kruskal seguirá considerando los bordes en el mismo orden relativo que los bordes en el gráfico original de una manera codiciosa y de la misma manera T y T ‘producirán conjuntos de bordes idénticos.