Hier werden Algorithmen für
          Hybride Netze vorgestellt. Hybride Netze haben nicht nur
          Knoten mit einem diskreten Zustandsraum (z.B. "ja", "nein"
          oder "stark", "mittel", "schwach") sondern können auch
          kontinuierliche Knoten haben deren Wert durch eine reelle Zahl
          (z.B. 2.4[m]) dargestellt wird. Der Fall, dass
          ausschließlich kontinuierliche Knoten in einem Netz
          vorkommen, wird hier als Sonderfall der Hybriden Netze
          verstanden und nicht gesondert behandelt.
          
          Dies ist die Fortsetzung zu den 
hier dargestelleten
          Beispielen (bitte ggf. zunächst dort nachlesen, wie die
          Netze zu bedienen sind). Für die kontinuierlichen Knoten
          gilt abweichend, dass Evidenz durch einen einfachen Klick in
          den Bereich zwischen Min- und Max-Wert gesetzt wird und
          mittels eines Klicks in den Bereich außerhalb (also
          knapp oberhalb des Min- bzw. knapp unterhalb des Max-Wertes)
          wieder zurückgesetzt wird. Da ich keine komplett neue
          Bedienlogik für die kontinuierlichen Knoten erfinden
          wollte, können kontinuierliche Elternknoten nur in der
          Reihenfolge wieder entfernt werden, wie sie einem Kind-Knoten
          hinzugefügt wurden (das entspricht dem Verhalten beim
          Hinzufügen/Löschen von Zuständen bei diskreten
          Knoten). Wichtig ist noch, dass diskrete Knoten nur diskrete
          Elternknoten haben dürfen. 
 
        
          
        
        
          
          Das Schöne an den Sampling-Verfahren ist, dass sie
            auch mit kontinuierlichen Knoten funktionieren - und das
            auch mit beliebigen Verteilungen, solange es nur
            möglich ist aus diesen Verteilungen Samples zu ziehen
            (deshalb fange ich hier auch ausnahmsweise mal mit dem
            Sampling an). Wesentliche Abweichungen zum normalen Sampling
            sind nur diese: 
          
            - Zur Gewichtung (nur LW-Sampling) wird bei beobachteten
              kontinuierlichen Knoten statt der Wahrscheinlichkeit,
              der Funktionswert der Dichtefunktion an der betreffenden
              Stelle benutzt (die Wahrscheinlichkeit für einen
              konkreten Wert (z.B. x=7.34) liegt ja bekanntlich bei 0,
              weil das Integral von x bis x immer gleich 0 ist). Damit
              verliert aber auch der angezeigte Wert für P(e|M)
              seine Bedeutung als echte Wahrscheinlichkeit (bzw.
              Likelihood).
 
            - Möglich wäre theoretisch auch Soft-Evidenz,
              z.B. in der Form, dass man angibt "möglich sind Werte
              im Intervall [von...bis]". Dies würde einer
              Multiplikation mehrerer Dichtefunktionen entsprechen (der
              aus dem Netz und der, die die unsichere Beobachtung
              repräsentiert). Dieses Feature ist hier aber nicht
              implementiert, so dass nur konkrete Werte als
              Beobachtungswert (z.B. x=2.7) möglich sind.
 
            - Hier werden jeweils die kompletten Dichtefunktionen
              für eine gegebene Elternkonfiguration im Knoten
              abgelegt und gewichtet. Ansonsten könnte man nur ein
              Histogramm anzeigen, was ich aber aus
              Kompatibilitätsgründen zum nachfolgend
              vorgestellten Junction-Tree-Verfahren vermeiden wollte.
              Andererseits könnte man diesen Ansatz auch für
              die diskreten Knoten verwenden, was aber das
              "händische" Nachrechnen, zumindest für die
              diskreten Knoten, nahezu unmöglich machen würde,
              weshalb ich diese Idee verworfen habe.
 
          
          Anmerkung: Das Beispielnetz wurde aus anderen
          Beispielen übernommen, wobei einfach drei diskrete durch
          entsprechende kontinuierliche Knoten ersetzt wurden. Die Werte
          machen so noch überhauptgarkeinen Sinn - da muss ich mir
          bei Gelegenheit mal was Sinnigeres ausdenken... 
 
        
          
        
        
          
            BEISPIEL-NETZ
            JUNCTION-TREE
           
          Es gibt auch Junction-Tree-Verfahren für rein
            kontinuierliche bzw. hybride Netze (bzw.
            Junction-Tree-ähnliche Verfahren). Diese sind aber
            wesentlich komplizierter als das Sampling, oder die normalen
            Junction-Trees (die ja schon nicht ganz ohne sind). Hier
            wird das Verfahren von Cowell benutzt, welches hier näher vorgestellt
            wird. Wesentliche Einschränkungen des Algorithmus'
            sind:
          
            - Geht so nur für Conditional Gaussians (CG) - damit
              sind nicht-lineare Zusammenhänge nur über
              Umwege abbildbar (andere Verteilungen würden nur dann
              funktionieren, wenn man für diese auch eine
              "Exchange-Operation" finden würde).
 
            - Das Ergebnis ist eine sogenannte "Mixture of Gaussians",
              also mehrere gewichtet überlagerte Gaussverteilungen.
              Dies gilt aber nur solange diskrete Knoten mit im Spiel
              sind - für rein kontinuierliche Netze kommt jeweils
              für jeden Knoten genau eine Gauss-Verteilung heraus.
 
            - Soft-Evidenz für kontinuierliche Knoten, z.B. in
              der Form, dass man angibt "möglich sind Werte im
              Intervall [von...bis]" ist nicht möglich.
 
            - Max-Propagation funktioniert nicht.
 
            - Die gemeinsamen Wahrscheinlichkeitsverteilungen für
              Knoten und ihre Eltern (P(N,pa(N)) sind nur für die
              diskreten Knoten verfügbar.
 
            - Da bei der Junction-Tree-Erstellung die kontinuierlichen
              Knoten vor allen diskreten Knoten eliminiert werden
              müssen, ergeben sich für bestimmte (und nicht
              nur ungewöhnliche) Netzstrukturen schnell
              Komplexitätsprobleme.
 
            - Auch hier wird der Funktionswert der Dichtefunktion an
              der betreffenden Stelle als Gewicht benutzt. Damit
              verliert der angezeigte Wert für P(e|M) hier
              ebenfalls seine Bedeutung als echte Wahrscheinlichkeit
              (bzw. Likelihood).
 
          
          Damit man noch etwas tiefer in den Algorithmus
            hineinschauen kann hier einige Spezialmethoden (beim Setzen
            von Evidenz durch Anklicken eines States wird sonst ja immer
            gleich eine vollständige Propagation angestoßen):
          
            - Klicke hier
              um nur die Initialisierungsphase durchzuführen,
              Postbags sind danach noch nicht geleert, Evidenz noch
              nicht gesetzt.
 
            - Klicke hier
              um zusätzlich noch die Collect-Postbags-Phase
              durchzuführen jedoch noch ohne Evidenz zu setzen.
 
            - Klicke hier
              um zusätzlich auch die aktuelle Evidenz
              einzubeziehen.
 
            - Klicke hier
              um eine vollständige Propagation mit Update der
              A-Posteriori-Wahrscheinlichkeiten der Knoten
              durchzuführen.
 
          
          Anmerkung: In dem vorgegebenen Netz gibt es derzeit
          keine Postbags, so dass nicht alle Phasen voll
          "ausgeschöpft" werden (Collect-Postbags bewirkt keine
          Änderung).