Class Relation
In: Warshall.rb
Parent: Object

Klasse Relation dient zur Modellierung von Relationen, hierbei wird die Basismenge im Attribut @basis als Menge gehalten. Zur Basis gibt es eine Vorgänger- und eine Nachfolgeradjazenzliste (@vor und @nach). Diese sind als Ruby-Hashs von Mengen abgelegt, der Schlüssel ist jeweils das Element aus der Basis.

Methods

==   addPaar!   basis   basis!   copy   each   enthaeltPaar?   komp   laden   nach   nach!   nachfolger   new   reflexiv   speichern   to_s   transitiv   vereinigt   vor   vor!   vorgaenger  

Public Class methods

Konstruktor der Klasse Relation erhält ein Array von Paaren (ein Paar ist ein Array mit zwei Elementen). Für @vor und @nach werden neue Hashs angelegt. Die Basis wird anhand des übergegebenen Parameters (rel) berechnet. Die Vorgänger und Nachfolger werden nun anhand der Basis und rel berechnet.

Public Instance methods

Prüft Gleichheit zweier Relationen, dabei wird überprüft ob die Relation (Parameter) nil ist.

Fügt ein Tupel (x,y) zur Relation hinzu. Hierbei wird die Relation verändert.

Getter für die Basismenge.

Setter für die Basismenge.

Liefert eine wahre Kopie der Relation und ihrer Attribute.

Iterator über die Elemente der Basismenge der Relation.

Prüft ob die Relation das Tupel (x,y) enthält.

Komposition zweier Relationen, dabei werden die Basen zusammengefasst und danach über die entstandene Basis iteriert. Dabei werden die Vorgänger und Nachfolger aus beiden Relationen neu berechnet.

Lädt das Objekt Relation von der Harddisk mit Dateiname als Parameter mittels Marshall

Getter für die Nachfolgeradjazenzliste.

Setter für die Nachfolgeradjazenzliste.

Liefert die Menge der Nachfolger für das Element x aus der Basismenge.

Berechnet die reflexive Hülle der Relation.

Speichert das Objekt Relation auf der Harddisk mit Dateiname als Parameter mittels Marshall

Konvertiert die Relation in einen String.

Bsp.: [[1,2],[2,3],[3,4],[2,5]]

"Basismenge:

   { 1,2,3,4,5 }

Adjazenzliste (Vorgaenger):

  5{ 2 }1{  }2{ 1 }3{ 2 }4{ 3 }

Adjazenzliste (Nachfolger):

  5{  }1{ 2 }2{ 3,5 }3{ 4 }4{  }"

Berechnet die transitive Hülle der Relation mittels Warshall-Algorithmus.

Vereinigung zweier Relationen, dabei werden die Basen zusammengefasst und danach über die entstandene Basis iteriert. Dabei werden die Vorgänger und Nachfolger aus beiden Relationen neu berechnet.

Getter für die Vorgängeradjazenzliste.

Setter für die Vorgängeradjazenzliste.

Liefert die Menge der Vorgänger für das Element x aus der Basismenge.

[Validate]