from core.agent import LinkedAgent, create_empty_agents, AbstractAgent
from core.market import Flow, Market, Balances
from core.model import Model
from core.utils import timeit
[docs]@timeit
def kamenev():
f = '/models/inputs/Kamenev_model/C2.tex'
A = AbstractAgent.read_from_tex(f)
A.process(skip_validation=True)
A.dump('/models/outputs/Kamenev_model')
[docs]@timeit
def kamenev2():
f1 = '/models/inputs/Kamenev_model/v2/Blim.tex'
f1_ = '/models/inputs/Kamenev_model/v2/Bfull.tex'
f1__ = '/models/inputs/Kamenev_model/v2/Bmanual.tex'
f2 = '/models/inputs/Kamenev_model/v2/Clim.tex'
f2_ = '/models/inputs/Kamenev_model/v2/Cfull.tex'
f2__ = '/models/inputs/Kamenev_model/v2/Cmanual.tex'
# B = LinkedAgent.read_from_tex(f1)
# B.process(skip_validation=True)
# B.dump('/models/outputs/Kamenev_model/v2')
# B_ = LinkedAgent.read_from_tex(f1_)
# B_.process(skip_validation=True)
# B_.dump('/models/outputs/Kamenev_model/v2')
B__ = LinkedAgent.read_from_tex(f1__)
B__.process(skip_validation=True)
B__.dump('/models/outputs/Kamenev_model/v2')
# C = LinkedAgent.read_from_tex(f2)
# C.process(skip_validation=True)
# C.dump('/models/outputs/Kamenev_model/v2')
# C_ = LinkedAgent.read_from_tex(f2_)
# C_.process(skip_validation=True)
# C_.dump('/models/outputs/Kamenev_model/v2')
C__ = LinkedAgent.read_from_tex(f2__)
C__.process(skip_validation=True)
C__.dump('/models/outputs/Kamenev_model/v2')
[docs]@timeit
def ramsay():
f = '/models/inputs/agent.tex'
A = LinkedAgent.read_from_tex(f)
A.process(skip_validation=True)
A.dump('/models/outputs/ramsay')
[docs]@timeit
def simple_agent():
from sympy import Function
from itertools import chain
f = '/models/inputs/Pmodel/H.tex'
A = LinkedAgent.read_from_tex(f)
A.process(skip_validation=True)
print(A.lagrangian)
print(A.Lagrangian)
print(A.phases)
print(A.transversality_conditions())
# A.dump('test/')
[docs]@timeit
def simple_linked_agents():
f = '/inputs/agent.tex'
A = LinkedAgent.read_from_tex(f)
A.process()
B = LinkedAgent.from_abstract(create_empty_agents('B'))
C = LinkedAgent.from_abstract(create_empty_agents('C'))
A.add_flow(Flow(A, C, 3, 'rub'))
B.add_flow(Flow(A, B, 6, 'tv'))
print(A.__class__())
print(A.name)
print(A.Lagrangian)
print(A.lagrangian)
print(A.euler_equations())
print(A.transversality_conditions())
print(A.control_optimality())
print(A.KKT())
print(A.print_flows())
[docs]@timeit
def simple_model_viz():
f1 = '/models/inputs/agent.tex'
f2 = '/models/inputs/agent2.tex'
a1 = LinkedAgent.read_from_tex(f1)
a1.process()
a2 = LinkedAgent.read_from_tex(f2)
a3 = LinkedAgent.from_abstract(create_empty_agents('agent3'))
a4 = LinkedAgent.from_abstract(create_empty_agents('agent4'))
flow1 = Flow(a1, a2, 50, 'rub')
flow2 = Flow(a2, a1, 1, 'tv')
a1.add_flow(flow1)
a2.add_flow(flow2)
m = Model('1', [], [a1, a2, a3, a4])
m.visualize('test.png')
[docs]@timeit
def agent_dump():
# broken scenario
"""
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: LAgent.tex
"""
f1 = '/models/inputs/agent.tex'
A = LinkedAgent.read_from_tex(f1)
A.process()
A.dump('/models/outputs/Amodel')
[docs]@timeit
def p_model():
f1 = '/models/inputs/Pmodel/H.tex'
H = LinkedAgent.read_from_tex(f1)
H.process(skip_validation=True)
print(H.__dict__)
f2 = '/models/inputs/Pmodel/P.tex'
P = LinkedAgent.read_from_tex(f2)
P.process(skip_validation=True)
print(P.__dict__)
[docs]@timeit
def p_model_dump():
f1 = '/models/inputs/Pmodel/H.tex'
H = LinkedAgent.read_from_tex(f1)
H.process(skip_validation=True)
f2 = '/models/inputs/Pmodel/P.tex'
P = LinkedAgent.read_from_tex(f2)
P.process(skip_validation=True)
B = Balances.read_from_tex('/models/inputs/Pmodel/flows.tex')
M = Model('Pmodel', B, [H, P])
M.process()
M.dump('/models/outputs/Pmodel')
[docs]@timeit
def model_viz():
# no real ecomod models
# only viz scenario
A, B, C, D, E = create_empty_agents('A B C D E', cls=LinkedAgent)
f1 = Flow(A, C, 1, '')
f2 = Flow(C, D, 2, '')
f3 = Flow(C, E, 3, '')
f4 = Flow(D, E, 4, '')
A.add_flow(f1)
C.add_flow(f2)
C.add_flow(f3)
D.add_flow(f4)
M = Model('viz', [], [A, B, C, D, E])
M.visualize('/models/outputs/Pmodel')
[docs]@timeit
def pgmodel():
f1 = '/models/inputs/Pmodel/H.tex'
H = LinkedAgent.read_from_tex(f1)
H.process(skip_validation=True)
f2 = '/models/inputs/Pmodel/P.tex'
P = LinkedAgent.read_from_tex(f2)
P.process(skip_validation=True)
G = create_empty_agents('G', cls=LinkedAgent)
B = Balances.read_from_tex('/models/inputs/Pmodel/flows.tex')
M = Model('Pmodel', B, [H, P])
M.process()
M.dump('/models/outputs/Pmodel')
[docs]@timeit
def p2model():
from sympy.printing.latex import latex
f1 = '/models/inputs/Pmodel_2products/H.tex'
H = AbstractAgent.read_from_tex(f1)
H.process(skip_validation=True)
H.dump('/models/outputs/Pmodel_2products')
f2 = '/models/inputs/Pmodel_2products/P.tex'
P = AbstractAgent.read_from_tex(f2)
P.process(skip_validation=True)
P.dump('/models/outputs/Pmodel_2products')
B = Balances.read_from_tex('/models/inputs/Pmodel_2products/flows.tex')
M = Model('Pmodel', B, [H, P])
M.process()
M.dump('/models/outputs/Pmodel_2products')
if __name__ == "__main__":
kamenev2()
# ramsay()
# p_model_dump()
# p2model()