I tried to do cross-nested as you advised. following is the way I modelled my problem.
1. Did I do it correctly? I have divided my modes into: private and public; while I have set the departure times to: rigid and flexible. so, each alternative is exactly member of two nests.
2. When I ran this code, the algorithm failed to converge as the number of iterations was set to 100 by default. How can I increase the number of iterations in the new biogeme version? I tried "cnl_results = biogeme.estimate(algoParameters={‘maxiter’:5000})", but I got error!
Thanks in advance for your help and support!
Amin
# Defining scale parameters for each nest
MU_Private = Beta('MU_Private', 1, 1, None, 0)
MU_Public = Beta('MU_Public', 1, 1, None, 0)
MU_Rigid = Beta('MU_Rigid', 1, 1, None, 0)
MU_Flex = Beta('MU_Flex', 1, 1, None, 0)
# Defining alpha parameters for mode nests (example values, adjust based on your model's needs)
ALPHA_Private0 = Beta('ALPHA_Private0', 0.5, 0, 1, 0)
ALPHA_Private1 = Beta('ALPHA_Private1', 0.5, 0, 1, 0)
ALPHA_Private2 = Beta('ALPHA_Private2', 0.5, 0, 1, 0)
ALPHA_Private3 = Beta('ALPHA_Private3', 0.5, 0, 1, 0)
ALPHA_Private4 = Beta('ALPHA_Private4', 0.5, 0, 1, 0)
ALPHA_Private5 = Beta('ALPHA_Private5', 0.5, 0, 1, 0)
ALPHA_Public6 = Beta('ALPHA_Public6', 0.5, 0, 1, 0)
ALPHA_Public7 = Beta('ALPHA_Public7', 0.5, 0, 1, 0)
ALPHA_Public8 = Beta('ALPHA_Public8', 0.5, 0, 1, 0)
ALPHA_Public9 = Beta('ALPHA_Public9', 0.5, 0, 1, 0)
ALPHA_Public10 = Beta('ALPHA_Public10', 0.5, 0, 1, 0)
ALPHA_Public11 = Beta('ALPHA_Public11', 0.5, 0, 1, 0)
ALPHA_Flex0 = 1- ALPHA_Private0
ALPHA_Rigid1 = 1-ALPHA_Private1
ALPHA_Flex2 = 1- ALPHA_Private2
ALPHA_Flex3 = 1- ALPHA_Private3
ALPHA_Rigid4 = 1-ALPHA_Private4
ALPHA_Flex5 = 1- ALPHA_Private5
ALPHA_Flex6 = 1- ALPHA_Public6
ALPHA_Rigid7 = 1-ALPHA_Public7
ALPHA_Flex8 = 1- ALPHA_Public8
ALPHA_Flex9 = 1- ALPHA_Public9
ALPHA_Rigid10 = 1-ALPHA_Public10
ALPHA_Flex11 = 1- ALPHA_Public11
alpha_private = {0: ALPHA_Private0, 1: ALPHA_Private1, 2: ALPHA_Private2, 3: ALPHA_Private3, 4: ALPHA_Private4, 5: ALPHA_Private5, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0}
alpha_public = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: ALPHA_Public6, 7: ALPHA_Public7, 8: ALPHA_Public8, 9: ALPHA_Public9, 10: ALPHA_Public10, 11: ALPHA_Public11}
alpha_rigid = {0: 0, 1: ALPHA_Rigid1, 2: 0, 3: 0, 4: ALPHA_Rigid4, 5: 0, 6: 0, 7: ALPHA_Rigid7, 8: 0, 9: 0, 10: ALPHA_Rigid10, 11: 0}
alpha_flex = {0: ALPHA_Flex0, 1: 0, 2: ALPHA_Flex2, 3: ALPHA_Flex3, 4: 0, 5: ALPHA_Flex5, 6: ALPHA_Flex6, 7: 0, 8: ALPHA_Flex8, 9: ALPHA_Flex9, 10: 0, 11: ALPHA_Flex11}
# Define nests
nest_private = MU_Private, alpha_private
nest_public = MU_Public, alpha_public
nest_rigid = MU_Rigid, alpha_rigid
nest_flex = MU_Flex, alpha_flex
nests = nest_private, nest_public, nest_rigid, nest_flex
# Specify the CNL model with availability conditions
logprob = models.logcnl_avail(V, av, nests, Choice)
# Estimate the parameters
biogeme = bio.BIOGEME(database, logprob)
biogeme.modelName = 'cnl'
cnl_results = biogeme.estimate()