Strenge Halbordnung



  • Hallo.

    Ich suche für die Menge
    M={1,...,64}32M = \{1,...,64 \}^{32}

    eine strenge Halbordnung
    <M×M<_* \subset M \times M

    Zur Erinnerung: Eine strenge Halbordnung ist irreflexiv und transitiv:
    xM:¬(x<x)\forall x \in M : \neg (x <_* x)
    \forall a,b,c \in M : a <_* b , b<_\*c \Rightarrow a<_\*c

    Dabei soll folgende Eigenschaft erfüllt sein
    \neg (a<_\*b) , \neg (b<_\*a) \Leftrightarrow a=b

    wobei mit a=b natürlich die komponentenweise Gleichheit der Tupel auf M gemeint ist.
    (btw die Rückrichtung gilt immer, auf die Hinrichtung kommt es an)

    Außerdem sollte es schnell entscheidbar sein, ob das Prädikat gilt oder nicht!

    Nun, erstmal denke ich mir, dass es eine solche Halbordnung geben müsste.
    Betrachtet man eine bijektive Funktion
    f:N32Nf : \mathbb{N}^{32} \rightarrow \mathbb{N}

    und definiert
    a<b:f(a)<f(b)a<_*b :\Leftrightarrow f(a)<f(b)
    a,bMa,b \in M

    durch zurückführen auf die übliche Relation in den nat. Zahlen so sind die Forderungen erfüllt. Auch für die Einschränkung auf M.
    Aber f effektiv zu berechnen ist kaum möglich und die Werte werden für die Standard-Datentypen viel zu groß.

    Ich suche etwas das sich wesentlich schneller auswerten lässt.

    Die übliche komponentenweise echt-kleiner Relation für Tupel/Vektoren führt zwar zu einer strengen Halbordnung und wäre schnell berechenbar, die Zusatzbedingung ist aber nicht mehr erfüllt.

    Jemand eine Idee?

    Übrigens: Eigentlich handelt es sich um die Menge
    M={a{1,...,64}32a_ia_j,ij}M = \{ a \in \{1,...,64 \}^{32} | a\_i \neq a\_j , i \neq j \}
    Es kommen also keine Zahlen doppelt vor in einem Tupel.
    Aber das nur falls es einen Unterschied machen sollte, was ich nicht glaube.

    Gruß, space



  • Hast Du's mal mit ner lexikographischen Ordnung versucht? Gibt zwar ne Totalordnung, aber das sollte ja nicht weiter schaden.

    MfG Jester



  • Super. Das ist es.

    Danke.


Anmelden zum Antworten