Eu preciso armazenar conjuntos de elementos do tipo a. O tipo a é parcialmente ordenado, portanto, a comparação de e pode retornar menor, maior, igual ou incomparável.
Um problema com as hashtables é que dois elementos iguais podem ser representados de maneira diferente, e eu não tenho acesso a uma função de hash consistente com a igualdade.
A comparação de dois elementos pode ser um processo demorado, pelo que seria interessante minimizar as comparações. Se necessário, é possível memorizar as chamadas para o operador de comparação. Agora percebo que só precisarei armazenar antichains (ou vamos supor). Mais precisamente, as operações que precisarei executar são as seguintes:
- Remova um elemento do antichain;
- Tente adicionar um elemento. Se o elemento for menor que um membro, não o adicione, caso contrário, adicione-o e remova todos os elementos menores que ele.
Também posso vincular cada elemento por dois números inteiros, de modo que, se eu souber que e , conhecer instantaneamente me dará . Obviamente, não significa ... Encontrar limites inteiros é uma operação relativamente barata em comparação com uma comparação completa de elementos.