Monty Hall paradox (driedeurenprobleem)

Het driedeurenprobleem is een leuke brain teaser die gaat over een onlogisch klinkende kansberekening. Mensen zijn denk ik van nature niet goed in statistiek en abstract denken, waardoor dit een breinkraker kan zijn. Ik hoorde er 10 jaar geleden voor het eerst over en denk dat ik het nog steeds niet helemaal snap.

De stelling

Stel dat er een spelshow is waarin je als deelnemer kunt kiezen tussen drie deuren. Achter één willekeurige deur bevindt zich de hoofdprijs, achter de andere twee deuren niets.

Nadat je bijvoorbeeld deur drie gekozen hebt, elimineert de presentator van de spelshow één van de andere deuren waarachter de prijs zich niet bevindt. Laten we zeggen deur twee.

Deur één en drie zijn nu over. Je krijgt nu de mogelijkheid om bij je initiële keuze te blijven of te wisselen naar deur één. Is het verstandig om je keuze te wijzigen?

Je zou denken dat je 50/50 kans hebt of je nou wisselt of niet, er zijn immers maar twee deuren over. Het blijkt statistisch gezien echter dat de andere overgebleven deur een kans heeft van 2/3 op de hoofdprijs en je initiële keuze slechts 1/3. Het is dus verstandig om altijd te wisselen van deur.

Of je vindt dit super logisch en dan ben je misschien wel net zo geniaal als Marilyn vos Savant, of je bent misschien ‘mind blown’ zoals ik. Het blijft lastig te beredeneren waarom dit zo is, maar het is wel simpel te simuleren met een stukje Python-code:

import random


def open_a_door(contestant_switches_door):
    # Define 3 doors and put a prize behind one of them
    doors = [0, 0, 0]
    door_with_prize = random.randint(0, 2)
    doors[door_with_prize] = 1

    # Pick a door number as the contestant
    door_chosen = random.randint(0, 2)

    # Determine doors that can be eliminated by the host and randomly select one
    doors_in_play = [door_chosen, door_with_prize]
    doors_that_can_be_eliminated = [door_number 
                                    for door_number, door in enumerate(doors) 
                                    if door_number not in doors_in_play]
    door_eliminated = random.choice(doors_that_can_be_eliminated)

    # Door that the contestant can switch to
    non_switchable_doors = [door_eliminated, door_chosen]
    door_to_switch_to = [door_number 
                        for door_number, door in enumerate(doors) 
                        if door_number not in non_switchable_doors][0]

    # Return the result of the contestant choice when either switching doors or staying with the original choice
    return doors[door_to_switch_to] if contestant_switches_door else doors[door_chosen]

# Simulate a 1000 attempts where the contestant has switched doors which leads to 2/3 chance:
results = [open_a_door(contestant_switches_door=True) for i in range(1000)]
correct_attempts = sum(results)
print('Times picked right when switching door: ', correct_attempts)

# And the other way around it ofcourse means 1/3 chance of being right:
results = [open_a_door(contestant_switches_door=False) for i in range(1000)]
correct_attempts = sum(results)
print('Times picked right when staying with initial choice: ', correct_attempts)

Als je dit uitvoert in een Python interpreter (bijv. online door te zoeken naar ‘Python3 REPL’) dan zul je zien dat het resultaat ongeveer het volgende is bij 1000 iteraties:

Times picked right when switching door:  666
Times picked right when staying with initial choice:  337

De kans van je initiële keuze is dus inderdaad maar 1/3 ten opzichte van de overgebleven deur die een 2/3 kans heeft.

Wikipedia kan je beter uitleggen waarom dit precies zo is. De sleutel is dat je initiële keuze is gemaakt met 1/3 kans en dat daarna de presentator een deur elimineert die geen prijs bevat wat je kans vergroot om nogmaals beter te kiezen.

Dus het klopt, maar voor mij voelt het nog steeds niet helemaal logisch. Ik heb het maar geaccepteerd als zijnde een feit, en jij?

Update: naar aanleiding van opmerkingen op tweakers.net heb ik 2 manieren van uitleggen bijgevoegd

Uitleg 1

Er zijn eigenlijk 3 startsituaties:

Situatie#1: 33% kans dat je goed kiest

Situatie#2: 33% kans dat je fout kiest

Situatie#3: 33% kans dat je fout kiest

In zowel situatie #2 en #3 zal de presentator de enige andere foute deur elimineren. Dus als je dan wisselt dan kies je goed. Alleen in situatie #1 zal het wisselen van deur verkeerd uitpakken.

Dus eigenlijk zijn er 2/3 meer situaties waarin je zult winnen bij het wisselen. Volgens mij legt Wikipedia het ook zo uit, maar dat landde nog niet direct. Nu klinkt het ineens heel logisch voor mij. Los van de voorbeelden die zijn genoemd met meerdere deuren.

Uitleg 2

Je kunt het voor jezelf logischer maken door het aantal deuren te vergroten: in plaats van drie, zijn er tien. Je kiest een deur en dus blijven er negen over. Van die negen, opent Monty er acht en laat zien dat er niets achter zit. Wat denk je, ga je wisselen?

AMD Fidelity FX Super Resolution in ‘The RiftBreaker’

AMD heeft kortgeleden een nieuwe upscaling methode vrijgegeven genaamd ‘Fidelity FX Super Resolution’. Dit heeft als doel de framerate van games te verbeteren door op een lagere resolutie te renderen en het beeld vervolgens te upscalen. Dit is in een zeer beperkt aantal spellen beschikbaar, waaronder The RiftBreaker demo.

Zie hier een vergelijking van een aantal opties:

Wat opvalt is hoe goed de ‘Sharpening’ variant er uit ziet. Persoonlijk ben ik een fan van (te) scherp beeld. Je zou kunnen beredeneren dat het onnatuurlijk is. Sharpening is op dit moment nog niet te combineren met Super Resolution. Mogelijk wel af te dwingen in de videokaart driver. Dit zou voor mij de beste combinatie zijn denk ik.

Het verschil tussen ‘Standaard’ en ‘Ultra Quality’ is amper zichtbaar. Het verschil tussen ‘Standaard’ en ‘Quality’ begint zichtbaar te worden in de vorm een waziger beeld.

Hoewel het verschil tussen ‘Standaard’ en ‘Ultra Quality’ amper zichtbaar is, is de FPS boost wel enorm:

OptieFrameratePercentage t.o.v. ‘Standaard’
Standaard97 fps100%
Standaard + Sharpening94 fps96,91%
Super Resolution: Ultra Quality135 fps139,17%

In conclusie vind ik het een interessante techniek wanneer je hardware tekort schiet voor de beoogde framerate. In de toekomst is het interessant om deze nog eens te vergelijken met Nvidia’s DLSS 2.x, welke gebruik maakt van vorige en volgende beelden om tot een beter resultaat te komen (temporal feedback).

Chrome en privacy gaan echt niet samen

Het is algemeen bekend dat Google veel info verzamelt, maar ken je deze Chrome instelling?

Je vind deze instelling niet onder ‘Privacy and Security’, maar onder ‘Sync and Google services’. Deze link zorgt ervoor dat de link van iedere bezochte pagina (incognito vensters uitgesloten) wordt verstuurt naar Google. Dus ook pagina’s die helemaal geen Google zaken draaien zoals analytics of fonts.

Dit is wat Google er zelf over heeft te melden:

“Make searches and browsing better / Sends URLs of pages you visit to Google”, then Chrome usage statistics include information about the web pages you visit and your usage of them. If you have enabled Chrome sync, Chrome may combine any declared age and gender information from your Google account with our statistics to help us build products better suited for all demographics.

Gelukkig kun je deze setting uitschakelen. Alleen nu wordt het nog mooier want deze setting wordt niet gesynced! Deze staat standaard ingeschakeld en zul je op ieder apparaat waar je inlogt op Chrome opnieuw moeten uitschakelen.

Waarom is er zoveel ophef over tracking en FLOC maar niet over dit soort instellingen? Het gaat Google in de basis niets aan welke pagina’s je allemaal bezoekt. Hooguit waar je op zoekt binnen de zoekmachine en waar je dan op klikt.

Doe jezelf een plezier en gebruik bijvoorbeeld Firefox.

Opnieuw leren typen

Het zat me al enige tijd dwars dat ik niet volledig met 10 vingers kon typen. Met name omdat ik gemiddeld genomen toch wel 10 uur per dag achter een PC zit en er heel wat vanaf tik. Ik merk dat ik bij lange stukken tekst vermoeide handen krijg.

Toen ik het er recent met mn vrouw over had, besloot ik even te kijken op hoeveel aanslagen per minuut ik zat via 10fastfingers. Rond de 450 aanslagen per minuut en blind. Niet slecht. Maar mijn vrouw ging daar met gemak over heen. Wat me vooral op viel is het gemak waarmee ze tikte vergeleken met mijn drukke handbewegingen.

Omdat ik nog wat jaren te gaan heb, leek het me tijd om opnieuw te leren typen (en zodat ik straks hopelijk sneller kan tikken dan mijn vrouw 😁).

De correcte manier van typen

Mensen die een typecursus hebben gehad herkennen het volgende misschien. Het is een schematische weergave van de vingers die je gebruikt voor iedere toets.

Mijn techniek

Zie hieronder de manier waarop ik tik. Het is iets wat langzaam is ontstaan over de jaren. Het is een stuk beter dan het typen met 2 vingers, maar haalt het niet bij het typen met 10 vingers.

‘techniek’ is misschien niet het beste woord om dit te omschrijven
  • Bij sommige toetsen zoals D gebruik ik soms de wijs- en soms de middelvinger
  • De scheiding voor de linker- en rechterhand ligt verkeerd
  • Links wordt de pink amper gebruikt
  • Recht worden de ringvinger en pink niet gebruikt

Wat me met name dwars zat was de inconsistentie door meerdere vingers soms voor dezelfde toets te gebruiken. Ik maakte daardoor zo nu en dan een tikfout. Daarnaast de inefficiëntie van met name de rechterhand waarbij ik voornamelijk 2 vingers gebruikte en wat voor vermoeide polsen zorgde.

Opnieuw leren typen

In de afgelopen 2 weken heb ik mezelf opnieuw leren tikken. Een soort van cursus leek me het beste. Ik kwam al snel uit bij gratislerentypen.nl (ben toch een Nederlander hè). Deze site leert je geleidelijk aan de toetsen met de juiste vingers in te drukken. Eerst enkele toetsen en daarna geleidelijk meer. Dat leek me een prima start.

De eerste uren gingen goed, maar ik raakte al snel een beetje gedemotiveerd. De gewoontes lieten zich maar niet afleren en de motoriek van tot nu toe niet gebruikte vingers leek volledig afwezig. Echter na nog 10 uurtjes oefenen had ik alle vingers gehad en kon ik in slakkentempo blind tikken met 10 vingers. Vanaf dat punt heb ik besloten om alles op die manier te blijven typen, hoe langzaam dat ook was.

Na nog een weekje oefenen ben ik al helemaal over. Het typetempo lag op slechts 50-60 aanslagen per minuut toen ik net alle 10 vingers correct kon gebruiken. Dat is na een extra week tijd al een acceptabele 300 aanslagen per minuut geworden. Het was hier en daar even doorbijten, maar al met al was het een meevaller eigenlijk! Het voelt nog niet volledig vertrouwd, maar wordt hopelijk in de komende tijd nog beter.

PC gaming op WiFi

Getriggerd door de titel? PC gamen op WiFi is toch een beetje als vloeken in de kerk.

Ik ben al een fanatiek gamer vanaf mn 14e, dus ongeveer 20 jaar nu. Begonnen met deze klassiekers:

  • Quake 2 (rail only!)
  • Counter Strike 1.6
  • Unreal Tournament 99
  • Battlefield 1942

Ik speelde toen, en nu nog steeds, voornamelijk FPS games. Het soort spellen waar een lage ping erg belangrijk is. Ethernet was de standaard om je PC aan te sluiten op je netwerk en WiFi werd nog amper gebruikt. De inmiddels sterk verouderde (maar nog steeds gebruikte!) 802.11g standaard bestond toen nog maar net en niemand gebruikte het. Mobiele telefoons waren toen nog gewoon telefoons. WiFi had in de jaren daarna, vooral vergeleken met ethernet, toch de reputatie om onbetrouwbaar en sloom te zijn. Vooral binnen PC-gaming communities.

Echter recent heb ik mijn PC verplaatst naar een kamer waar ik geen ethernet-kabel op redelijke manier kan krijgen. Dan zou ik gootjes langs randen van kamers moeten leggen en door de gang en dat wil ik niet. Dus ik had 2 alternatieven en dat zijn WiFi en Powerline.

nostalgie uit 2003, mijn game stekkie

Powerline

Powerline adapters

Dit is de makkelijkste optie. Je prikt 1 adapter bij je modem in het stopcontact en eentje bij je PC en je bent klaar. De betrouwbaarheid van deze apparaten zijn erg afhankelijk van je thuissituatie. Op dezelfde stroomgroep en met aarde draad werken ze het beste. Daarnaast wil je apparaten die veel ruis veroorzaken proberen te vermijden zoals sommige dimmers en stofzuigers e.d. Daardoor kan de snelheid van de verbinding drastisch zakken.

Na wat onderzoek kwam ik echter snel een aantal teleurstellende latency benchmarks tegen, wat toch wel een van de belangrijkere criteria is bij het online gamen. Een goed setje kost ongeveer 150 euro.

WiFi

Ik was redelijke optimistisch over 802.11AC (ook wel bekend als WiFi 5). De laatste 7 jaar gebruik ik een Asus RT-AC68U router voor alle mobiele apparaten en het viel me op dat deze extreem stabiel is gebleken en vrijwel nooit haperingen in de verbinding had.

Deze router staat op dit moment in de kamer naast het kantoor in AP-mode (access point). Dit is op een afstand van 5 meter met een enkele (gewapend) betonnen muurtje van 10cm dik ertussen. De AP loopt met een kabel naar de meterkast beneden en is daar aangesloten op de modem/router.

Ik zou dus alleen een WiFi-adapter voor de PC nodig hebben om dit te kunnen testen. Dus ik heb besloten een Gigabyte GC-WBAX200 te kopen.

De Gigabyte GC-WBAX200 is een van de nieuwere adapters met ondersteuning voor WiFi 6 (en bluetooth) en is te koop voor 43 euro
Mijn Asus RT-AC68U 802.11AC router (in Access Point mode) die erg betrouwbaar is gebleken

En is ‘t wat?

Ik heb em inmiddels al meer dan een half jaar in gebruik en ben er erg tevreden over. Gedurende die tijd heb ik deze spellen (shooters/FPS) gespeeld: Deep Rock Galactic, Hell Let Loose, Battlefield 5 en Rainbow Six: Siege. Zelf kon ik geen verschil merken vergeleken mijn vorige 20 jaar waarbij ik met een bekabelde verbinding heb gespeeld.

M’n ping is vaak nog een van de laagste in de gemiddelde game lobby. Dat suggereert dat de internetverbinding (ik heb 100/100 glasvezel) van grotere invloed is.

een ping van 13ms in Battlefield 5 en nog steeds een negative k/d, ouch

Naast de ping heb ik ook geen haperingen gemerkt of een kort wegvallende verbinding. Ook in Discord game streaming of gesprekken wat tijdens het gamen gebeurt. Maar misschien ben ik wel te oud om het te merken? Ik heb het daarom geprobeerd te meten.

Testen van de doorvoersnelheid

Voorafgaand aan het testen is gecontroleerd dat de WiFi-band alleen door mijzelf in gebruik was en dat er geen andere clients op actief waren of buren. De breedte van de band is 40mhz. Deze staat op auto ingesteld en kan 20, 40 of 80 zijn. De router bepaalt de breedte vermoedelijk a.d.h.v. het aantal andere 5ghz netwerken in de buurt, waar er een aantal van zijn in mijn geval.

De snelheid is getest tussen 2 PC’s waarvan de ander is verbonden met gigabit ethernet. Eentje draait de Passmark server en de ander de client.

Bedraad met UDP-verkeer haalt nog niet helemaal de gigabit snelheid. Geen idee waarom, maar ik beschouw dit als uitgangspunt.

WiFi heeft een aardige dip richting het einde, maar de gemiddelde snelheid is redelijk indrukwekkend.

Voor de volledigheid de grafieken voor het TCP-verkeer. WiFi heeft daar ook weer een dip richting het einde.

De stabiliteit van de verbinding

De doorvoersnelheid is niet zo belangrijk bij PC-gaming, maar de stabiliteit van de verbinding wel. Uit eerdere ervaringen bleek al dat de ping erg laag kan zijn, maar ik heb nooit gemeten of er ook korte haperingen plaatsvinden.

Hier volgt een grafiek waarin 5 minuten lang iedere seconde een ping gedaan wordt. Dit is gedaan met een ethernetkabel die opnieuw wordt gebruikt als het uitgangspunt. De pings gaan naar het Access Point (de eerste ‘hop’)

ethernet heeft telkens 0ms (lees als minder-dan-1ms) voor iedere 300 pings, perfectie
802.11AC heeft 2 kleine haperingen

De pieken kunnen verbeterd worden door gebruik te maken van WLAN optimizer. Die schakelt het periodiek scannen naar andere WiFi netwerken uit. Dit is vermoedelijk de veroorzaker van de pieken.

WLAN optimizer
802.11AC met WLAN optimizer ingeschakeld

Het lijkt te werken, maar kan ook toeval zijn. Ik laat het iniedergeval maar ingeschakeld. Je moet ook een beetje genieten van het Placebo-effect he?

Het grootste nadeel dat WiFi heeft is dat andere apparaten uit je eigen netwerk of die van buren (op dezelfde band) om de beurt wachten om te zenden/ontvangen. Dit heb ik gesimuleerd door een laptop een 4k filmpje te laten streamen vanaf Youtube.

Apparaten op dezelfde frequentieband lijken inderdaad voor haperingen te zorgen. Maar om het in perspectief te zetten, het gaan hier om slechts 25ms~.

Conclusie

De snelheid en ping van de draadloze verbinding zijn verassend goed. De gemiddelde ping is gemiddeld genomen slechts 1ms hoger dan bedraad.

Er is nog wel ruimte voor verbetering wanneer andere apparaten op dezelfde frequentie-band actief zijn. De pieken in de ping van 25ms vergeleken met de meer typische 1ms zijn een beetje teleurstellend. We hebben het in echter nog steeds over een worst-case scenario waarbij de ping onder de 40ms blijft (bij het gamen over internet). Deze pieken zijn circa 1-2% van de tijd aanwezig. Nog steeds acceptabel als je het mij vraagt.

Deze pieken die veroorzaakt worden door externe factoren zijn helaas niet te voorkomen bij WiFi. Powerline heeft hier het voordeel. Je hebt geen last van externe storing en apparaten die ruisveroorzaken kun je eventueel aanpassen. Zou nog interessant kunnen zijn om uit te proberen. Wat betreft WiFi lijkt er ietwat verbetering aan te komen met WiFi 6 (802.11ax). Daar zorgen eigen apparaten op dezelfde band vermoedelijk voor minder congestie en dus een betere ping.

Maar als je dan toch WiFi gebruikt dan zou ik het volgende aanraden:

  • gebruik WLAN optimizer
  • zorg voor een sterk signaal naar de Access Point
  • gebruik een rustige band. Voornamelijk voor minimaal 802.11ac te gebruiken want de 5ghz band is vaak al wat rustiger
  • sluit niet teveel andere apparaten aan op hetzelfde AP als dat mogelijk is

Ik heb packet loss en QoS (quality of service) niet besproken. Beiden ook interessant en zeer relevant, maar dit artikel is al iets langer dan ik voor ogen had.

CPU-belasting in spellen

  • Post category:PC gaming

Uit interesse volg ik al een tijdje het CPU-verbruik tijdens het gamen. Ik was benieuwd naar de verschillen tussen oudere en nieuwere spellen en de engines die ze gebruiken.

De screenshots zijn gemaakt tijdens doorsnee in-game scenario’s op 1440p en 144hz. Het is niet op een accurate manier gemeten en heeft ook niet als doel iets te bewijzen. Een deel van de screenshots is tevens met een RTX 3070 gemaakt en het andere deel met een Vega 64.

Een aantal bevindingen:

  • GTA 5 en Destiny 2 gebruiken precies 6 threads. Vermoedelijk omdat deze titels primair gemaakt zijn voor de vorige generatie consoles (Xbox One en Playstation 4), waar ontwikkelaars 6 cores/threads hadden om mee te werken.
  • Spellen met moderne engines maken perfect gebruik van alle cores/threads zoals Doom 2016 (idtech6 engine), The Division 2 (snowflake engine) en Battlefield 5 (frostbite engine)
  • Battlefield 5 is tot nu toe het enige spel in de laatste 3-4 jaar die m’n Intel 8700k bijna volledig weet te belasten