18. Resolución de problemas mediante diagramas de Venn

Los diagramas de Venn ayudan a organizar datos de conjuntos superpuestos. Al separar las regiones correctamente, podemos resolver problemas de conteo, pertenencia y condiciones combinadas.

18.1 Introducción

Los diagramas de Venn son especialmente útiles cuando un problema menciona grupos que pueden superponerse. En esos casos, contar directamente puede llevar a errores porque algunos elementos pertenecen a más de un conjunto.

La clave es dividir el universo en regiones: solo A, solo B, ambos, ninguno y, cuando hay tres conjuntos, las regiones correspondientes a cada combinación posible.

18.2 Estrategia general

Para resolver problemas con diagramas de Venn, conviene seguir un procedimiento ordenado.

  1. Identificar el conjunto universal.
  2. Nombrar los conjuntos involucrados.
  3. Ubicar primero las intersecciones.
  4. Calcular las regiones exclusivas.
  5. Completar la región exterior si corresponde.
  6. Verificar que la suma de todas las regiones coincida con el total.

18.3 Por qué empezar por la intersección

Cuando un dato dice que una cantidad pertenece a dos conjuntos, esa cantidad debe ubicarse en la región común. Si no empezamos por la intersección, podemos contar esos elementos dos veces.

A = estudiantes que usan JavaScript B = estudiantes que usan SQL A ∩ B = estudiantes que usan ambos

La región común se resta luego de los totales de A y B para obtener las regiones exclusivas.

18.4 Problema con dos conjuntos

En un curso hay 40 estudiantes. 25 usan JavaScript, 18 usan SQL y 10 usan ambos lenguajes. ¿Cuántos usan solo JavaScript, cuántos solo SQL y cuántos no usan ninguno de los dos?

|U| = 40 |A| = 25 |B| = 18 |A ∩ B| = 10

18.5 Resolución paso a paso

Primero ubicamos la intersección: 10 estudiantes usan ambos lenguajes.

Solo A = |A| - |A ∩ B| = 25 - 10 = 15 Solo B = |B| - |A ∩ B| = 18 - 10 = 8

Luego calculamos cuántos usan al menos uno:

|A ∪ B| = 15 + 10 + 8 = 33

Finalmente, los que no usan ninguno son:

Fuera de A y B = 40 - 33 = 7

18.6 Fórmula de inclusión-exclusión para dos conjuntos

La fórmula de inclusión-exclusión evita contar dos veces la intersección.

|A ∪ B| = |A| + |B| - |A ∩ B|

En el ejemplo anterior:

|A ∪ B| = 25 + 18 - 10 = 33

18.7 Tabla de regiones para dos conjuntos

Región Cálculo Resultado
Solo JavaScript 25 - 10 15
Solo SQL 18 - 10 8
Ambos Dato directo 10
Ninguno 40 - 33 7

18.8 Problema con tres conjuntos

En un grupo de 60 personas, 30 conocen JavaScript, 28 conocen SQL y 20 conocen HTML. Además, 12 conocen JavaScript y SQL, 10 conocen JavaScript y HTML, 8 conocen SQL y HTML, y 5 conocen los tres. ¿Cuántas personas conocen al menos una tecnología?

|A| = 30 |B| = 28 |C| = 20 |A ∩ B| = 12 |A ∩ C| = 10 |B ∩ C| = 8 |A ∩ B ∩ C| = 5

18.9 Inclusión-exclusión para tres conjuntos

Para tres conjuntos, sumamos los tamaños individuales, restamos las intersecciones de a dos y volvemos a sumar la intersección triple.

|A ∪ B ∪ C| = |A| + |B| + |C| - |A ∩ B| - |A ∩ C| - |B ∩ C| + |A ∩ B ∩ C|

Aplicando los datos:

|A ∪ B ∪ C| = 30 + 28 + 20 - 12 - 10 - 8 + 5 = 45

Por lo tanto, 45 personas conocen al menos una tecnología.

18.10 Calcular regiones exclusivas en tres conjuntos

Cuando las intersecciones de a dos incluyen también a quienes pertenecen a los tres conjuntos, primero se calcula la región triple y luego se resta de cada intersección doble.

Solo A ∩ B = 12 - 5 = 7 Solo A ∩ C = 10 - 5 = 5 Solo B ∩ C = 8 - 5 = 3

Luego se pueden calcular las regiones que pertenecen solo a un conjunto.

18.11 Tabla de regiones para tres conjuntos

Región Cálculo Resultado
Solo A ∩ B 12 - 5 7
Solo A ∩ C 10 - 5 5
Solo B ∩ C 8 - 5 3
Solo A 30 - 7 - 5 - 5 13
Solo B 28 - 7 - 3 - 5 13
Solo C 20 - 5 - 3 - 5 7
A ∩ B ∩ C Dato directo 5

La suma de las regiones internas es 45, coincidiendo con la fórmula de inclusión-exclusión.

18.12 Verificación con JavaScript

Podemos calcular la unión de varios conjuntos y obtener su cardinalidad con Set.

function union(...conjuntos) {
  return new Set(conjuntos.flatMap(conjunto => [...conjunto]));
}

const javascript = new Set(["Ana", "Luis", "Carla"]);
const sql = new Set(["Luis", "Diego", "Carla"]);
const html = new Set(["Carla", "María"]);

const alMenosUna = union(javascript, sql, html);

console.log([...alMenosUna]);
console.log(alMenosUna.size);

El conjunto resultante contiene cada persona una sola vez, aunque aparezca en más de un grupo.

18.13 Calcular regiones con JavaScript

También podemos separar regiones como "solo A" o "A y B".

function union(...conjuntos) {
  return new Set(conjuntos.flatMap(conjunto => [...conjunto]));
}

function interseccion(a, b) {
  return new Set([...a].filter(elemento => b.has(elemento)));
}

function diferencia(a, b) {
  return new Set([...a].filter(elemento => !b.has(elemento)));
}

const javascript = new Set(["Ana", "Luis", "Carla"]);
const sql = new Set(["Luis", "Diego", "Carla"]);
const html = new Set(["Carla", "María"]);

const soloJavaScript = diferencia(javascript, union(sql, html));
const javascriptYSql = interseccion(javascript, sql);

console.log([...soloJavaScript]);
console.log([...javascriptYSql]);

Estas funciones permiten traducir regiones del diagrama a operaciones entre conjuntos.

18.14 Aplicaciones prácticas

Área Uso del diagrama Ejemplo
Encuestas Analizar preferencias superpuestas Personas que usan varias tecnologías
Marketing Comparar segmentos de clientes Clientes con compra, suscripción y cupón
Bases de datos Entender condiciones combinadas Registros que cumplen uno o varios filtros
Permisos Visualizar roles y accesos Usuarios con permisos compartidos o exclusivos

18.15 Errores frecuentes

  • Contar dos veces los elementos de una intersección.
  • Restar la intersección antes de ubicarla correctamente.
  • Olvidar la región de elementos que no pertenecen a ningún conjunto.
  • Confundir "al menos uno" con "exactamente uno".
  • En problemas de tres conjuntos, olvidar sumar nuevamente la intersección triple.

18.16 Qué debes recordar de este tema

  • Los diagramas de Venn organizan problemas con conjuntos superpuestos.
  • Conviene empezar por las intersecciones.
  • La fórmula para dos conjuntos es |A ∪ B| = |A| + |B| - |A ∩ B|.
  • Para tres conjuntos, se resta cada intersección doble y se suma la intersección triple.
  • La suma de todas las regiones debe coincidir con el total del universo.
  • En JavaScript, Set permite modelar regiones mediante unión, intersección y diferencia.

18.17 Conclusión

Resolver problemas con diagramas de Venn consiste en separar correctamente las regiones y evitar conteos duplicados. Esta técnica combina razonamiento visual con operaciones formales de conjuntos.

En el próximo tema estudiaremos el producto cartesiano.