Saya perlu menyimpan set elemen tipe a. Ketik sebagian memerintahkan, sehingga membandingkan dan sebuah 2 dapat kembali lebih kecil, lebih besar, sama atau tak tertandingi.
Satu masalah dengan hashtable adalah bahwa dua elemen yang sama dapat direpresentasikan secara berbeda, dan saya tidak memiliki akses ke fungsi hashing yang konsisten dengan kesetaraan.
Membandingkan dua elemen bisa menjadi proses yang panjang sehingga akan menarik untuk meminimalkan perbandingan. Jika perlu, dimungkinkan untuk memoize panggilan ke operator perbandingan. Saya menyadari sekarang bahwa saya hanya perlu menyimpan antik (atau anggap saja begitu). Lebih tepatnya, operasi yang perlu saya lakukan adalah sebagai berikut:
- Hapus elemen dari antichain;
- Coba tambahkan elemen. Jika elemen lebih kecil dari anggota, jangan tambahkan, jika tidak, tambahkan dan hapus setiap elemen lebih kecil dari itu.
Saya juga dapat terikat setiap elemen oleh dua bilangan bulat, sehingga jika saya tahu bahwa dan i 3 < b < i 4 , kemudian mengetahui i 2 < i 3 langsung memberi saya sebuah < b . Tentu saja, i 2 ≮ i 3 tidak berarti a ≮ b ... Menemukan batas bilangan bulat adalah operasi yang relatif murah dibandingkan dengan perbandingan elemen yang ditiup penuh.
Jawaban:
Makalah "Penyortiran dan Seleksi dalam PoSets" oleh Daskalakis, Karp, Mossel, Risensefield, Verbin, 2008 yang menggambarkan representasi dinamis dari PoSets berdasarkan antichains.
Anda mungkin juga tertarik dengan makalah "Succinct Posets" oleh Munro, Nicholson, 2012 yang baru-baru ini dirilis di Arxiv dan dalam daftar pustaka di dalamnya. Struktur data mereka statis tetapi saya berasumsi bahwa langkah selanjutnya adalah memiliki struktur data dinamis.
sumber
Pernahkah Anda melihat Heeringa et al "Mencari dalam Perintah Partial Dynamic Seperti Pohon" ? Mereka memberikan struktur data dinamis untuk masalah pendahulu pada poset. Ini dirancang untuk RAM, tetapi Anda dapat mewakili array sebagai pohon biner seimbang dan hanya menimbulkan overhead multiplikasi sambil membuat struktur berfungsi murni.O(lgn)
sumber
e
membentuk rantai.