Man kennt Zeitstrahlen zum Beispiel aus der Schule, vornehmlich aus den hiesigen Geschichtslehrbüchern. Interessant dabei ist, das die Z. keine Strahlen im euklidischen Sinn sind. Ihre Orientierung verläuft genau umgekehrt. Man könnte also von einem »Antistrahl« sprechen. Folgendes Bild soll der Veranschaulichung dienen:

gewöhnlicher Strahl und Zeitstrahl (von oben nach unten)
Der rote Punkt stellt den Fixpunkt des Strahles dar. Man erkennt also schnell, dass der Zeitstrahl zu seinem eigenen Ursprung zeigt (“Heute”).
Ich möchte nun aber richtig orientierte Zeitstrahlen betrachten, also solche, deren Ursprung auch im Jetzt liegt, die aber gen Zukunft orientiert sind.
Man kann sich das beispielsweise als Visualisierung von Tagesplänen vorstellen (»Jetzt esse ich etwas, danach gehe ich einkaufen und danach wiederum hänge ich die Wäsche auf«). Ich spreche also nicht von irgendeiner Zeithexerei oder anderen abstrusen Dingen. Wer will so etwas denn auch.
Wenn man nun sich solch einen Zeitstrahl anschaut, dann sieht er aus wie eine Perlenkette, auf der Ereignisse aufgefädelt sind. Soweit nichts aufregendes.
Aber es liegt in der Natur eines Ereignisses, dass es einen Ausgang hat. Und – man wird es schon erraten können – der Ausgang steht nicht unbedingt fest. Denn während “Einkaufen gehen” der Nachfolger von “Essen” ist, kann immer noch dazwischen ein Ereignis eintreten, welches möglicherweise alle anderen danach beeinflusst. Ereignisse sind also unendlich dicht angeordnet und weil sie nicht zwangsläufig voneinander unabhängig sind, kann man Konditionen einführen.
Das “Essen”-Ereignis kann beispielsweise mehrere Ausgänge haben. Entweder bin ich danach satt, oder nicht, oder noch schlimmer: mir ist sogar schlecht.
Das sind zugegebenerweise keine revolutionären Entdeckungen. Viel mehr kennt man so etwas aus der imperativen Programmierung. Demnach haben (gerichtete) Graphen auch etwas damit zu tun.
Es ist also nur logisch, dass man dann die Zukunft (in der Weise, wie wir sie betrachten), nicht nur als Graph, sondern sogar als Baum darstellen kann.
Aber wie viele mögliche Nachfolger hat dann ein Ereignis? Ist der Baum binär?
Nun, das war die eigentliche Frage die mir in den Kopf kam. Und wieder ist die Antwort eigentlich ziemlich einfach. Sie folgt direkt aus gewöhnlichen Programmierkonstrukten, nämlich aus bedingten Anweisungen (if-then-else) und Fallunterscheidungen (switch oder case, je nach Programmiersprache).
Man lernt relativ früh, dass sich jede Fallunterscheidung als eine Folge verschachtelter Konditionalanweisungen darstellen lässt. Genau das gleiche Prinzip wenden wir nun also auf Ereignisse an. Wie bereits erwähnt, sind Ereignisse unendlich dicht (in der Mathematik sagt man nur dicht…). Also können wir zwischen zwei Ereignisse ein Weiteres setzen, welches einen möglichen Ausgang des letzten Ereignisses in unserer Reihe abfängt (ich gebe zu, das ist nun schlecht beschrieben, aber mir fehlt gerade die Motivation eine Skizze zu machen).
Analog geht das auch anders herum:
Ich kann mehrere Ereignisse zusammenfassen (wenn man sich einen Tagesplan schreibt, notiert man ja auch nicht ein ganzes Rezept, sondern nur dass man kochen will). Und weil unsere kleine Situation immer noch Teil eines Baumes ist, vervielfachen sich die Ausgänge des nun zusammengefassten Ereignisses kombinatorisch.
Je nachdem, wie ich es gerne hätte, ist der Zeitbaum also binär oder auch nicht. Praktisch :)
Wenn ich einmal Muße habe, mache ich das noch anschaulicher, versprochen!