-
Notifications
You must be signed in to change notification settings - Fork 5
/
newcomb-edt.py
executable file
·64 lines (47 loc) · 1.27 KB
/
newcomb-edt.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python3
import random
twoboxsampleutility=0;
twoboxsamples=0;
oneboxsampleutility=0;
oneboxsamples=0;
samples=0;
while(oneboxsamples<100 and twoboxsamples<100):
algorithm = random.choice(["twobox","onebox"])
if algorithm == "twobox":
output="twobox"
else:
output="onebox"
if output=="twobox":
omega="empty"
else:
omega="fill"
if output=="twobox":
action="twobox"
else:
action="onebox"
if action=="twobox":
if omega=="fill":
utility=1001000
else:
utility=1000
else:
if omega=="fill":
utility=1000000
else:
utility=0
samples=samples+1
print("algorithm: ", algorithm, "output:", output, "omega:",omega, "action", action, "utility", utility)
if (action=="twobox"):
twoboxsampleutility+=utility
twoboxsamples+=1
else:
oneboxsampleutility+=utility
oneboxsamples+=1
oneboxutility=oneboxsampleutility/oneboxsamples
twoboxutility=twoboxsampleutility/twoboxsamples
print ("onebox: ", oneboxutility)
print ("twobox: ", twoboxutility)
if (oneboxutility>=twoboxutility):
print ("Recommend oneboxing")
else:
print ("Recommend twoboxing")