Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Evolution in verteilten Systemen Der Evolutionäre Trader

Ähnliche Präsentationen


Präsentation zum Thema: "Evolution in verteilten Systemen Der Evolutionäre Trader"—  Präsentation transkript:

1 Evolution in verteilten Systemen Der Evolutionäre Trader
Markus Völter, MATHEMA AG

2 Überblick Evolution in der Biologie, Prinzipien
Beispiel: Biston Betularia Softwaresysteme und Evolution Abgrenzung zu genetischen Algorithmen Service Evolution Der evolutionäre Trader Anwendungsbeispiele Erweiterungsmöglichkeiten

3 Evolution in der Biologie
mit Unterstützung von Jens Tränkle

4 Evolution in der Biologie
Evolution ist der Motor der Entwicklung Sämtliche biologische Entwicklung beruht auf Evolution Offensichtlich funktioniert das! Prinzipien Mutation Fitness Selektion (Separation, gen. Isolation) Randbedingungen Population (Genpool) Umwelt

5 Prinzipien: Mutation Ein Lebewesen ändert sich „zufällig“ in seiner Genstruktur Es ist unklar, ob diese Änderung ...sich durchsetzt ...von Vorteil ist, oder von Nachteil ...oder überhaupt keinen Einfluss hat Hängt ab von Fitness/Umwelt

6 Randbedingung: Umwelt
Eine Spezies befindet sich in einer bestimmten Umwelt Diese Umwelt ändert sich möglicherweise im Laufe der Zeit Umwelt erzeugt den Selektionsdruck

7 Prinzipien: Fitness Fitness definiert die Eignung eines Lebewesens, mit der gegebenen Umwelt zurecht zu kommen. Sie kann explizit festgelegt werden: In Relation zum idealen Phänotyp Man erkennt die Fitness an der Überlebensquote (bzw. der Fortpflanzungswahrscheinlichkeit bzgl. Des Genpools)

8 Prinzipien: Population
Eine Menge „gleicher“ Lebewesen, deren interne genetische Struktur aber leicht unterschiedlich ist. Änderungen treten auf entweder an einem Individuum (üblicherweise Krankheit) bei Fortpflanzung wichtige (und dauerhafte) Änderungen treten durch die Genfrequenz auf, d.h. eine Population entwickelt sich im Laufe von Generationen

9 Prinzipien: Selektion
Basierend auf der Fitness überleben Lebewesen mit einer bestimmten Genstruktur (Genotyp) eher, als andere. Für das Überleben ist der Phänotyp verantworlich, d.h. die nach aussen sichtbaren Konsequenzen den Genotyps. Fittere bringen ihre Gene mit höherer Frequenz in die nächste Generation ein Selektion sorgt also dafür, dass die für eine bestimmte Umwelt besser geeigneten Lebewesen „bevorzugt“ werden, und die anderen verdrängt werden und letztlich aussterben.

10 Beispiel: Biston Betularia (Englische Motte)
Zwei verschiedene Arten: Dunkel und Hell Dunkel/Hell abh. von einem Gen 1848: <2% dunkel 1898: 95% aller Motten dunkel, in industrialisierten Gebieten Deutlich weniger in ländlichen Gebieten Änderung der Häufigkeit im Genpool der Population: Evolution

11 Beispiel: Biston Betularia (fortgesetzt)
Änderung der Häufigkeit von 2% auf 95% aufgrund von Selektion: Industrielle Revolution Bäume dunkel vom Rauch Vögel konnten die hellen besser sehen, und fraßen daher mehr helle. Die dunklen hatten daher mehr Nachfahren: Selektion

12 Definition Evolution Biologie: Veränderung des Genpools einer Population im Laufe von Generationen Allgemeiner: Änderung der Eigenschaften in einer Menge von Entitäten Schrittweise: Eigenschaften mutieren (zufällig) Individuen werden selektiert (aufgrund Fitness bzgl. der Umwelt; Selektionsdruck) Populationen entwickeln sich weiter

13 Softwaresysteme und Evolution

14 Traditionelles Vorgehen
Analyse – Design – Impementierung Software wird für eine bestimmte Umwelt (Systemlandschaft) entwickelt Änderungen bedürfen erneuter Analyse Iterative Prozesse Ziel ist immer noch ein System für eine Systemlandschaft

15 Schwachstellen des traditionellen Ansatzes
Moving Target Problem: Die Anforderungen ändern sich während der Entwicklung System wird nie „fertig“ Instabil Analyse ist teuer und zeitaufwendig

16 Ziel: Entwickeln für eine sich ändernde Umwelt
Frameworks Variable Stellen können „konfiguriert“ werden Nachteil: Variable Stellen müssen von vornherein bekannt sein Systemfamilien Familie von Systemen ist Ziel der Entwicklung Ziel sind verschiedene, aber statische Umgebungen Nachteil: Auch hier müssen die Unterscheidungs-merkmale vorher bekannt sein

17 Gegenhypothese: „Mob Software“
Richard P. Gabriels Vortrag auf der OOPSLA 2000 Planung im Rahmen von SW-Entwicklung ist nicht möglich Anarchie ist besser geeignet um zu „schönen“ Ergebnissen zu kommen Linux Entwicklung: Viele Leute arbeiten „unkontrolliert“ an der Weiterentwicklung Ergebnis entsteht aus dieser „chaotischen“ Entwicklung durch „Selektion“

18 Genetische Algorithmen
Anderes Ziel Nicht die „genetische“ Erstellung von Software ist das Ziel, sondern: Verwendung von explizit programmierten genetischen Vorgehensweisen zur Lösung eines Problems Üblicherweise Such- oder Optimierungsprobleme Funktioniert nur, wenn es nicht nur die Lösung gibt, sondern verschiedene akzeptable Lösungen (Kontinuum)

19 Genetische Algorithmen (Beispiel)

20 Service Evolution

21 Definition Service Eine Softwarekomponente erbringt einen bestimmten Dienst Dieser wird mittels eines Interfaces spezifiziert Client ist nur gegen Interface programmiert, kennt die Implementierung nicht Beispiele: Java Interface - Object CORBA oder RMI Objekte Enterprise Java Beans Jini

22 Definition Service (II)
Service spezifiziert üblicherweise nur die Signatur von Operationen und (in Prosa) deren Bedeutung Es wird nicht spezifiziert: Qualität des Services, z.B. Reaktionszeit Genauigkeit Zuverlässigkeit Verfügbarkeit ...

23 evolutionäre Verbesserung der Qualität eines Services.
Service Evolution ...ist die evolutionäre Verbesserung der Qualität eines Services.

24 evolutionäre Verbesserung der Qualität eines Services.
Service Evolution evolutionäre Verbesserung der Qualität eines Services. evolutionär: schrittweise, ungeplante Veränderung einer Menge von Individuen

25 evolutionäre Verbesserung der Qualität eines Services.
Service Evolution evolutionäre Verbesserung der Qualität eines Services. Verbesserung: Selektionsverfahren sorgt dafür, dass Service später besser an die Umwelt angepasst ist als vorher.

26 evolutionäre Verbesserung der Qualität eines Services.
Service Evolution evolutionäre Verbesserung der Qualität eines Services. Qualität des Services: Alle Freiheitsgrade, die die Spezifikation des Services noch ermöglicht. z.B. Performanz, Genauigkeit, Zuverlässigkeit, ...

27 Merkmale: Service Evolution
„Service“ muss durch eine Menge von individuellen Service-Instanzen repräsentiert werden. Jede Instanz muss sich verändern können. Es muss eine Art Rückmeldung (Selektion) durch die Umgebung passieren. Die Service-Instanzen wissen nicht unbedingt, warum sie von der Umwelt bevorzugt werden.

28 Der evolutionäre Trader

29 Trader (I): Was ist das? Trader liefert Dienstinstanzen basierend auf einer beschreibenden Anfrage eines Clients

30 Trader (II): Eigenschaften
Beschreibung besteht aus Interface des Dienstes Einer Menge an Properties Auch „komplexere“ Queries sind prinzpiell möglich Trader entscheidet, welche Instanz zurückgeliefert wird, wenn mehrere auf die Suchanfrage passen

31 Trader (III): Vorteile
Entkopplung der Provider von ihren Benutzern Neue Dienstprovider können dynamisch registriert und zurückgezogen werden Lastverteilung ist möglich Round Robin Basierend auf Lastauskunft Basis für Failover Wenn Dienst stirbt, dann kann Client sich einen neuen holen Findet Anwendung u.a. in: CORBA Trader Service Jini‘s Lookup Service

32 Der evolutionäre Trader
Population Mehrere Provider pro Dienst Umwelt muss vorhanden sein  Clients Selektion der Dienste  Rückmeldung der Clients, Policy des Traders Zufällige Mutation  „Fehler“ des Traders Weiterentwicklung  Veränderung im Dienst

33 Evolutionärer Trader: Anfrage
Client stell Anfrage an den Trader

34 Evolutionärer Trader: Referenz-Lieferung
Trader liefert Referenz auf Service zurück, plus ein VotingTicket

35 Evolutionärer Trader: Verwendung der Srv.
Client verwendet den Service, ohne den Trader zu benötigen

36 Evolutionärer Trader: Voting
Danach wendet sich der Client an den Trader und bewertet den Service; dazu benötigt er das VotingTicket

37 Evolutionärer Trader: Voting II
Speichert sich die Bewertung in einer Datenbank ab

38 Evolutionärer Trader: Voting III
Trader führt Statistiken über die „Bewertung“ der Services durch die Clients

39 Evolutionärer Trader: Anfrage (II)
Client stell Anfrage an den Trader Der Service mit dem besten Rating wird zurückgeliefert

40 Evolutionärer Trader: Information
Trader informiert die Services regelmässig über ihre Qualität, und die der anderen (anonym)

41 Evolutionärer Trader: Entwicklungsphase
Die Services können sich nun verändern, wenn sie wissen, dass ihre Qualität schlecht ist Sie wissen aber nicht wie sie sie verbessern können; Annahmen sind möglich

42 Evolutionärer Trader: Anfrage (III)
Trader liefert manchmal auch den nicht-besten Dienst zurück; dieser kann sich ja in der Zwischenzeit verbessert haben!

43 Evolutionärer Trader: Anfrage (IV)
Wenn sehr viele clients den besten Service bekommen, wird dessen Belastung möglicherweise höher; Damit wird sein Rating schlechter. Andere Services bekommen wieder eine Chance.

44 Evolutionärer Trader: Benefits
Alle Vorteile des Traders Kein Koordinationsaufwand über die Art der Bewertung Diese Koordination ist grosses Problem!! Extrem lose Kopplung Services entwickeln sich zufällig weiter Chance für unerwartete Veränderung Dynamische, schrittweise Anpassung an eine sich verändernde Umwelt Clients bestimmen die Qualitäten der Services, allerdings indirekt

45 Evolutionärer Trader: Nachteile
Je nach Szenario, langsame Anpassung an sich verändernde Umwelt Nicht jeder Client bekommt immer den besten Service Qualität der „Dienste“ kann sich ändern, auch nach unten

46 Anwendungsbeispiele

47 Beispiel: Matrix Calculation Service
Dienst zur Berechnung von Matrixoperationen multiplizieren, dividieren, addieren, ... Qualitätsaspekte: Genauigkeit Performanz Rating: z.B. Zahl zwischen 0 und 100 Weiterentwicklung: Verbesserung dieser Aspekte durch Programmierung

48 Beispiel: Radarstellungen
Radarstellung bietet Dienst: Scannen eines Geibietes Überschneiden: Also mehrere „gleiche“ Dienste Untersch. Qualität: Wetter, Jamming, Position Rating durch die CCC Clients Verbesserung d. Qual.: Anderes Band Reparatur Verlegung

49 Erweiterungsmöglichkeiten

50 Erweiterung: Verhungern lassen
Wenn die verschiedene Dienste unter der Kontrolle des Traders laufen, können den schlechteren Diensten die Resourcen beschränkt werden: Handler Threads Thread Priorität, etc.

51 Erweiterung: „Sozialhilfe“
Trader kann den schlechten Diensten mit Absicht bessere Ratings zukommen lassen, um im Falle von Ausfällen des besten noch ein Backup zu haben. Insbesondere interessant im Zusammenhang mit „Verhungern lassen“

52 Erweiterung: Benachrichtigung bei Änderung
Trader liefert manchmal auch die nicht-optimalen Provider zurück, da die sich potentiell geändert haben können. Evolution ist sehr langsam. Neue Services (oder geänderte) benachrichtigen den Trader über die Änderung Trader gibt denen gezielt mehr Chancen

53 Das war‘s! Vielen Dank. Fragen? Kritik? Anregungen?


Herunterladen ppt "Evolution in verteilten Systemen Der Evolutionäre Trader"

Ähnliche Präsentationen


Google-Anzeigen