In [1]:
using NetworkDiscovery
using POMDPs
using POMDPToolbox
# using TikzGraphs
rng = MersenneTwister(1);

In [2]:
p_intra = 0.3;
p_inter = 0.01;

In [10]:
nw = generate_network(rng, 100, 5, p_intra, p_inter)


Out[10]:

In [11]:
pomdp = generate_problem(rng, nw, 5, 1, 100.0, 4, 4, p_intra, p_inter)


Out[11]:
CommunityAffiliationPOMDP(5,1,100.0,CommunityNetwork({100, 358} undirected graph,5,[2,1,4,5,2,2,2,4,1,3  …  4,5,1,2,1,4,4,5,5,1],5),Set{Int64}({69,72,28,62,59,96,6}),Set{Pair{Int64,Int64}}({edge 62 - 69,edge 59 - 69,edge 28 - 96,edge 6 - 72}),[69=>1,62=>1],0.3,0.01)

In [12]:
policy = DiscoveryHeuristic(ProbeHighestDegree(true), GuessBasedOnNeighbors(rng))


Out[12]:
DiscoveryHeuristic(ProbeHighestDegree(true),GuessBasedOnNeighbors(MersenneTwister(DSFMT_state(Int32[-2116684350,1073592371,-1002815712,1072958173,1127321402,1072908243,425031439,1073294053,-718851155,1073669453  …  1028740329,1073712126,654723670,1072828027,1939801813,1517190547,1307050805,1210268611,186,0]),Uint32[0x00000001])))

In [13]:
revealed = initial_belief(pomdp)


Out[13]:
RevealedGraph(Set{Pair{Int64,Int64}}({edge 62 - 69,edge 59 - 69,edge 28 - 96,edge 6 - 72}),[[],[],[],[],[],[72],[],[],[],[]  …  [],[],[],[],[],[28],[],[],[],[]],Set{Int64}({69,72,28,62,59,96,6}),[69=>1,62=>1],Set{Int64}({}),5,0.3,0.01,5)

In [14]:
sim = HistoryRecorder(rng=rng, initial_state=nw, initial_belief=revealed)
simulate(sim, pomdp, policy)


Out[14]:
0.0

In [15]:
sim.action_hist


Out[15]:
6-element Array{Any,1}:
 ProbeNode(1)       
 ProbeNode(69)      
 ProbeNode(47)      
 ProbeNode(81)      
 ProbeNode(42)      
 GuessAffiliation(1)

In [16]:
nw.labels[1]


Out[16]:
2

In [ ]: