Saltar a contenido principal

Sección 19.8 Ejercicios en Sage

1.

Use R = Posets.RandomPoset(30,0.05) para construir on conjunto parcialmente ordenado (poset) aleatorio. Use R.plot() para tener una idea de lo que ubtuvo.

  1. Ilustre el uso de los siguientes métodos de poset: .is_lequal(), .is_less_than(), .is_gequal(), and .is_greater_than() para determinar si dos elementos específicos (de su elección) están relacionados o son incomparables.

  2. Use .minimal_elements() y .maximal_elements() para encontrar tanto el menor como el mayor elemento de su conjunto parcialmente ordenado.

  3. Use LatticePoset(R) para ver si el conjunto parcialmente ordenado R es un reticulado intentando convertirlo en un reticulado.

  4. Encuentre una extensión lineal de su conjunto parcialmente ordenado. Confirme que cualquier par de elementos comparables en el conjunto parcialmente ordenado original siguen siendo comparables de la misma forma en la extensión lineal.

2.

Construya el conjunto parcialmente ordenado de los divisores enteros de \(72=2^3\cdot 3^2\) con la relación de divisibilidad, y conviértalo en un reticulado.

  1. Determine el elemento cero y el elemento uno usando .top() y .bottom().

  2. Determine todos los pares de elementos del reticulado que son complementarios sin usar el método .complement(), sino solamente los métodos .meet() y .join(). Mejor si cada par aparece solo una vez.

  3. Determine si el reticulado es distributivo usando solo los métodos .meet() and .join(), y no el método .is_distributive().

3.

Construya varios reticulados diamante con Posets.DiamondPoset(n) haciendo variar el valor de n. Una vez que le parezca tener suficiente evidencia empírica, responda, con justificaciones, las siguientes preguntas para valores arbitrarios de \(n\text{,}\) basado en observaciones obtenidas de sus experimentos con Sage.

  1. ¿Cuáles son los elementos que tienen complemento y cuáles no lo tienen? ¿Por qué?

  2. Lea la documentación del método .antichains() para aaprender lo que es una anticadena. ¿Cuántas anticadenas hay?

  3. ¿Es distributivo el reticulado?

4.

Use Posets.BooleanLattice(4) para construir una instancia del álgebra Booleana prototípica en \(16\) elementos (i.e., todos los subconjuntos de un conjunto de \(4\) elementos).

Luego use Posets.IntegerCompositions(5) para construir el conjunto parcialmente ordenado cuyos \(16\) elementos son las composiciones del entero \(5\text{.}\) Vimos arriba que el reticulado de composición de entero es distributivo y complementado, por lo que forma un álgbera Booleana. Por el Teorema 19.2.9 podemos concluir que esta dos álgebras Booleanas son isomorfas.

Use el método .plot() para visualizar la similaridad. Luego use el método .hasse_diagram() en cada reticulado para obtener un grafo dirigido (que también puede dibujar, aunque la incrustación en el plano puede que no sea tan informativa). Emplee el método .is_isomorphic() del grafo para verificar que estos dos diagramas de Hasse son realmente “iguales.”

5.

(Avanzado) Para la pregunta anterior, construya un isomorfismo explícito entre las dos álgebras Booleanas. Esto es una biyección (construída con el comando def) que convierta composiciones en conjuntos (o si lo prefiere, conjuntos en composiciones) y que respete las operaciones de ínfimo y supremo (meet y join). Puede poner a prueba e ilustrar su función por su interacción con elementos específicos evaluados en las operaciones de ínfimo y supremo, como está descrito en la definición de isomorfismo de álgebras Boleanas.