19.9: Вправи шавлії
- Page ID
- 64361
Використовуйте R = posets.randomPoset (30,0.05)
, щоб побудувати випадкову позицію. Використовуйте r.plot ()
, щоб отримати уявлення про те, що ви побудували.
- Проілюструйте використання методів poset:
.is_lequal ()
,.is_less_than ()
,.is_gequal ()
і.is_greater_than ()
, щоб визначити, чи два конкретні елементи (на ваш вибір) пов'язані або незрівнянні. - Використовуйте
.minimal_elements ()
і.maximal_elements ()
, щоб знайти найменші та найбільші елементи вашої публікації. - Використовуйте
LatticePoset (R)
, щоб побачити, чи є posetR
решіткою, намагаючись перетворити її в решітку. - Знайдіть лінійне розширення вашої посади. Переконайтеся, що будь-яка пара елементів, які можна порівняти в позеті, буде аналогічно порівнянна в лінійному розширенні.
Побудувати позицію на додатних дільниках\(72=2^3\cdot 3^2\) з подільністю як відношення, а потім перетворити на решітку.
- Визначте один і нульовий елемент за допомогою
.top ()
і.bottom ()
. - Визначте всі пари елементів решітки, які є
доповненнями один одного, не використовуючи метод.complement ()
, а просто використовуйтеметоди.meet ()
і.join ()
. Додатковий кредит, якщо ви можете вивести кожну пару лише один раз. - Визначте, чи є решітка розподільною, використовуючи лише
методи.meet ()
та.join ()
, а неметод.is_distributive ()
.
Побудувати кілька специфічних алмазних решіток з posets.DiamondPoset (n)
, змінюючи значення n
. Як тільки ви відчуєте, що маєте достатньо емпіричних доказів, дайте відповіді, з обґрунтуванням, на наступні питання для загальних значень,\(n\text{,}\) заснованих на спостереженнях, отриманих в результаті ваших експериментів з Sage.
- Які елементи мають доповнення, а які ні, і чому?
- Прочитайте документацію
методу.antichains ()
, щоб дізнатися, що таке антиланцюг. Скільки існує антиланцюгів? - Чи є решітка розподільна?
Використовуйте posets.BooleanLattice (4)
для побудови екземпляра прототипної булевої алгебри на\(16\) елементах (тобто всіх підмножин\(4\) -set).
Потім використовуйте posets.IntegerCompositions (5)
для побудови позета,\(16\) елементами якої є композиції цілого числа\(5\text{.}\) Ми бачили вище, що решітка целочисленного складу є розподільною та доповненою, що робить її булевою алгеброю. І за теоремою\(19.23\) можна зробити висновок, що ці дві булеві алгебри ізоморфні.
Скористайтеся методом.plot ()
, щоб візуально побачити подібність. Потім використовуйте метод .hasse_diagram ()
на кожній позі, щоб отримати орієнтований граф (який ви також можете побудувати, хоча вбудовування в площину може бути не настільки інформативним). Використовуйте метод графа .is_isomorphic ()
, щоб побачити, що дві діаграми Хассе насправді є «однаковими».
(Додатково) Для попереднього питання побудуйте явний ізоморфізм між двома булевими алгебрами. Це буде двооб'єктивна функція (побудована за допомогою команди def
), яка перетворює композиції на множини (або, якщо ви виберете, набори в композиції) і яка поважає операції meet and join. Ви можете перевірити та проілюструвати свою функцію шляхом її взаємодії з конкретними елементами, оціненими в операціях meet та join, як описано у визначенні ізоморфізму булевих алгебр.