Biogeme: Python Library  4.6a
cnl.py
Go to the documentation of this file.
1 
3 
4 from biogeme import *
5 from mev import *
6 
7 
47 def cnl_avail(V,availability,nests,choice) :
48  Gi = {}
49  Gidict = {}
50  for k in V:
51  Gidict[k] = []
52  for m in nests:
53  biosumlist = []
54  for i,a in m[1].items():
55  biosumlist.append(Elem({0:0,1:a**(m[0]) * exp(m[0] * (V[i]))},availability[i] != 0))
56  biosum = bioMultSum(biosumlist)
57  for i,a in m[1].items():
58  Gidict[i].append(Elem({0:0,1:(biosum**((1.0/m[0])-1.0)) * (a**m[0]) * exp((m[0]-1.0)*(V[i]))},availability[i] != 0))
59  for k in V:
60  Gi[k] = bioMultSum(Gidict[k])
61  P = mev(V,Gi,availability,choice)
62  return P
63 
64 
65 
105 def logcnl_avail(V,availability,nests,choice) :
106  Gi = {}
107  Gidict = {}
108  for k in V:
109  Gidict[k] = []
110  for m in nests:
111  biosumlist = []
112  for i,a in m[1].items():
113  biosumlist.append(Elem({0:0,1:a**(m[0]) * exp(m[0] * (V[i]))},availability[i] != 0))
114  biosum = bioMultSum(biosumlist)
115  for i,a in m[1].items():
116  Gidict[i].append(Elem({0:0,1:(biosum**((1.0/m[0])-1.0)) * (a**m[0]) * exp((m[0]-1.0)*(V[i]))},availability[i] != 0))
117  for k in V:
118  Gi[k] = bioMultSum(Gidict[k])
119  logP = logmev(V,Gi,availability,choice)
120  return logP
121 
122 
123 
163 def cnlmu(V,availability,nests,choice,bmu) :
164  Gi = {}
165  Gidict = {}
166  for k in V:
167  Gidict[k] = []
168  for m in nests:
169  biosumdict = []
170  for i,a in m[1].items():
171  biosumdict.append(Elem({0:0,1:a**(m[0]/bmu) * exp(m[0] * (V[i]))},availability[i] != 0))
172  biosum = bioMultSum(biosumdict)
173  for i,a in m[1].items():
174  Gidict[i].append(Elem({0:0,1:bmu * (biosum**((bmu/m[0])-1.0)) * (a**(m[0]/bmu)) * exp((m[0]-1.0)*(V[i]))},availability[i] != 0))
175  for k in V:
176  Gi[k] = bioMultSum(Gidict[k])
177  P = mev(V,Gi,availability,choice)
178  return P
179 
180 
220 def logcnlmu(V,availability,nests,choice,bmu) :
221  Gi = {}
222  Gidict = {}
223  for k in V:
224  Gidict[k] = []
225  for m in nests:
226  biosumlist = []
227  for i,a in m[1].items():
228  biosumlist.append(Elem({0:0,1:a**(m[0]/bmu) * exp(m[0] * (V[i]))},availability[i] != 0))
229  biosum = bioMultSum(biosumlist)
230  for i,a in m[1].items():
231  Gidict[i].append(Elem({0:0,1:bmu * (biosum**((bmu/m[0])-1.0)) * (a**(m[0]/bmu)) * exp((m[0]-1.0)*(V[i]))},availability[i] != 0))
232  for k in V:
233  Gi[k] = bioMultSum(Gidict[k])
234  logP = logmev(V,Gi,availability,choice)
235  return logP
236 
def logmev(V, Gi, av, choice)
Log of the choice probability for a MEV model.
Definition: mev.py:75
Definition: mev.py:1
def cnlmu(V, availability, nests, choice, bmu)
Implements the cross-nested logit model as a MEV model with the homogeneity parameters is explicitly ...
Definition: cnl.py:163
def cnl_avail(V, availability, nests, choice)
Implements the cross-nested logit model as a MEV model.
Definition: cnl.py:47
def logcnl_avail(V, availability, nests, choice)
Implements the log of the cross-nested logit model as a MEV model.
Definition: cnl.py:105
def logcnlmu(V, availability, nests, choice, bmu)
Implements the log of the cross-nested logit model as a MEV model with the homogeneity parameters is ...
Definition: cnl.py:220
Copyright 2017 Michel Bierlaire