Explanation Bacon Number
February 1, 2023 | Author: Anonymous | Category: N/A
Short Description
Download Explanation Bacon Number...
Description
Solución para calcular el Número Bacon con Formulas Matriciales en MS Excel
Tal como Tal como hemos hemos prometido, prometido, aquí aquí les proveemos una solución solución para para el problema del Número Bacon. Desafortunadamente, Número Desafortunadamente, no podemos grabar la la solución solución en un buen video, por eso dejamos la video, la explicación explicación escrita. Qué es el Número Kevin Bacon?
Kevin Bacon un actor y ha actuado en muchas problemaun Número Número Bacon resuelve de qué películas. de tan cerca tan cerca Este se encuentra undel KevinesBacon resuelve la pregunta actor a Kevin Bacon. Kevin Bacon. Un Un actor cualquiera ha ha actuado actuado en en conjunto conjunto con con Kevin Kevin Bacon? O acaso él acaso él actuó actuó con con alguien que que lo hizo con con Kevin Kevin Bacon? Así que existe existe un actor en el el medio, o o tal tal vez vez existen dos dos actores actores en en el el medio o tres. En Hollywood Hollywood existen actores que actores que tienen tienen 11 11 actores actores entre entre Kevin Kevin Bacon Bacon y ellos ellos mismos. Por definición definimos que Kevin Bacon tiene un un Número Número Bacon Bacon equivalente equivalente a 1. Todos los Todos los que han actuado actuado directamente directamente con con Kevin Kevin Bacon Bacon tienen tienen el el Número Número 2. Aquellos que Aquellos que han actuado actuado con un un actor Número Número 2 tienen tienen el el Número Número 3, 3, etc. etc. Es importante dar cuenta de importante de que cada cada actor tiene tiene sólo un un Número Número Bacon, Bacon, a saber el más alto más alto posicionado (el (el Número Número más bajo, bajo, numéricamente). Así que si si alguna alguna vez actuaste con un Número actuaste Número 2, 2, entonces entonces tu tu Número Número es 3, 3, incluso incluso si si luego luego actuaste con actores Número 4 y actores y 5. 5. Esto Esto también aplica en forma forma viceversa. viceversa. Si Si otros con con un número Bacon mayor actuaron contigo, sus Números transforman el tuyo en Número +1; en este Número este caso caso 4. 4. Y eso eso significa significa que todas todas estas estas co-estrellas posiblemente también disminuyan su Número posiblemente Número Bacon. Bacon. Entonces Entonces existe existe un loop loop con feedback - El Número feedback Número Bacon Bacon nunca nunca se se arregla, arregla, pero pero está está constantemente cambiando. En segundo En segundo lugar, lugar, también también por definición, definición, el el Número Número Kevin Kevin Bacon Bacon es es solo calculado juntos en basándose en actores actores que han actuado actuado juntos en películas. películas. Entonces Entonces si si alguien tiene un tiene un Número Bacon 6, 6, pero pero tiene un un amigo amigo personal, cuyo cuyo amigo amigo personal personal de Kevin Bacon Kevin Bacon (entonces (entonces segunda línea), línea), o son miembros del del mismo club, o comparten intereses, comparten intereses, ninguna ninguna de estas cosas es es tomada tomada en en consideración para este problema. Entonces problema. Entonces solamente a través de de películas películas y co-estrellas co-estrellas puede puede cambiar un Número un Número Bacon. Cómo resolver el problema Bacon?
En primer lugar, nos sumergimos En sumergimos en un ejemplo ejemplo muy simple; simple; una vez que lo lo hemos entendido, podemos escalar hacia entendido, hacia uno uno más complicado. complicado. En el el libro de trabajo “Número Bacon “Número Bacon - Archivo Original.xslx” Original.xslx” tenemos tenemos 3 hojas: una hoja hoja con con actores (Tabla 1), (Tabla 1), una una hoja hoja con con películas películas (Tabla 2) 2) y una hoja hoja listando listando los actores actores que actuaron en qué película actuaron película (Tabla 3), cada cada uno está está demostrado demostrado debajo:
Actores dentro Tabla 1 - Actores Tabla dentro de la hoja hoja de Actores
Tabla 2 - Películas dentro de la Tabla la hoja hoja de de Películas
Tabla 3 - Hoja Tabla Hoja de de Película_Actor, combinando actores actores y películas películas en las que actuaron.
Hasta aquí todo bien Hasta bien entonces. Esto Esto es es lo que ya ya han visto múltiples veces veces en los videos. Podemos videos. Podemos hacer relaciones relaciones en tal pequeño set set de de datos datos hecho hecho a mano mano como sigue: Kevin Bacon Kevin Bacon es es Número Número 1 por definición. Luego Luego Julianne Julianne Moore, Emma Stone, Denise Richards y Denise y Bill Bill Murray Murray son son Número Número 2 ya ya que actuaron todos todos juntos juntos con Kevin Bacon. relacionada a Kevin Bacon de Bill Murray y Moore. El es Julianne Scarlett Julianne Moore. Johansson El número número está Bacon Bacon es la la conexión más corta aa través Kevin Bacon, entonces necesitamos entonces necesitamos chequear si si la la ruta a a través través de Bill es más corta, corta, teniendo un Número Bacon mejor ranqueado que Julianne. Número Julianne. Entonces Entonces buscamos el mínimo Número Bacon entre Número entre Bill y y Julianne. Ya que ambos tienen tienen un Número Número 2, 2, no no existe diferencia. Y el el Número Número de de Scarlett Scarlett será será 2 + 1 = 3. 3. Finalmente Finalmente Joseph Joseph Gordon-Levitt es es el el único único conectado conectado a Kevin Kevin a través de Julianne Julianne entonces entonces obtiene obtiene un un Número Bacon de Bacon de 3. Como podemos ver, para Como para Scarlett Scarlett Johansson Johansson existen dos posibles posibles rutas hacia hacia Kevin Bacon, via Bacon, via Bill Bill y via via Julianne. Julianne. Cuantos Cuantos más actores actores y películas películas involucradas, involucradas, más posibles rutas encontrarán. posibles encontrarán. De De todas todas maneras, estamos estamos buscando el el camino camino más corto que corto que nos nos da como como resultado el el Número Número Bacon Bacon mayor ranqueado. ranqueado. Esto Esto es exactamente el desafío donde exactamente donde las las soluciones anteriores fallaron. Entonces, Entonces, ¿cómo podemos resolver esto? Primero podemos Primero podemos indicar a Kevin Bacon en la la Tabla Tabla 1. 1. Luego Luego agregar en en la la celda celda B2 la fórmula =SI(A2=”Kevin =SI(A2=”Kevin Bacon”,1,999) Bacon”,1,999) y arrastrarla arrastrarla hacia hacia abajo hasta B8 B8 usando usando el mango de mango de relleno. El resultado está está demostrado demostrado abajo abajo en en la Tabla 4:
Tabla 4 - Hoja Tabla Hoja de de actor Ahora vamos Ahora vamos a la hoja hoja Película_Actor y y agregamos la la columna C donde buscamos el el Número Número Bacon Bacon para para cada actor basándonos basándonos en en los los resultados del del análisis del paso previo. Entonces podemos agregar en paso en la celda celda C2 la fórmula =BUSCARV(A2,Actor!A:B,2,FALSO) =BUSCARV(A2,Actor!A:B,2,FAL SO) y arrastrarla arrastrarla hacia hacia abajo abajo hasta hasta C12 usando el mango de mango de relleno. El resultado es es demostrado demostrado en en la Tabla 5, 5, debajo:
Tabla 5 - Hoja Tabla Hoja Película_Actor Ahora vemos, Ahora vemos, por ejemplo, ejemplo, que “Crazy “Crazy Stupid Stupid Love” Love” tiene un Número Número Bacon 1 y un Número Bacon 999. Número 999. Solamente Solamente estamos estamos interesados interesados en el el número número más más bajo posible, ya posible, ya que indica el camino camino más corto hacia hacia Kevin Kevin Bacon. Entonces lo Entonces lo que necesitamos necesitamos es es una función función que busca el valor mínimo perteneciente a una determinada película. Noten que no podemos hacer esto con una función una función BUSCARV, ya que asume asume que cada película película ocurre una única única vez vez en en la lista. No se lista. se toma en en cuenta el hecho hecho de que que existen múltiples múltiples hitos, hitos, entonces entonces solo devuelve el primero y devuelve y nunca nunca sabremos sabremos si si se se trata trata del valor mínimo. mínimo. Lo Lo que en verdad necesitamos es verdad es una una función función que tome en en cuenta todos todos los los posibles hitos y evalúe el evalúe el valor mínimo. mínimo. Entonces Entonces una especie especie de de función función condicional condicional Mínima, Mínima, un Mínimo si, Mínimo si, un un MINSI. De todas todas maneras, Excel Excel tiene un un SUMAR.SI, no tiene tiene una función MINSI. función MINSI. Afortunadamente, Afortunadamente, podemos podemos programar esta esta función función nosotros nosotros mismos a través través de de fórmulas fórmulas matriciales. Entonces lo Entonces lo que queremos queremos es es que que Excel Excel evalúe evalúe todas todas las películas en la la columna B, seleccione todos los los Números Números Bacon Bacon de de la la Columna Columna C que pertenezcan pertenezcan a una determinada película y luego luego defina defina el el Número Número Bacon Bacon mínimo. mínimo. Para Para ello, vamos vamos a la página “Película” y agregamos en la celda B2 la fórmula
=MIN(SI(A2=Movie_Actor!$B$2:$B$12,Movie_Actor!$C$2:$C$12,999)) =MIN(SI(A2=Movie_Actor!$B$2:$B$12,Movie_Actor!$C$2:$ C$12,999)) y arrastramos esta fórmula hacia hacia B5 B5 (vean (vean la Tabla 6). No No olviden olviden presionar ctrl+shift+enter para para ingresar esta esta fórmula, que adicionará adicionará los paréntesis exteriores automáticamente. La parte La parte del medio de de la la fórmula, SI(A2=Movie_Actor!$B$2:$B$12,Movie_Actor!$C$2:$C$12,999) chequea SI(A2=Movie_Actor!$B$2:$B$12,Movie_Actor!$C$2:$C$12,999) chequea cada celda en el rango Película_Actor!B2:B12 para ver si esa es la película la fila C columna actual (en actual (en el ejemplo, fila fila 2). Si es es así, devuelve el el Número Número Bacon Bacon de de la laen en la hoja en hoja Película_Actor, y y si si no devuelve un un valor muy alto, el 999. 999. Entonces sub-passos resultan en en una matriz con 11 11 entradas entradas de números/números, siendo siendo el Número Bacon de Número de la la película película si si el nombre nombre de la película película iguala iguala la la película película buscada, buscada, y 999 para 999 para películas distintas a a la la buscada. buscada. En la parte parte exterior de de la fórmula determinamos el determinamos el valor MIN MIN de la matriz matriz devuelto devuelto por la parte parte interior, entonces entonces si buscamos nuevamente buscamos nuevamente a en en la la Tabla Tabla 5, 5, vemos vemos que que para para las películas Crazy Crazy Stupid Love y Wild Things, Love Things, el valor mínimo debería debería ser 1. 1.
Tabla 6 - Hoja Tabla Hoja de de Películas Ahora estamos Ahora estamos muy cerca. cerca. Indicamos a Kevin bacon bacon en la hoja hoja de Actor, Actor, asignamos los Números los Números Bacon Bacon de de cada actor a las películas en la la hoja hoja de de Película_Actor, Película_Actor, luego buscamos para buscamos para cada película película el el mínimo mínimo Número Número Bacon Bacon y sumamos sumamos este este número número al de la hoja de hoja de Películas. Entonces ahora Entonces ahora sabemos que Crazy Crazy Stupid Stupid Love Love y Wild Wild Things Things tienen tienen como como Número Bacon 1. Bacon 1. Entonces la la siguiente siguiente tarea tarea es es alimentar este este conocimiento conocimiento devuelta devuelta a los Números Bacon de actores. Sabemos que Julianne Moore, Bill Murray, Emma Stone y Denise Richards Richards actuaron juntas con con Kevin Kevin Bacon Bacon en estas películas y y entonces deberían tener como deberían como Número Número Bacon Bacon 2. Entonces vamos Entonces vamos nuevamente nuevamente a la hoja hoja Película_Actor y y agregamos agregamos una fórmula extra en extra en el el rango rango D2:D12. Aquí Aquí buscamos el Número Número Bacon de la la película película de de la columna B de columna de la la hoja hoja de de Películas. Películas. La fórmula en en D2 es =BUSCARV(B2,Movie!$A$1:$B$5,2,FALSO)+1 =BUSCARV(B2,Movie!$A$ 1:$B$5,2,FALSO)+1 y arrastramos esto esto hacia hacia abajo usando el usando el mango de relleno. relleno. Noten que que agregamos 1 al resultado resultado del BUSCARV que incrementa el Número que Número Bacon en 1 1 reflejando reflejando el el paso entre entre Kevin Kevin Bacon Bacon y cada actor. Como actor. Como pueden ver en en la Tabla 7, 7, todos los actores actores que actuaron actuaron en recibieron el el Número Número 2, 2, incluyendo incluyendo a Kevin Bacon (en (en el que vamos vamos a reparar más tarde).
Tabla 7 - Hoja Tabla Hoja de de Película_Actor En la hoja En hoja de Actor ahora buscamos buscamos el el Número Número Bacon Bacon del actor de de la columna D D en la hoja hoja de de Película_Actor. Noten que no podemos podemos usar una función función BUSCARV, porque cada actor puede tener múltiples y distintos Números Bacon; comparen Julianne Moore Julianne Moore en en las celdas celdas D3 y y D11 donde donde tiene tiene Números Números Bacon Bacon 2 por la película Crazy película Crazy Stupid Stupid Love Love y un un Número Número 1000 1000 por la película película Don Don Jon. Jon. Entonces desde que desde que requerimos requerimos el el valor mínimo, mínimo, debemos aplicar una fórmula fórmula similar como hemos hecho hemos hecho antes antes en en la hoja hoja de Película. Nuevamente Nuevamente queremos queremos tener una función si si mínima, mínima, para para devolver el mínimo mínimo Número Número Bacon Bacon perteneciente perteneciente a un un actor específico. Entonces aplicamos Entonces aplicamos en en Actor!C2 Actor!C2 la la fórmula =MIN(B2,MIN(SI(A2=Película_Actor!$A$2:$A$12,Película_Actor!$D$2:$D$12,999))) y la arrastramos hacia hacia abajo abajo hasta C8 usando usando el el mango mango de relleno. Nuevamente, aseguren usar ctrl+shift+enter. Los resultados aseguren resultados se se muestran debajo debajo en en la Tabla 8:
Actor Tabla 8 - Hoja Tabla Hoja de de Actor
La parte La parte SI(A2=Película_Actor!$A$2:$A$12,Película_Actor!$D$2:$D$12,999) de la fórmula de fórmula devuelve devuelve una matriz matriz de de todos todos los Números Números Bacon Bacon en la columna columna D de A2, y 999 de otra la hoja hoja Película_Actor iguales al al nombre nombre del del actor en en A2, otra forma. Entonces para Entonces para Julianne Moore esta esta parte parte devolverá devolverá {999, 2, 2, 999, 999, 999, 999, 999, 999, 999, 999 , 999, 1000, 999}. 999, 999}. Ahora Ahora tomamos tomamos el el valor mínimo de esta esta matriz matriz utilizando MIN(SI(A2=Película_Actor!$A$2:$A$12,Película_Actor!$D$2:$D$12,999)) que MIN(SI(A2=Película_Actor!$A$2:$A$12,Película_Actor!$D$2:$D$12,999)) resulta en el singular número 2. Finalmente, aseguramos de que no un Bacon paso encontramos encontramos un Número Número Bacon menor en un unnos más temprano. Entonces tomamos el mínimo de tomamos de la la columna B B y el el mínimo mínimo de la matriz. matriz. Entonces para el caso de Julianne Moore de Moore esto esto iguala a =MIN(999, 2) 2) y el el resultado es es 2. 2. Similar a a Kevin Bacon terminaría Bacon terminaría con con = MIN(1,2) que es es igual igual a 1, 1, ¡que ¡que sabemos sabemos que es correcto! Ahora tenemos un paso Ahora paso completo, completo, resultando resultando en en todos los actores actores con Número Número 2 ¡Creemos que ya ¡Creemos ya saben saben cómo cómo pueden encontrar los actores actores con Número Número Bacon igual a 3! igual 3! De De hecho, repetiremos todos todos los sub-pasos. Entonces Entonces primero primero agregamos una columna una columna al al Película_Actor donde donde en en la la celda celda E2 agregamos la la formula BUSCARV=(A2,Actor!A:D,3,FALSO) . Encontramos BUSCARV=(A2,Actor!A:D,3,FALSO) Encontramos el el resultado es es como como demuestra la Tabla 9 debajo:
Tabla 9 – Hoja de Película_Actor A continuación continuación nos nos movemos hacia hacia la página página de de Película y determinamos determinamos el el menor Número Bacon para Número para cada cada película. película. Entonces Entonces la la celda celda C2 C2 obtiene obtiene la fórmula =MIN(SI(A2=Película_Actor!$B$2:$B$12,Película_Actor!$E$2:$E$12,999)) (recuerden usar ctrl+shift+enter). El resultado es (recuerden es mostrado abajo en la la Tabla Tabla 10:
Tabla 10 Tabla 10 - Hoja Hoja de Película Nuevamente asignamos Nuevamente asignamos el Número Número Bacon de la la película película a la la hoja hoja Película_Actor ingresando una fórmula ingresando fórmula en la celda celda F2 y y arrastrandola hacia hacia abajo abajo a F12 usando usando el mango de mango de relleno. En la celda celda F2 la la formula lee: =BUSCARV(B2,Movie!$A$1:$C$5,3,FALSO)+1 y terminamos =BUSCARV(B2,Movie!$A$1:$C$5,3,FALSO)+1 terminamos con los resultados mostrados abajo en la Tabla 11:
Tabla 11 Tabla 11 - Hoja Hoja de Película_Actor Finalmente, vamos Finalmente, vamos a la hoja hoja de Actor y en la celda celda D2 aplicamos aplicamos la fórmula =MIN(C2,MIN(IF(A2=Película_Actor!$A$2:$A$12,Película_Actor!$F$2:$F$12,999))) y la arrastramos hasta D5. D5. Finalmente, Finalmente, hemos encontrado encontrado satisfactoriamente satisfactoriamente todos los
Números Bacon de Números de los los actores actores en en este este ejemplo ejemplo pequeño, pequeño, como como demuestra demuestra la la Tabla 12 debajo: 12
Tabla 12 - Resultado final mostrando los Números Bacon en la Hoja de Actor. Conclusión
Este método método es es muy incómodo. incómodo. La solución no no es es directa, directa, pero pero necesita necesita iteraciones. El El Número Número Bacon Bacon puede puede cambiar en en cada paso paso porque se se encuentran encuentran nuevas conexiones más cortas. cortas. Además, Además, hacemos un un loop loop sobre sobre las las 3 tablas en cada cada paso y conectamos conectamos esos esos con funciones BUSCARV y y “MINSI”. “MINSI”. Finalmente, Finalmente, para para cada Paso Bacon, necesitamos columnas extras para Paso para evaluarlas. evaluarlas. Entonces Entonces la la solución hasta aquí es lejos hasta lejos de la óptima, óptima, ya que tenemos tenemos que saber en anticipación anticipación cuál es el el Número Número Bacon Bacon máximo y y luego luego agregar esa cantidad de columnas columnas para realmente encontrarlo. realmente Otros alcances Otros alcances son son más eficientes, eficientes, por ejemplo ejemplo bases bases de datos como como NEo4j que son realmente son realmente diseñadas para para encontrar relaciones como como estas, estas, o guiones guiones en lenguajes de programación como Python para evaluarlos en forma diferente. (Noten que nuestra solución Python que Python es todavía demasiado demasiado Excel Excel y podría podría ser mucho mucho más eficiente si lo eficiente lo hicieran hicieran completamente completamente fuera fuera de de Excel). Un alcance Excel más eficiente para la solución descripta arriba?
Es posible crear una una solución más eficiente eficiente completamente completamente dentro dentro de de Excel Excel y resolver los los Números Números Bacon Bacon para para los los actores actores en en una tabla simple, simple, llamada Película_Actor, y con Película_Actor, con solo dos dos columnas, columnas, relacionadas entre entre sí. Los Los desafiamos a hacerlo ustedes hacerlo ustedes mismos. mismos. Lo Lo que podrían podrían hacer es es definir dos columnas: Columna Columna C es es el el Número Número Bacon Bacon para para el el actor y y la Columna Columna D es el Número Número Bacon para la película. Luego en película. en la la Columna Columna C ingresamos ingresamos una formula formula que dice dice que si si el el actor en la Columna A A es Kevin Bacon, el Número Bacon debería ser 1 por definición. Si no, entonces debería entonces debería ser el Número Número Bacon más bajo bajo de de las las películas películas (más (más uno) uno) en las que este que este actor haya actuado. En la Columna Columna D ingresamos una una formula que que dice que el que el Número Bacon de la la película película iguala iguala el Número Número Bacon Bacon más bajo bajo de los actores que actores que actuaron en ella, ella, en otras palabras, el valor mínimo mínimo en en la Columna Columna C para las para las filas relacionadas a a esa esa película. película. Si ingresamos estas estas fórmulas, obtendremos un error de referencia circular, ya obtendremos ya que la solución solución de de la Columna Columna C está basada está basada en en la solución de de la la Columna Columna D y la la solución solución de la Columna Columna D está basada en basada en la solución de de la la Columna Columna C. Esto Esto es es solo posible si si permiten permiten que el el MS Excel calcule la Excel la solución solución en una manera manera iterativa. iterativa. Esto se se realiza realiza en Opciones Opciones → Archivo → Fórmulas. Archivo Fórmulas. Permitan Permitan Calculación Calculación Iterativa, Iterativa, como como muestra muestra la Figura 1, debajo. Asegúrense debajo. Asegúrense que solo solo permiten permiten Excel Excel calcular todo cuando decidan a a través de permitir cálculos de cálculos manuales manuales (también (también demostrado demostrado en en la la Figura 1). 1). Ahora Ahora pueden decirle a Excel que corra un cálculo oprimiendo la tecla F9.
Figura 1Figura 1- Permite Permite los los cálculos cálculos iterativos iterativos y asegurense asegurense que que elijan solamente calcular la la hoja hoja de de cálculos cálculos manualmente (oprimiendo (oprimiendo la la tecla F9). No se preocupen preocupen si si no pueden resolver la solución, solución, como como la hemos hemos provisto provisto en en el Alternativa en libro de libro de trabajo trabajo “Número “Número Bacon Bacon - Solución Solución Alternativa en la la Lista extendida.xslx” extendida.xslx” así Asegúrense de haber pueden sumergirse ustedes pueden ustedes mismos en ella. ella. Asegúrense haber cambiado cambiado los ajustes como ajustes como demostrado demostrado en la Figura Figura 1 arriba, ya ya que que estas estas opciones no estan guardadas en guardadas en el libro de de trabajo. trabajo. Tengan Tengan cuidado, cuidado, si si hay actores actores que no no están conectados a través de ningún conectados ningún numero numero de de pasos a Kevin Bacon, Bacon, el Número Número bacon aumentara indefinidamente aumentara indefinidamente por cada iteracion. iteracion. No hemos resuelto este este problema problema en la hoja hoja de de cálculos, cálculos, ya ya que las fórmulas fórmulas se se transformarían ilegibles ilegibles e incomprensibles ¡Si incomprensibles ¡Si están aptos para para un un verdadero verdadero desafío, desafío, intenten intenten resolverlo ustedes mismos! ustedes ¡Buena suerte! ¡Buena
View more...
Comments