Repository navigation
Expand file tree
/
Copy pathtest_msg.py
More file actions
57 lines (43 loc) · 1.39 KB
/
Copy pathtest_msg.py
File metadata and controls
57 lines (43 loc) · 1.39 KB
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
import ce
NUM_AGENTS = 100
NUM_TASKS = 100
msg_env = ce.MessageSender()
words = ["", "i", "r", "e", "s"]
def message_sending_task(num_msgs):
task = ce.DFA(
list(range(1 + num_msgs + 3)),
0,
[num_msgs + 1],
[num_msgs + 3],
[num_msgs + 2]
)
task.add_transition(0, "i", 1)
for w in set(words).difference(set(["i"])):
task.add_transition(0, w, 0)
for r in range(num_msgs):
task.add_transition(1 + r, "s", 1 + r + 1)
task.add_transition(1 + r, "e", num_msgs + 3)
for w in set(words).difference(set(["s", "e"])):
task.add_transition(1 + r, w, 1 + r)
for w in words:
task.add_transition(num_msgs + 1, w, num_msgs + 2)
task.add_transition(num_msgs + 2, w, num_msgs + 2)
task.add_transition(num_msgs + 3, w, num_msgs + 3)
return task
mission = ce.Mission()
dfa = message_sending_task(1)
#dfa.print_transitions()
mission.add_task(dfa)
scpm = ce.SCPM(mission, 1, list(range(2)))
w = [0., 1.]
eps = 0.00001
pi = ce.test_prod(scpm, msg_env, w, eps)
mission = ce.Mission()
for t in range(NUM_TASKS):
dfa = message_sending_task(t + 1)
mission.add_task(dfa)
scpm = ce.SCPM(mission, NUM_AGENTS, list(range(2)))
w = [0] * NUM_AGENTS + [1. / NUM_TASKS] * NUM_TASKS
eps = 0.00001
target = [-2000.] * NUM_TASKS + [0.2] * NUM_TASKS
tnew = ce.msg_experiment(scpm, msg_env, w, target, eps)