Thread Modul für Semiringe gesucht (21 answers)
Opened by pktm at 2008-10-12 22:14

LanX-
 2008-10-13 16:12
#115461 #115461
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
das es auf einen Schein ohne Schweiss hinausläuft war ja klar...

und was deinen Dozenten anbelangt, wie er die Reellen Zahlen zufriedenstellend "implementiert" dürfte für so manchen Mathematiker sehr interessant sein. (Ich warte noch darauf dass ein Informatiker beikommt und mir erzählt er hätte die größtmögliche Primzahl implementiert und sie heißt 42.)

Um das ganze sachlich abzuhandeln, Perl bietet dir wie gesagt alles um es einfach "so weit wie möglich" zu implementieren, man nennt es Scalare und Overloading! Weiter wird dir das kaum ein Modul vereinfachen

du hast immer 2 Grundoperationen, sowie ein 0 und ein 1 Element von denen sich alle anderen Operationen ableiten sowie eine Grundmenge. JEDES Modul wird dir abverlangen diese zu definieren und dir denken abverlangen.

Beispiel für die 2-Elementige Boolesche Algebra

Man belegt den Scalar 0 mit dem 0 Element und den Scalar 1 mit dem 1 Element des Halbrings und bildet alle anderen Grundelemente irgendwie auf Scalare ab

Man überlade + und *
OR auf +
AND auf *

Alle anderen Operationen ergeben sich aus Anwendung dieser Grundoperationen.

Zusätzlich kannste noch Konstanten definieren wie NULL, EINS und wie bei tropischen Halbring INF.

Solange deine Grundoperationen Elemente der Grundmenge wieder auf Elemente der Grundmenge abbilden und bei unzulässigen Scalaren eine Fehlermeldung schmeißen , bist du auf der sicheren Seite.

Dann kannste z.B. auch sowas schreiben

Code (perl): (dl )
1
2
use Semiring::Blafasel;
$scalar += EINS * $scalar;


und bei bedarf einfach ne andere Semigruppe usen!


schau dir an wie CPAN:Math::Complex es gelöst hat!

View full thread Modul für Semiringe gesucht