-
Stand der Technik
-
Viele Softwaresysteme basieren auf dem Prinzip der Schichtenstruktur, wobei eine höhere Schicht auf eine tiefere Schicht zugreifen kann. Ein Beispiel für eine Zwei-Schichten-Architektur ist dabei das Client-Server-System. Hier kann der Server als Backend bezeichnet werden, der Ressourcen für den Client, der als Frontend bezeichnet werden kann, bereitstellt. Dabei ist das Frontend die dem Benutzer nähere lokale Instanz und das Backend das weiter entferntere System. Durch einen mehrschichtigen Aufbau lassen sich lokale Ressourcen (Hardware und Software) am Frontend einsparen, wenn beispielsweise das Backend dazu dient, große Datenmengen zu speichern oder komplexe Rechenoperationen durchzuführen, die dann vom Frontend abgerufen werden können. Probleme ergeben sich dann, wenn die Kommunikation von einer lokalen Instanz zu einem Backend gestört ist oder ganz ausgefallen ist und das Backend lokalen Instanzen nicht mehr die notwendigen Dienste oder Daten bereitstellen kann, die für lokale Funktionen notwendig sind. Dies kann dann zu einem unerwünschten Funktionsausfall führen. Beispiele für Backend-Frontend-Kommunikation mit möglichen Verbindungsstörungen finden sich unter anderem im Mobilfunk, der mobilen Robotik, im Bereich Internet of Things oder der Mobilität. Besonders Augenmerk liegt in der jüngsten Vergangenheit auf der Entwicklung von Verfahren zum autonomen und/oder assistierten Fahren. Hier können Verbindungsstörungen beispielsweise beim Aufenthalt eines Fahrzeugs in einem Gebiet mit schlechter Netzabdeckung oder bedingt durch Gegebenheiten der Verkehrsinfrastruktur, wie zum Beispiel Tunnel oder Unterführungen drohen. Es kann passieren, dass einige im Fahrzeug befindlichen Systeme, die lokale Instanzen darstellen, nicht mehr mit dem Backend kommunizieren können und notwendige Daten oder Informationen nicht erhalten, was zu Funktionsstörungen beim Fahrzeug führen kann oder bestimmte Funktionen für den Benutzer nicht mehr zur Verfügung stehen. Beispiele hierfür können aktuelle Verkehrsinformationen zur Routenplanung oder Stauumfahrung oder Informationen über das Ladenetz im Bereich der Elektromobilität sein. Ein gutes Systemdesign muss die Nichtverfügbarkeit von Basisdiensten und Informationen aus dem Backend berücksichtigen, was allgemein mit einer spürbar schlechteren Nutzererfahrung einhergehen kann. Es besteht also Bedarf an einer Lösung zum Aufrechterhalten der Funktionalität im Fall einer Verbindungsstörung zu einem Backend. Die zuvor genannten Beispiele sind dabei nicht einschränkend, sondern dienen der Veranschaulichung der dargestellten Problematik.
-
Offenbarung der Erfindung
-
Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem, das eine lokale Instanz mit einem lokalen Agenten und ein Backend, das zu einem Teil als globaler Agent dient, wobei ein Agent eine Einheit bezeichnet, die dazu ausgelegt ist, mittels autonomen Verhaltens definierte Ziele zu erreichen, aufweist. Das Verfahren umfasst, wenn eine Verbindung zu dem Backend besteht, Bereitstellen der Funktion durch den globalen Agenten, der während des Bereitstellens der Funktion Backend-Informationen von dem Backend erhält. Das Verfahren umfasst weiterhin, wenn eine Verbindung zu dem Backend gestört ist, Bereitstellen der Funktion durch den lokalen Agenten.
-
Ein zweiter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, das dafür ausgelegt ist, das computerimplementierte Verfahren zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem gemäß dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.
-
Ein dritter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computerprogramm, das dafür ausgelegt ist, das computerimplementierte Verfahren zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem gemäß dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.
-
Ein vierter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computerlesbares Medium oder Signal, das das Computerprogramm gemäß dem dritten allgemeinen Aspekt (oder einer Ausführungsführungsform davon) speichert und/oder enthält.
-
Das in dieser Offenbarung vorgeschlagene Verfahren nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) kann in manchen Situationen einen Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem verhindern. Ein Vorteil kann darin bestehen, dass sich durch das vorgeschlagene Verfahren die Abhängigkeit der lokalen Instanz von der permanenten Verbindung zu dem Backend reduzieren kann und der Ausfall einer Funktion vermieden werden kann. Es kann dadurch sein, dass ein Benutzer von der Verbindungsstörung keine Kenntnis erlangt und keine Nachteile erleidet. Durch das hier vorgeschlagene Verfahren kann, wenn eine Verbindung zu dem Backend besteht, eine Funktion durch einen globalen Agenten, der Backend-Informationen von dem Backend erhält, bereitgestellt werden. Wenn eine Verbindung zu dem Backend gestört ist, kann die Funktion durch einen lokalen Agenten bereitgestellt werden. Ein weiterer Vorteil besteht darin, dass der Lernvorgang des lokalen Agenten erfolgen kann, wenn das Backend die Funktion bereitstellt. Auf diese Weise kann der lokale Agent das gleiche Verhalten wie der globale Agent lernen, ohne selbst die Funktion bereitzustellen. Wenn eine Verbindung zu dem Backend gestört wird, kann der lokale Agent nahtlos die Aufgabe des globalen Agenten übernehmen und die Funktion bereitstellen. Dabei kann der lokale Agent seinen Lernvorgang fortsetzen und eine höhere Qualität erreichen. Ein weiterer Vorteil kann darin bestehen, dass der globale Agent als Teil des Backends auch von anderen globalen Agenten lernen kann und so eine höhere Qualität erreichen kann. Durch das hier offenbarte Verfahren kann dem Benutzer eine fortwährende Funktionalität unabhängig einer Störung der Verbindung zu dem Backend gewährleistet werden. Dabei muss sich die Funktionalität im Störungsfall nicht von der Funktionalität, die vorliegt, wenn eine Verbindung zu dem Backend nicht gestört ist, unterscheiden. Die Benutzerfreundlichkeit und das Benutzererlebnis können dabei auch im Fall einer Störung der Verbindung zu dem Backend beibehalten werden, da der Benutzer keine Kenntnis von einer Verbindungsstörung erlangen muss.
-
Einige Begriffe werden in der vorliegenden Offenbarung in folgender Weise verwendet:
- Eine „lokale Instanz“ kann eine dem möglichen Benutzer nähere Einheit zur Datenverarbeitung, Steuerung einer nachgelagerten Vorrichtung und/oder eines nachgelagerten Prozesses oder Überwachung dergleichen sein. Die lokale Instanz kann in einem Feld mit einer Mehrzahl von lokalen Instanzen sein. Beispielsweise kann eine lokale Instanz ein System in einem Fahrzeug sein, ein System in einem Roboter, ein System in einer Werkzeugmaschine, einer industriellen Maschine und/oder Anlage, eine einzelne Systemeinheit in einem größeren Rechnersystem oder eine tragbare Datenverarbeitungseinheit (engl. Wearable Computer).
- Eine „Funktion“ kann zum Beispiel eine Rechenoperation, eine Datenverarbeitungsvorschrift, eine Handlungsanweisung an nachgelagerte Verfahren, eine Anzeige einer Information gegenüber einem Benutzer oder zum Beispiel die Steuerung eines vollautomatisierten oder teilautomatisierten Prozesses sein. Eine Funktion kann in einer lokalen Instanz angeboten werden (d.h. die lokale Instanz stellt die Funktion zur Verfügung). In einer lokalen Instanz kann auch eine Mehrzahl von Funktionen angeboten werden. Eine Funktion kann in manchen Beispielen eine Funktion zum autonomen und/oder assistierten Fahren sein. Beispielsweise kann das Beschleunigen eines Fahrzeugs oder das Anzeigen von Fahrinformationen (z.B. Geschwindigkeit, geschätzte Ankunftszeit) eine Funktion sein.
-
Ein „Backend“ kann zum Beispiel eine Recheneinheit sein. Ein Backend kann beispielsweise mobil oder stationär sein. Weiter kann ein Backend zum Beispiel ein System zur Speicherung von Daten oder zur Ausführung von Rechenoperationen umfassen. Ein Backend kann auch ein System zur Datenauswertung und/oder ein System zum Erstellen von Steuervorgaben umfassen.
-
Ein technischer „Agent“ kann eine abgrenzbare Hardware-Einheit und/oder Software-Einheit mit definierten Zielen sein. Ein technischer Agent kann bestrebt sein, diese Ziele durch selbstständiges (autonomes) Verhalten zu erreichen und kann dabei mit seiner Umgebung und anderen Agenten interagieren. Dabei kann ein Agent abhängig von verschiedenen Zuständen der Umgebung mittels Aktionen agieren. Durch eine Aktion kann eine Umgebung eines Agenten von einem Zustand in einen Folgezustand gelangen. Auch kann der Agent für seine Aktion eine Belohnung erhalten.
-
Eine „Aktion“ kann beispielsweise eine Handlungsanweisung an nachgelagerte Systeme (z.B. an einen oder mehrere Aktoren) und/oder Verarbeitungsschritte sein. Eine Aktion kann beispielsweise analoger und/oder digitaler Natur sein. Eine Aktion kann Teil einer Menge von Aktionen sein, aus denen ein Agent eine bestimmte Aktion situativ auswählt.
-
Eine „Umgebung“ kann ein physischer Raum oder simulierter Raum (der bspw. mittels eines Computersystems simuliert bzw. modelliert wird) oder eine Situation sein, in der sich ein Agent befinden kann. Beispielsweise kann die Situation eine bestimmte Verkehrssituation (z.B. ein Stau oder eine Straßenkreuzung) sein. Die Umgebung kann verschiedene Zustände (bspw. grüne Ampel oder rote Ampel auf verschiedenen Fahrstreifen) umfassen, die ein Agent einnehmen kann. Eine Umgebung sollte beobachtbar sein. Eine Umgebung kann zum Teil beobachtbar oder voll beobachtbar sein.
-
Ein „Zustand“ kann eine Gesamtheit oder ein Teil einer Gesamtheit von Informationen sein, die aktuelle Eigenschaften einer Umgebung beschreiben. Ein Zustand kann zum Beispiel aus Daten, die über eine Umgebung gesammelt werden, beispielsweise durch geeignete Mittel der Sensorik (bspw. optische, akustische, induktive, kapazitive und/oder taktile Messsysteme, z.B. Kamera-basierte Systeme, LIDAR-Systeme, RADAR-Systeme; Ultraschall-Messsysteme und/oder Temperatur-Messsysteme), Mittel zur geographischen Ortung und/oder Zeitmessung bestimmt werden. Ein Zustand kann ein Ausdruck für eine Situation in einer Umgebung sein, in der sich ein Agent befinden kann (beispielsweise eine grüne Ampel auf dem Fahrstreifen, auf dem sich der Agent befindet). Ein Zustand kann von einem Zeitschritt abhängig sein.
-
Ein „globaler Agent“ ist ein Agent, der in dem Backend sein kann oder ein Teil des Backends sein kann. Der globale Agent kann für das Bereitstellen einer Funktion Backend-Informationen von dem Backend erhalten.
-
Ein „lokaler Agent“ ist ein Agent, der in der lokalen Instanz sein kann oder ein Teil der lokalen Instanz sein kann.
-
„Backend-Informationen“ können Informationen sein, die auf einem Backend gespeichert und/oder verarbeitet werden und einem globalen Agenten bereitgestellt werden können. Die Informationen können ortsbezogene Informationen (z.B. ortungsspezifische) oder zeitbezogene Informationen (z.B. Tages- und/oder Jahreszeit), wie auch Informationen aus einer größeren Entität wie dem World Wide Web, wie beispielsweise Wetterinformationen, Verkehrsinformationen, (Straßen-) Karteninformationen, oder alle anderen Arten von Informationen, die für einen globalen Agenten zum Bereitstellen einer Funktion notwendig sein können, umfassen.
-
Ein „Kommunikationssystem“ kann ein Netzwerk zum Austausch von Informationen in Form von Daten sein. Das Kommunikationssystem ist dabei nicht auf eine bestimmte Technologie beschränkt. Das Kommunikationssystem kann zum Beispiel ein Rechnernetz oder ein lokales Netz (engl.: Local Area Network, LAN) oder beispielsweise ein öffentliches oder nicht-öffentliches Wide-Area-Netzwerk (WAN) sein.
-
Eine „Verbindungsstörung“ oder „eine gestörte Verbindung“ kann ein Ereignis oder eine Situation sein, in der die Übertragung von Daten von der lokalen Instanz zu dem Backend oder von dem Backend zu der lokalen Instanz nur teilweise oder gar nicht möglich ist (z.B. ein kompletter Abbruch der Verbindung oder eine Reduktion einer Dienstgüte einer Verbindung). Zum Beispiel kann eine Verbindungsstörung durch ein Naturereignis und/oder Wettereignis, durch ein Gebiet schlechter Netzabdeckung, durch Gegebenheiten der Verkehrsinfrastruktur wie zum Beispiel Tunnel oder Unterführungen oder beispielsweise auch durch Ausfall technischer Mittel wie einem Sendemodul und/oder Empfangsmodul für ein informationstragendes Signal auftreten. Eine Verbindung kann dabei als bidirektional verstanden werden. Anders ausgedrückt, ob von einer Verbindung von einer lokalen Instanz zu einem Backend oder von einem Backend zu einer lokalen Instanz gesprochen wird, macht keinen Unterschied.
-
Ein „Fahrzeug“ kann jegliche Vorrichtung, die Passagiere und/oder Fracht transportiert, sein. Ein Fahrzeug kann ein Kraftfahrzeug (zum Beispiel ein PKW oder ein LKW) sein, aber auch ein Schienenfahrzeug. Ein Fahrzeug kann auch ein motorisiertes, nicht motorisiertes und/oder ein muskelkraftbetriebenes Zwei- oder Dreirad sein. Allerdings können auch schwimmende und fliegende Vorrichtungen Fahrzeuge sein. Fahrzeuge können zumindest teilautonom operierend oder assistiert sein.
-
Kurzbeschreibung der Figuren
-
- 1 illustriert schematisch ein computerimplementiertes Verfahren zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem.
- 2a illustriert schematisch beispielhafte Verfahrensschritte eines Verfahrens zur Verhinderung von Funktionsverlust, wobei die Verfahrensschritte durch einen lokalen Agenten ausgeführt werden können.
- 2b illustriert schematisch beispielhafte Verfahrensschritte des Verfahrens zur Verhinderung von Funktionsverlust, wobei die Verfahrensschritte durch einen globalen Agenten ausgeführt werden können.
- 3 illustriert schematisch ein System zum Ausführen des computerimplementierten Verfahrens zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem.
- 4 illustriert schematisch ein beispielhaftes System zum Ausführen des computerimplementierten Verfahrens zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem am Beispiel eines Fahrzeugs.
-
Detaillierte Beschreibung
-
Offenbart wird ein computerimplementiertes Verfahren 100 zur Verhinderung von Funktionsverlust in einer lokalen Instanz bei Verbindungsstörung zu einem Backend in einem Kommunikationssystem, das eine lokale Instanz 20 mit einem lokalen Agenten 21 und ein Backend 10, das zu einem Teil als globaler Agent 11 dient, wobei ein Agent eine Einheit bezeichnet, die dazu ausgelegt ist, mittels autonomen Verhaltens definierte Ziele zu erreichen, aufweist.
-
Die lokale Instanz 20 kann zum Austausch von Daten mit dem Backend 10 gekoppelt sein. Das Verfahren 100 umfasst, wenn eine Verbindung zu dem Backend 10 besteht, ein Bereitstellen 12 der Funktion durch den globalen Agenten 11, der während des Bereitstellens der Funktion Backend-Informationen von dem Backend 10 erhält. Der globale Agent 11 kann über eine Verbindung zu der lokalen Instanz 20 die Funktion bereitzustellen. In 4 ist am Beispiel eines Fahrzeugs 50 ein beispielhaftes System, das dem globalen Agenten 11 ermöglicht, eine Funktion bereitzustellen, wenn Verbindung von der lokalen Instanz 20 zu dem Backend 10 besteht, gezeigt. Zum Bereitstellen 12 der Funktion kann der globale Agent 11 Backend-Informationen, die der globale Agent 11 von dem Backend 10 erhält, verwenden.
-
Das Verfahren 100 umfasst weiterhin, wenn eine Verbindung zu dem Backend 10 gestört ist, Bereitstellen 22 der Funktion durch den lokalen Agenten 21. Der lokale Agent 21 kann das Bereitstellen 22 der Funktion an Stelle des globalen Agenten 11 übernehmen, wenn eine Verbindung von der lokalen Instanz 20 zu dem Backend 10 gestört ist. 1 zeigt diesen Verfahrensschritt.
-
2a zeigt mögliche Verfahrensschritte des Verfahrens 100, die durch den lokalen Agenten 21 durchgeführt werden können, wobei diese Verfahrensschritte im Folgenden beschrieben werden.
-
Das Verfahren 100 kann weiterhin Beobachten 23 seines aktuellen Zustandes S1 in der Umgebung durch den lokalen Agenten 21 umfassen. Das Beobachten 23 kann das (unvollständige) Erfassen von Informationen über eine Umgebung aus der Perspektive des lokalen Agenten 21 umfassen, wobei aus den Informationen ein aktueller Zustand S1 bestimmt werden kann. Dabei kann das Beobachten 23 beispielsweise durch Mittel der Sensorik (bspw. optische, akustische, induktive, kapazitive und/oder taktile Messsysteme, bspw. Kamera-basierte Systeme, LIDAR-Systeme, RADAR-Systeme; Ultraschall-Messsysteme und/oder Temperatur-Messsysteme), Mittel zur geographischen Ortung und/oder Zeitmessung durchgeführt werden. Das Beobachten 23 kann sämtliche Mittel zur Datengewinnung umfassen. Das Beobachten 23 kann auch die Signalverarbeitung, Signalaufbereitung und/oder Nutzbarmachen der Signale in Form von Daten für nachfolgende Verfahrensschritte umfassen. Das Beobachten 23 kann zum Beispiel ein regelmäßiger Vorgang, ein ständiger und/oder fortwährender Vorgang, ein unregelmäßiger und/oder eventbasierter Vorgang sein.
-
Das Verfahren 100 kann weiterhin Berechnen 24 einer ersten Aktion A1, basierend auf dem aktuellen Zustand S1 durch den lokalen Agenten 21, um die Funktion bereitzustellen, wenn eine Verbindung zu dem Backend 10 gestört ist, umfassen.
-
Die erste Aktion A1 kann auch berechnet werden, wenn eine Verbindung zu dem Backend 10 besteht und der lokale Agent 21 die Funktion nicht bereitstellt. In diesem Fall hat die erste Aktion A1 keinen Einfluss auf die Umgebung. Mittels einer ersten Aktion A1 kann ein lokaler Agent 21 Einfluss auf die Umgebung nehmen, um eine Funktion bereitzustellen, wenn eine Verbindung von der lokalen Instanz 20 zu dem Backend 10 gestört ist. Beispielsweise kann, wie in 4 gezeigt, ein Fahrzeug eine beispielhafte Ausführungsform sein. Eine lokale Instanz 20 kann dabei ein System in diesem Fahrzeug 50 sein. Beispielsweise kann in dieser Ausführungsform das Beschleunigen des Fahrzeugs 50 eine Funktion sein, die mittels einer ersten Aktion A1 durch den lokalen Agenten 21 bereitgestellt wird, wenn eine Verbindung von der lokalen Instanz 20 zu dem Backend 10 gestört ist.
-
Das Verfahren 100 kann weiterhin Einnehmen 25 eines neuen Zustandes S3 durch den lokalen Agenten 21 umfassen. Durch die erste Aktion A1 kann der lokale Agent in dem neuen Zustand S3 sein. Um diesen Sachverhalt zu veranschaulichen, kann beispielhaft die Ausführungsform mit Fahrzeug 50 der 4 herangezogen werden. In dieser beispielhaften Ausführungsform kann ein neuer Zustand S3 ein beschleunigter Zustand des Fahrzeugs 50 sein. Allgemein, in Übereinstimmung mit allen Ausführungsformen, kann, wie in 3 gezeigt, der neue Zustand S3 zu einem aktuellen Zustand S1 werden, auf dem das Berechnen 24 einer ersten Aktion A1 basiert.
-
Zusätzlich kann, wie in 3 gezeigt, das Berechnen 24 einer ersten Aktion A1 durch den lokalen Agenten 21 auf seiner aktuellen Belohnung R1 basieren und das Einnehmen 25 eines neuen Zustandes S3 zusätzlich das Empfangen 26 einer neuen Belohnung R3 durch den lokalen Agenten 21 umfassen. Alternativ kann ein physikalisches oder gelerntes Modell der Umgebung dazu dienen, den neuen Zustand S3 zu bestimmen und/oder die neue Belohnung R3 zu erzeugen. Alternativ kann die neue Belohnung R3 durch eine mathematische Gleichung erzeugt werden. Die aktuelle Belohnung R1 und/oder die neue Belohnung R3 können Zahlenwerte sein. Basiert das Berechnen 24 der ersten Aktion A1 zusätzlich auf seiner aktuellen Belohnung R1 und umfasst das Einnehmen 25 eines neuen Zustandes S3 zusätzlich das Empfangen einer neuen Belohnung R3, können die Verfahrensschritte 23, 24 und 25 Verfahrensschritte zum Lernen des lokalen Agenten 21 sein, wobei das Lernen ein bestärkendes Lernen (engl. Reinforcement Learning) sein kann. In manchen Beispielen kann das bestärkende Lernen auf einem Markow-Entscheidungsproblem basieren. Das Berechnen 24 einer ersten Aktion A1 durch den lokalen Agenten 21 kann dabei dazu dienen, eine erwartete Gesamtbelohnung zu maximieren (was nicht immer heißt, dass ein lokales oder gar globales Maximum auch erreicht wird). Dadurch kann der lokale Agent 21 seine Strategie verbessern, wobei eine Strategie zumindest umfasst, dass jedem Zustand eine Aktion zugewiesen werden kann (deterministisch) oder jede Aktion mit einer bestimmten Wahrscheinlichkeit von einem Zustand aus ausgewählt werden kann (nicht-deterministisch).
-
Weiterhin können als Grundlage für das Beobachten 23 eines aktuellen Zustandes in der Umgebung, für das Berechnen 24 der ersten Aktion A1 und/oder für das Einnehmen 25 eines neuen Zustandes durch den lokalen Agenten 21 Merkmale, die für die lokale Instanz 20 auch verfügbar sind, wenn eine Verbindung zu dem Backend 10 gestört ist, verwendet werden. Zum Beispiel kann ein Merkmal, das für die lokale Instanz 20 auch verfügbar ist, wenn keine Verbindung zu dem Backend 10 besteht oder eine Verbindung zu dem Backend 10 gestört ist, aus Daten eines Messystems, das in oder bei der lokalen Instanz 20 angeordnet und/oder mit dieser verbunden ist (z.B. in einem Fahrzeug), erzeugt werden. Zusätzlich oder alternativ kann ein Merkmal aus Daten in einem Speicher erzeugt werden, der in oder bei der lokalen Instanz angeordnet und/oder mit dieser verbunden ist (z.B. in einem Fahrzeug), erzeugt werden. In manchen Beispielen kann ein Merkmal eine Tageszeit oder ein Wochentag sein. Aufgrund der Tatsache, dass als Grundlage für die genannten Verfahrensschritte Merkmale, die für die lokale Instanz 20 auch verfügbar sind, wenn keine Verbindung zu dem Backend 10 besteht oder eine Verbindung zu dem Backend gestört ist, verwendet werden können, kann gewährleistet werden, dass der lokale Agent 21 die Funktion bereitstellen kann, wenn eine Verbindung zu dem Backend 10 gestört ist. Alternativ kann eine neue Belohnung R3 auf Grundlage von Merkmalen, die für die lokale Instanz 20 auch verfügbar sind, wenn eine Verbindung zu dem Backend 10 gestört ist, erzeugt werden.
-
2b zeigt mögliche Verfahrensschritte des Verfahrens 100, die durch den globalen Agenten 11 durchgeführt werden können, wobei diese Verfahrensschritte im Folgenden beschrieben werden.
-
Das Verfahren 100 kann weiterhin Beobachten 13 seines Zustandes S2 in der Umgebung durch den globalen Agenten 11, Berechnen 14 einer zweiten Aktion A2, basierend auf seinem aktuellen Zustand S2 durch den globalen Agenten, Einnehmen 15 eines neuen Zustandes S4 durch den globalen Agenten 11, wenn die Verbindung von der lokalen Instanz 20 zu dem Backend 10 nicht gestört ist, umfassen. Das Beobachten 13 kann das (unvollständige) Erfassen von Informationen über eine Umgebung aus der Perspektive des globalen Agenten 11 sein, wobei aus den Informationen ein aktueller Zustand S3 bestimmt werden kann. Dabei kann das Beobachten 13 beispielsweise Mittel der Sensorik (bspw. optische, akustische, induktive, kapazitive und/oder taktile Messsysteme, bspw. Kamera-basierte Systeme, LIDAR-Systeme, RADAR-Systeme; Ultraschall-Messsysteme und/oder Temperatur-Messsysteme), Mittel zur geographischen Ortung und/oder Zeitmessung durchgeführt werden. Das Beobachten 13 kann sämtliche Mittel zur Datengewinnung umfassen. Das Beobachten 13 kann auch die Signalverarbeitung, Signalaufbereitung und/oder Nutzbarmachen der Signale in Form von Daten für nachfolgende Verfahrensschritte umfassen. Das Beobachten 13 kann zum Beispiel ein regelmäßiger Vorgang, ein ständiger und/oder fortwährender Vorgang, ein unregelmäßiger und/oder eventbasierter Vorgang sein. Mittels einer zweiten Aktion A2 kann ein globaler Agent 11 Einfluss auf die Umgebung nehmen, um eine Funktion bereitzustellen, wenn eine Verbindung von der lokalen Instanz 20 zu dem Backend 10 besteht. Beispielsweise kann, wie in 4 gezeigt, ein Fahrzeug 50 eine beispielhafte Ausführungsform sein. Eine lokale Instanz 20 kann dabei ein System in diesem Fahrzeug 50 sein. Beispielsweise kann in dieser Ausführungsform das Beschleunigen des Fahrzeugs 50 eine Funktion sein, die mittels einer zweiten Aktion A2 durch den globalen Agenten 11 bereitgestellt wird, wenn eine Verbindung von der lokalen Instanz 20 zu dem Backend 10 besteht. Durch die zweite Aktion A2 kann der globale Agent in dem neuen Zustand S4 sein. Um diesen Sachverhalt zu veranschaulichen, kann beispielhaft die Ausführungsform mit Fahrzeug 50 der 4 herangezogen werden. In dieser beispielhaften Ausführungsform kann ein neuer Zustand S4 ein beschleunigter Zustand des Fahrzeugs 50 sein. Allgemein, in Übereinstimmung mit allen Ausführungsformen, kann, wie in 3 gezeigt, der neue Zustand S4 zu einem aktuellen Zustand S2 werden, auf dem das Berechnen 14 einer zweiten Aktion A2 basiert. Alternativ kann der aktuelle Zustand S1 des lokalen Agenten und der aktuelle Zustand S2 des globalen Agenten der gleiche Zustand sein. Weiterhin kann alternativ der neue Zustand S3 des lokalen Agenten 21 und der neue Zustand S4 des globalen Agenten 11 der gleiche Zustand sein.
-
Zusätzlich kann, wie in 3 gezeigt, das Berechnen 14 einer zweiten Aktion A2 durch den globalen Agenten 11 auf seiner aktuellen Belohnung R2 basieren und das Einnehmen 15 eines neuen Zustandes S4 zusätzlich das Empfangen 16 einer neuen Belohnung R4 durch den globalen Agenten 11 umfassen. Alternativ kann ein physikalisches oder gelerntes Modell der Umgebung dazu dienen, den neuen Zustand S4 zu bestimmen und/oder die neue Belohnung R4 zu erzeugen. Alternativ kann die neue Belohnung R4 durch eine mathematische Gleichung erzeugt werden. Die aktuelle Belohnung R2 und/oder die neue Belohnung R4 können Zahlenwerte sein. Basiert das Berechnen 14 der zweiten Aktion A2 zusätzlich auf seiner aktuellen Belohnung R2 und umfasst das Einnehmen 15 eines neuen Zustandes S4 zusätzlich das Empfangen 16 einer neuen Belohnung R4, können die Verfahrensschritte 13, 14 und 15 Verfahrensschritte zum Lernen des globalen Agenten 11 sein, wobei das Lernen ein bestärkendes Lernen (engl. Reinforcement Learning) sein kann. In manchen Beispielen kann das bestärkende Lernen auf einem Markow-Entscheidungsproblem basieren. Das Berechnen 14 einer zweiten Aktion A2 durch den globalen Agenten 11 kann dabei dazu dienen, eine erwartete Gesamtbelohnung zu maximieren. Dadurch kann der globale Agent 11 seine Strategie verbessern, wobei Strategie zumindest umfasst, dass jedem Zustand eine Aktion zugewiesen werden kann (deterministisch) oder jede Aktion mit einer bestimmten Wahrscheinlichkeit von einem Zustand aus ausgewählt werden kann (nicht-deterministisch).
-
In manchen Beispielen kann das Backend 10 zu einem Teil als eine Mehrzahl von globalen Agenten 11 dienen und ein globaler Agent 11 aus der Mehrzahl von globalen Agenten kann Belohnungen von anderen globalen Agenten empfangen. Durch die Mehrzahl von globalen Agenten 11 kann jeder globale Agent 11 der Mehrzahl von globalen Agenten von jedem anderen globalen Agenten der Mehrzahl von globalen Agenten lernen, indem jeder globale Agent 11 Belohnungen der anderen globalen Agenten empfangen kann. Ein globaler Agent 11 kann alternativ mit einer Mehrzahl von lokalen Instanzen 20 gekoppelt sein. Die Mehrzahl der lokalen Instanzen 20 kann zum Beispiel >=1, >=2, >=5, >=10, >=50 oder >=100 lokale Instanzen 20 umfassen (z. B. zwischen 3 und 20 lokale Instanzen). Eine lokale Instanz 20 kann alternativ mit einer Mehrzahl von globalen Agenten 11 gekoppelt sein.
-
Weiterhin kann die aktuelle Belohnung R1 und/oder die neue Belohnung R3 des lokalen Agenten 21 die gleiche sein wie die aktuelle Belohnung R2 und/oder die neue Belohnung R4 des globalen Agenten 11, so dass der lokale Agent 21 lernt, das Verhalten des globalen Agenten 11 nachzubilden und, wenn eine Verbindung zu dem Backend gestört ist, eine erste Aktion A1 berechnet, die gleich ist zu der zweiten Aktion A2, die der globale Agent berechnen würde, wenn die Verbindung zu dem Backend bestünde. Wie voranstehend beschrieben, kann der lokale Agent 21 auch eine erste Aktion A1 berechnen 24, wenn eine Verbindung zu dem Backend 10 besteht und der lokale Agent 21 die Funktion nicht bereitstellt. Dennoch kann das Berechnen 24 der ersten Aktion A1 durch den lokalen Agenten 21 neben seinem aktuellen Zustand S1 auf seiner aktuellen Belohnung R2 basieren und das Einnehmen 15 eines neuen Zustandes S4 zusätzlich das Empfangen 16 einer neuen Belohnung R3 durch den lokalen Agenten 21 umfassen, wobei die neue Belohnung R3 des lokalen Agenten 21 die gleiche sein kann wie die neue Belohnung R4 des globalen Agenten 11. Durch diesen Vorgang kann der lokale Agent 21, wenn eine Verbindung zu dem Backend 10 besteht und der globale Agent 11 die Funktion bereitstellt, das gleiche Verhalten wie der globale Agent 11 lernen oder anders ausgedrückt, der lokale Agent 21 kann durch diesen Vorgang das Verhalten des globalen Agenten 11 derart nachbilden, dass der lokale Agent 21, wenn eine Verbindung zu dem Backend gestört ist, eine erste Aktion A1 berechnen kann, die gleich ist zu der zweiten Aktion A2, die der globale Agent 11 berechnen würde, wenn die Verbindung zu dem Backend 10 bestünde bzw. nicht gestört wäre, und/oder die Funktion derart bereitstellen kann, dass die bereitgestellte Funktion der Funktion entspricht, die der globale Agent 11 bereitstellen würde, wenn die Verbindung zu dem Backend 10 bestünde bzw. nicht gestört wäre. Die Emulation bzw. Nachbildung des globalen Agenten 11 durch den lokalen Agenten 21 erlaubt dem lokalen Agenten 21, umgehend die Funktion bereitzustellen, wenn eine Verbindung zu dem Backend 10 gestört ist.
-
In manchen Beispielen kann ein Degradierungssignal 30 anzeigen, ob die Gefahr einer Verbindungsstörung der lokalen Instanz 20 zu dem Backend 10 besteht. Das Degradierungssignal 30 ist beispielhaft in 3 und 4 gezeigt.
-
In manchen Beispielen kann das Degradierungssignal 30 einen Schalter 32 steuern, um der ersten Aktion A1, die von dem lokalen Agenten 21 berechnet wird, zu erlauben, Einfluss auf die Umgebung zu nehmen, wenn eine Verbindung zu dem Backend 10 gestört ist. Wie voranstehend erklärt, stellt der lokale Agent 21 die Funktion bereit, wenn eine Verbindung zu dem Backend 10 gestört ist. Dabei kann die Funktion mittels der ersten Aktion A1 bereitgestellt werden, wobei das Degradierungssignal 30 den Schalter 32 steuern kann, um zu erlauben, dass die erste Aktion A1 Einfluss auf die Umgebung nehmen kann. In manchen Beispielen kann der Schalter als Multiplexer ausgeführt sein, wobei ein Multiplexer eine (Halbleiter-)Selektionsschaltung sein kann, die aufgrund des Degradierungssignals das Signal der Aktion A1 des lokalen Agenten 21 wahlweise weiterleitet. Die Selektionsschaltung kann in manchen Beispielen als Softwarelösung umgesetzt sein.
-
Das Degradierungssignal 30 kann von dem Backend 10 erzeugt werden oder auf der Basis einer spontanen Verbindungsstörung erzeugt werden, oder von der lokalen Instanz 20 erzeugt werden. Das Degradierungssignal 30 kann beispielsweise aufgrund des Eintretens des Backends 10 und/oder des globalen Agenten 11 in einen Ruhezustand oder zum Beispiel der Notwendigkeit einer Aktualisierung oder Wartung des Backends 10 und/oder des globalen Agenten 11 erzeugt werden. Weiter kann wegen sämtlicher Gründe für eine Nichtverfügbarkeit des Backends 10 und/oder des globalen Agenten 11, ein Degradierungssignal 30 erzeugt werden. Alternativ kann das Degradierungssignal 30 erzeugt werden, wenn sich eine Verbindungsstörung beispielsweise durch eine Schwächung oder Verringerung der Signalstärke abzeichnet, oder wenn bekannt ist, dass sich die lokale Instanz 20 beispielsweise einem Gebiet mit schwächerer Netzabdeckung nähert oder bereits dort ist, oder allgemein gesprochen, die lokale Instanz 20 in einen Zustand geraten kann, in dem die Gefahr einer Verbindungsstörung zu dem Backend 10 besteht. Das Degradierungssignal 30 kann zum Beispiel auch aufgrund zusätzlicher Informationen über örtliche, zeitliche oder technische Gegebenheiten erzeugt werden. Das Degradierungssignal 30 kann zum Beispiel auch aufgrund des Ausbleibens von Datenpaketen in der Kommunikation zwischen der lokalen Instanz 20 und dem Backend 10 erzeugt werden. In einer beispielhaften Implementierung kann das Degradierungssignal 30 zurückgesetzt werden, wenn eine Heartbeat-Nachricht von dem Backend 10 und/oder von dem globalen Agenten 11 empfangen wird, sodass wieder der globale Agent 11 die Funktion bereitstellen kann. Eine Heartbeat-Nachricht kann zum Beispiel von dem Backend 10 und/oder des globalen Agenten 11 fortwährend, in regelmäßigen oder unregelmäßigen Zeitabständen ausgesendet werden. Die Heartbeat-Nachricht kann dabei eine Benachrichtigung des Backends 10 und/oder des globalen Agenten 11 an die lokale Instanz 20 und/oder an den lokalen Agenten 21, dass das Backend 10 und/oder der globale Agent 11 betriebsbereit ist, bzw. umgangssprachlich ausgedrückt, „am Leben ist“, sein.
-
In manchen Beispielen kann die lokale Instanz 20 als System in einem Fahrzeug 50 angeordnet sein und/oder wobei die Funktion zum autonomen und/oder assistierten Fahren dienen kann. 4 illustriert eine beispielhafte Implementierung des Verfahrens 100 in einem Fahrzeug 50. Die lokale Instanz 20 ist dabei als System in diesem Fahrzeug 50 angeordnet. Es kann eine Mehrzahl von lokalen Instanzen 20 als Systeme in diesem Fahrzeug 50 angeordnet sein. Es können zum Beispiel >=1, >=2, >=5, >=10, >=50 oder >=100 lokale Instanzen 20 als Systeme in dem Fahrzeug 50 angeordnet sein. Alternativ können auch mehrere Fahrzeuge 50, in denen jeweils eine Mehrzahl von lokalen Instanzen 20 angeordnet sind, in einem Feld sein. Mittels einer zweiten Aktion A2, die von dem globalen Agenten 11 berechnet wird, kann die Funktion bereitgestellt werden, wenn eine Verbindung zu dem Backend 10 besteht. Zeigt ein Degradierungssignal 30 an, dass die Gefahr einer Verbindungsstörung der lokalen Instanz 20 zu dem Backend 10 besteht, kann der lokale Agent 21 mittels einer ersten Aktion A1 die Funktion bereitstellen.
-
Offenbart wird weiterhin ein Computersystem, das dafür ausgelegt ist, das computerimplementierte Verfahren 100 zur Verhinderung von Funktionsverlust in einer lokalen Instanz 20 bei Verbindungsstörung zu einem Backend 10 in einem Kommunikationssystem auszuführen. Das Computersystem kann mindestens einen Prozessor und/oder mindestens einen Arbeitsspeicher umfassen. Das Computersystem kann weiterhin einen (nicht-volatilen) Speicher umfassen. Weiter kann die lokale Instanz 20 und/oder der lokale Agent 21 ein Computersystem sein. Die lokale Instanz 20 und/oder der lokale Agent 21 kann mindestens einen Prozessor und/oder einen Arbeitsspeicher umfassen. Die lokale Instanz 20 und/oder der lokale Agent 21 kann weiterhin einen (nicht-volatilen) Speicher umfassen. Weiter kann das Backend 10 und/oder der globale Agent 11 ein Computersystem sein. Das Backend 10 und/oder der globale Agent 11 kann mindestens einen Prozessor und/oder einen Arbeitsspeicher umfassen. Das Backend 10 und/oder der globale Agent 11 kann weiterhin einen (nicht-volatilen) Speicher umfassen.
-
Offenbart wird weiterhin ein Computerprogramm, das dafür ausgelegt ist, das computerimplementierte Verfahren 100 zur Verhinderung von Funktionsverlust in einer lokalen Instanz 20 bei Verbindungsstörung zu einem Backend 10 in einem Kommunikationssystem auszuführen. Das Computerprogramm kann z.B. in interpretierbarer oder in kompilierter Form vorliegen. Es kann (auch in Teilen) zur Ausführung z.B. als Bit- oder Byte-Folge in den RAM eines Computers geladen werden. Das Computerprogramm kann mehrere Teile umfassen, wobei mindestens ein Teil auf mindestens einer lokalen Instanz 20 und/oder einem lokalen Agenten 21 und ein anderer Teil auf dem Backend 10 und/oder dem globalen Agenten 11 ausgeführt wird.
-
Offenbart wird weiterhin ein computerlesbares Medium oder Signal, das das Computerprogramm oder mindestens einen Teil davon speichert und/oder enthält. Das Medium kann z.B. eines von RAM, ROM, EPROM, HDD, SDD, ... umfassen, auf/in dem das Signal gespeichert wird.