Яка стійка структура даних для набору частково впорядкованих елементів?


15

Мені потрібно зберігати набори елементів типу a. Введіть a частково впорядковано, тому порівняння та може повернути менші, більші, рівні або незрівнянні.a1a2

Одна проблема хештелів полягає в тому, що два рівні елементи можуть бути представлені по-різному, і я не маю доступу до функції хешування, що відповідає рівності.

Порівняння двох елементів може бути тривалим процесом, тому було б цікаво порівняти порівняння. При необхідності можна запам'ятати дзвінки оператору порівняння. Зараз я усвідомлюю, що мені потрібно буде лише зберігати античайки (або припустимо так). Точніше, такі операції, які мені потрібно буде виконати:

  • Вийміть елемент з антисечі;
  • Спробуйте додати елемент. Якщо елемент менший за член, не додайте його, інакше додайте його та видаліть кожен елемент, менший за нього.

i1<a<i2i3<b<i4i2<i3a<bi2i3ab


1
Я думаю, що нам потрібно знати більше, щоб свідомо відповісти на ваше запитання. Ви зберігаєте елементи, і частковий порядок легко обчислюється? Або ви також зберігаєте часткове замовлення в якійсь таблиці пошуку? Як ви маєте намір використовувати часткове замовлення? Ви сподіваєтесь використовувати його так, як лінійний порядок використовується для зберігання наборів (наприклад, у деревах пошуку)?
Андрій Бауер

Тепер, коли я зрозумів, що у мене будуть лише протигрибки, я не впевнений, що є щось краще, ніж наївне рішення збереження результатів у списку. Якщо так, вибачте за неприємності!
Абдалла

Якщо ви вважаєте, що ваше питання зараз суперечить, можливо, ви повинні позначити його для видалення / закриття?
Суреш Венкат

1
Будь-які два елементи в наборі будуть незрівнянними, але це не означає, що наївне представлення - це найкраще, що ви можете зробити. Наприклад, розглянемо кінцеві мультисети, упорядковані включенням (= цілі числа, упорядковані з роздільністю): існує великий потенціал для оптимізації, залежно від подання ваших даних (використання кардинальності, використання набору підтримки,…). Ці оптимізації будуть сильно залежати від характеру відношення замовлення. Тоді є окреме питання вирішення питання про те, чи варто зберігати інформацію про вже видалені елементи: чи збираєтеся ви часто порівнювати їх з новими доповненнями?
Жил 'SO- перестань бути злим'

Добре, дякую. Тому я додав деяку інформацію (ціле обмеження можливості), яка може призвести до оптимізації.
Абдалла

Відповіді:


8

У статті "Сортування та вибір у PoSets" Даскалакіса, Карпа, Мосселя, Різенсфілда, Вербіна, 2008 р., В якій описано динамічне представлення PoSets на основі античейн.

Можливо, вам буде цікавий і стаття "Сукцидні поети" Манро, Нікольсон, 2012, нещодавно випущена в Арксіві, та бібліографія в ній. Їх структура даних є статичною, але я припускаю, що наступним кроком є ​​створення динамічної структури даних.


О(1)О(1)О(qн)

Маючи карти, представлені як (мінімальне) розкладання ланцюгів - це добре розуміння. Однак, хибність у тому, що інваріант через делетів є складним.
Себастьян Граф

4

О(lgн)


1
Зауважте, що це стосується лише «деревних» часткових порядків, наприклад, напіврешіток, де всі елементи менші або рівні з деяким елементом eутворюють ланцюг.
Себастьян Граф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.