Frank hat geschrieben: ↑1. Feb 2018, 18:36
Zunächst muss ich für mich erstmal realisieren ... [dass] die Software in Nanosekunden entscheidet, wer leben darf und wer nicht.
Is nichts für mich.
So wie du schreibst, wäre das wohl für niemanden etwas. Aber so ist es nicht. Die Software minimiert den Schaden nach einen vorgegebenen Bewertungsvorschrift.
Hier mal eine textuelle Beschreibung meines Algorithmus:
// ein unmittelbar drohender Crash wird erkannt: z.B. springt eine vorher unsichtbare Person
// plötzlich sehr nahe vor dem Auto auf die Straße
OnImminentCrash() // in diesem Falle wird der folgende Algorithmus ausgeführt:
{
...
// die durch Lenkbewegung erreichbare Umgebung wird in endlich viele Teile zerlegt:
// unter diesen Objekten der Breite des Autos befinden sich i.a. hindernisfreie Lücken,
// das Objekte mit dem eigtl. Hindernis sowie andere Objekte mit anderen Personen etc.
allObjects.sort( value ); // alle Objekte werden nach ihren jeweiligen Wert sortiert
target = allObjects.front(); // das Objekt mit dem niedrigsten Wert wird zum Ziel erklärt
setDirection( target ); // die neue Richtung des Autis wird auf dieses Ziel ausgerichtet
...
}
Der Algorithmus ist sehr allgemein. Objekte können z.B. beliebigen Inhalt haben, d.h. der Algorithmus funktioniert sogar für den Normalfall, in dem nichts zu tun ist, oder bei dem Ausweichen problemlos möglich ist, oder bei dem z.B. recht gefahrlos in den Straßengraben gesteuert werden kann.
Der Knackpunkt steckt einzig und allein in der Bewertungsfunktion
value(), die jedem Objekt einen Wert zuweist.
Eine Lücke hat z.B. den Wert 0; die geradeaus erreichbare Lücke sogar den Wert -1, so dass bei freier Fahrt immer "geradeaus" gewählt wird. Der Straßengraben erhält +1 (ganz ohne Gefahr ist das nicht für den Insassen), ein Hund erhält +10 (lieber doch in den Straßengraben fahren). Eine Maus erhält 0 (unnötigerweise Ausweichen bedeutet eine Gefahr für die Insassen). usw.
Interessant wird's erst, wenn keine Objekte ohne Menschen, ohne andere Autos und ohne weitere Hindernisse vorhanden sind. Nehmen wir an, der Algorithmus erkennt neben dem ursprünglichen Hindernis - einem Kind - noch ein entgegenkommendes Fahrzeug. Das Kind erhält den Wert +1000 (entspr. 100 Hunde). Das Fahrzeug erhält den Wert +1500, weil im Schnitt 1.5 Personen in einem Fahrzeug sitzen. In diesem Fall würde der Algorithmus nicht ausweichen und das Kind überfahren.
Die Techniker weisen darauf hin, dass das entgegenkommende Fahrzeug eine Knautschzone hat und die Insassen schützt. Der Programmierer ändert daraufhin nach Anweisung den Wert auf +750. Nun würde der Algorithmus ausweichen und das entgegenkommende Fahrzeug rammen.
Ein Jahr später ist eine präzisere Bilderkennung auf dem Markt. Sie erkennt in dieser Situation, dass das entgegenkommende Fahrzeug ein Smart mit praktisch Null Knautschzone ist mit genau einem Insassen ist. Der Wert wird konsequenterweise auf +1000 geändert, also dem selben Wert wie für das Kind.
Im Test stellt sich dann heraus, dass die Sortierfunktion nicht eindeutig ist, wenn zwei identische Bewertungen vorliegen. In diesem Fall spielt die Reihenfolge der Erkennung der Objekte eine maßgebliche Rolle. Z.B. werden Objekte von rechts nach links sortiert: ein von rechts auf die Straße springendes Kind wird ausgewählt und überfahren, bei ein von links kommendes Kind wird stattdessen der Smart gewählt. Die Software erhält zunächst keine Zulassung.
Gutachter stellen dann jedoch fest, dass die neue Software zwar ein unklares Verhalten aufweist, jedoch statistisch gesehen dennoch korrekt funktioniert. Die Software erhält für diesen Fall einen Zufallsgenerator und wird zugelassen.
Nach mehreren Unfällen klagen Hinterbliebene bis vor das Bundesverfassungsgericht. Dieses verbietet grundsätzlich die Abzählung und Aufrechnung von Menschenleben, in verschiedenen Varianten, und verweist die Detailklärung an das Parlament.
Aufgrund der Rechtsunsicherheit nimmt der Hersteller die Software vom Markt; in der Folge sterben wieder deutlich mehr Fußgänger im Straßenverkehr.
Man kann sich beliebige Stories ausdenken. Die zentrale Flage lautet immer: wer legt wie die Bewertungsfunktion
value() fest, und nach welchen übergeordneten rechtsstaatlichen Kriterien oder ethischen Grundsätzen?
Softwaretechnisch ist das einfach; und auch wenn man deutlich kompliziertere Analysen der Situation der durchführen kann und muss, ist das beherrschbar. Letztlich läuft es darauf hinaus, in einem Gesetz Rahmenbedingungen festzulegen, entsprechend derer die Hersteller die Werte vergeben - dann gäbe es konkurrierende Bewertungsfunktionen - oder im Gesetz die konkreten Zahlenwerte aufzuschreiben - dann wäre die Bewertungsfunktion eindeutig.