biogeme.expressions.logit_expressions module
Arithmetic expressions accepted by Biogeme: logit
- author:
Michel Bierlaire
- date:
Sat Sep 9 15:28:39 2023
- class biogeme.expressions.logit_expressions.LogLogit(util, av, choice)[source]
Bases:
Expression
Expression capturing the logit formula.
It contains one formula for the target alternative, a dict of formula for the availabilities and a dict of formulas for the utilities
- Parameters:
util (dict[int, ExpressionOrNumeric])
av (dict[int, ExpressionOrNumeric] | None)
choice (ExpressionOrNumeric)
- audit(database=None)[source]
Performs various checks on the expressions.
- Parameters:
database (Database) – database object
- Returns:
tuple list_of_errors, list_of_warnings
- Return type:
list(string), list(string)
- choice
expression for the chosen alternative
- getValue()[source]
Warning
This function is deprecated. Use
get_value()
instead.Kept for backward compatibility
- Return type:
float
- get_signature()[source]
The signature of a string characterizing an expression.
This is designed to be communicated to C++, so that the expression can be reconstructed in this environment.
The list contains the following elements:
the signatures of all the children expressions,
the name of the expression between < >
the id of the expression between { }
the number of alternatives between ( )
the id of the expression for the chosen alternative, preceeded by a comma.
for each alternative, separated by commas:
the number of the alternative, as defined by the user,
the id of the expression for the utility,
the id of the expression for the availability condition.
Consider the following expression:
\[2 \beta_1 V_1 - \frac{\exp(-\beta_2 V_2) }{ \beta_3 (\beta_2 \geq \beta_1)}.\]It is defined as:
2 * beta1 * Variable1 - expressions.exp(-beta2*Variable2) / (beta3 * (beta2 >= beta1))
And its signature is:
[b'<Numeric>{4780527008},2', b'<Beta>{4780277152}"beta1"[0],0,0', b'<Times>{4780526952}(2),4780527008,4780277152', b'<Variable>{4511837152}"Variable1",5,2', b'<Times>{4780527064}(2),4780526952,4511837152', b'<Beta>{4780277656}"beta2"[0],1,1', b'<UnaryMinus>{4780527120}(1),4780277656', b'<Variable>{4511837712}"Variable2",6,3', b'<Times>{4780527176}(2),4780527120,4511837712', b'<exp>{4780527232}(1),4780527176', b'<Beta>{4780277264}"beta3"[1],2,0', b'<Beta>{4780277656}"beta2"[0],1,1', b'<Beta>{4780277152}"beta1"[0],0,0', b'<GreaterOrEqual>{4780527288}(2),4780277656,4780277152', b'<Times>{4780527344}(2),4780277264,4780527288', b'<Divide>{4780527400}(2),4780527232,4780527344', b'<Minus>{4780527456}(2),4780527064,4780527400']
- Returns:
list of the signatures of an expression and its children.
- Return type:
list(string)
- get_value()[source]
Evaluates the value of the expression
- Returns:
value of the expression
- Return type:
float
- Raises:
BiogemeError – if the chosen alternative does not correspond to any of the utility functions
BiogemeError – if the chosen alternative does not correspond to any of entry in the availability condition