In [1]:
import matplotlib.pyplot as plt
import networkx as nx
import numpy as np
import dagology as dag
from plot_utils import *
In [2]:
%matplotlib inline
In [3]:
# define causal set sprinkling parameters
N = 200 # number of points
D = 2 # spacetime dimension
R_m = dag.minkowski_interval(N, D, fix_ends=False) # create coordinates in Minkowski spacetime
G_m = dag.causal_set_graph(R_m) # create graph
In [4]:
# de Sitter spacetime
KT2 = 3.5
R_ds = dag.de_sitter_interval(N, D, KT2, fix_ends=False)
G_ds = dag.causal_set_graph(R_ds)
In [5]:
# draw the causal sets
f, axs = plt.subplots(1, 2, figsize=(16,8))
for i, G in enumerate([G_m, G_ds]):
draw_pos = {i:G.node[i]['position'][::-1] for i in range(N)}
nx.draw(nx.transitive_reduction(G), pos=draw_pos, ax=axs[i], node_size=100)
In [12]:
names = ['Minkowski spacetime', 'de Sitter spacetime']
for i, G in enumerate([G_m, G_ds]):
print names[i]
N = G.number_of_nodes()
print 'N: ', N
print 'E: ', G.number_of_edges()
print 'LP: ', len(nx.dag_longest_path(G))
for k in [2,3,4]:
C_k = dag.count_chains(G, k)
print 'C_%s: %s' % (k, C_k)
print 'MMD_%s: %s' % (k, dag.mmd_estimate(C_k, k, N))
print 'MPSD: %s' % dag.mpsd(G)
print '\n\n'
In [13]:
# measure curvature
for i, G in enumerate([G_m, G_ds]):
print names[i]
N = G.number_of_nodes()
print 'N: ', N
chains = [N]
for k in [2,3]:
C_k = dag.count_chains(G, k)
chains.append(C_k)
print dag.de_sitter_param_estimate(chains, initial_guess=)
print '\n\n'
In [15]:
print dag.de_sitter_param_estimate.__doc__
In [ ]: