- Je vergelijkt gemiddelde en slechtste bekende schade zonder scenario’s met gewicht nul te verbergen.
- Je kiest alleen geschikte kandidaten binnen een expliciete grens en bewaart geen-keuze als betekenisvolle uitkomst.
Een assistent handelt gewone verzoeken snel af. Bij één uitzonderlijk verzoek kan dezelfde aanpak echter veel schade opleveren. Een fraai gemiddeld resultaat helpt weinig als dat ene scenario buiten beeld blijft.
Denk aan een proefrit met verschillende wegdelen. Een gemiddelde verbergt een gevaarlijke bocht wanneer rechte stukken zwaar meetellen. Je wilt de losse situaties zien voordat je beslist welke aanpak verantwoord lijkt.
In deze oefening staan nut en mogelijke schade in twee afzonderlijke tabellen. Beide bevatten verzonnen scores tussen nul en één. Het zijn geen gemeten kansen, medische beoordelingen of voorspellingen over een echt systeem.
1. Bewaar de losse scenario’s
De eerste rij is een routineverzoek en de tweede een uitzondering. Actie nul voert direct uit; actie één controleert eerst. Direct uitvoeren heeft nut 0,9 in beide rijen, maar schade 0,05 bij routine en 0,8 bij de uitzondering.
Controleren heeft telkens nut 0,6 en schade 0,1. Een hogere nutscore is beter; een hogere schadewaarde is ongunstiger. Die twee richtingen houd je zichtbaar apart.
utility = [[.9,.6],[.9,.6]]
harm = [[.05,.1],[.8,.1]]
report = scenario_profile(
utility,harm,[0,0],[1.,0.])
print(report['mean_harm'])
print(report['worst_harm'])
print(report['worst_contexts'])
# 0.05
# 0.8
# [1]
Het tweede scenario krijgt in dit gemiddelde gewicht nul. Toch blijft zijn schadewaarde 0,8 aanwezig en is zijn rij-index één het slechtste bekende geval. De gewichten beschrijven hier de gemiddelde achtergrond; zij bepalen niet welke gedeclareerde scenario’s je controleert.
Vergelijk vaste kandidaten op dezelfde bekende scenario’s. De achtergrond verandert gemiddelden; de hoogste schade blijft over alle opgegeven scenario’s berekend.
De gecombineerde kandidaat kan de routine direct afhandelen en de uitzondering controleren.
Eerst maximale schade ≤ 0,2, daarna hoogste gemiddelde nut. Geschikt in inputvolgorde: p1, p2.
Groen is gemiddeld nut, oranje is hoogste bekende schade. De gestreepte lijn markeert de grens; een hoger nut kan een te hoge schade niet goedmaken.
p0boven grens
Acties per context: 0, 0. Slechtste context: 1.
- Nut
- 0,9
- Gem. schade
- 0,05
- Max. schade
- 0,8
| Context | Nut | Schade | Gewicht |
|---|---|---|---|
| 0 | 0,9 | 0,05 | 1 |
| 1 | 0,9 | 0,8 | 0 |
p1binnen grens
Acties per context: 1, 1. Slechtste contexten: 0, 1.
- Nut
- 0,6
- Gem. schade
- 0,1
- Max. schade
- 0,1
| Context | Nut | Schade | Gewicht |
|---|---|---|---|
| 0 | 0,6 | 0,1 | 1 |
| 1 | 0,6 | 0,1 | 0 |
p2gekozen
Acties per context: 0, 1. Slechtste context: 1.
- Nut
- 0,9
- Gem. schade
- 0,05
- Max. schade
- 0,1
| Context | Nut | Schade | Gewicht |
|---|---|---|---|
| 0 | 0,9 | 0,05 | 1 |
| 1 | 0,6 | 0,1 | 0 |
Gelijkheid aan de schadegrens telt mee. Bij gelijk nut volgen lagere maximale schade, lagere gemiddelde schade en de lexicografisch kleinste id. Een nieuw, niet opgegeven scenario kan andere gevolgen hebben.
Nut en schade zijn verzonnen scores, geen gemeten kansen. De grens geldt alleen voor de gedeclareerde scenario’s en kandidaten. Herkomst van rapporten en veiligheid in onbekende situaties zijn hiermee niet bewezen.
Noem het nut u_i, de schade h_i en de genormaliseerde achtergrondgewichten α_i. Je berekent twee gemiddelden, maar bewaart daarnaast de hoogste schade H over alle bekende scenario’s. De hoogste schade hoeft geen vaak voorkomend geval te zijn.
012. Vergelijk vaste kandidaatgedragingen
Een beleid (policy) geeft in deze tabel voor iedere context één actie op. Je vergelijkt drie vaste kandidaten: altijd direct uitvoeren, altijd controleren en routine direct afhandelen terwijl je de uitzondering controleert. Er wordt niets getraind of uitgevoerd buiten deze tabellen.
policies = [[0,0],[1,1],[0,1]]
rows = compare_candidates(
utility,harm,policies,[1.,0.])
for row in rows:
print(row['id'],
row['mean_utility'],
row['worst_harm'])
# p0 0.9 0.8
# p1 0.6 0.1
# p2 0.9 0.1
Kandidaat p0 en p2 hebben hetzelfde gemiddelde nut 0,9. Hun slechtste bekende schade verschilt sterk: 0,8 tegenover 0,1. Alleen op het gemiddelde nut rangschikken zou dat belangrijke onderscheid missen.
023. Leg een grens vast vóór de nutsrangschikking
Kies expliciet welke hoogste schadewaarde je in deze oefening toestaat. Noem die grens τ. Een kandidaat komt alleen in aanmerking wanneer zijn slechtste bekende schade H hoogstens τ is; gelijkheid telt mee.
Met grens 0,2 valt p0 af. Van p1 en p2 kies je daarna het hoogste gemiddelde nut: p2 wint met 0,9. Bij gelijke nutsscores volgt eerst lagere slechtste schade, daarna lagere gemiddelde schade en ten slotte de lexicografisch kleinste id.
choice = choose_guarded(rows,.2)
print(choice['chosen_id'])
print(choice['eligible_ids'])
# p2
# ['p1', 'p2']
03Je filtert dus vóór de nutsvergelijking. Eerst de nuttigste kandidaat kiezen en hem achteraf goedpraten met een gemiddelde is een andere beslisregel. De grens en de verzameling scenario’s blijven zichtbare ontwerpkeuzes.
Geen keuze is een betekenisvolle uitkomst
Verlaag de grens naar nul. Geen kandidaat voldoet, dus de functie geeft geen gekozen id: None. Bij grens 0,1 voldoen p1 en p2 precies; de gelijkheidsgrens sluit ze niet uit.
strict = choose_guarded(rows,0.)
boundary = choose_guarded(rows,.1)
print(strict['chosen_id'])
print(boundary['chosen_id'])
# None
# p2
None betekent dat je onder deze afspraken geen automatische keuze hebt. Je kunt het verzoek laten beoordelen, extra gegevens verzamelen of de kandidaatgedragingen verbeteren. Een ontbrekende keuze vervangen door de nuttigste afgewezen kandidaat zou de afgesproken grens opheffen.
Waar deze beoordeling ophoudt
De maximumcontrole omvat alleen de opgegeven scenario’s. Een nieuw type verzoek of veranderende omgeving kan andere gevolgen hebben. Geen schade boven de grens in deze tabel bewijst daarom geen algemene veiligheid; beperkte bevoegdheden, toezicht en nieuwe evaluaties blijven nodig.
De selectiefunctie accepteert ook aangeleverde kandidaatrapporten. Zij controleert hun structuur en gedeclareerde getallen, maar bewijst niet dat iemand de tabellen werkelijk heeft doorgerekend. Wie de schadecriteria bepaalt en welke mensen vertegenwoordigd zijn, blijft bovendien een bestuurlijke vraag.
Wat je nu kunt
- Je bewaart nut, gemiddelde schade en slechtste bekende schade afzonderlijk.
- Je past een expliciete grens toe voordat je op nut rangschikt.
- Je herkent geen-keuze en beperkt conclusies tot de gedeclareerde scenario’s.
Hierna verbind je zulke ontwerpkeuzes aan verantwoordelijkheid, documentatie en toezicht.