SearchLibrium 0.0.145__tar.gz → 0.0.146__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {searchlibrium-0.0.145/src/SearchLibrium.egg-info → searchlibrium-0.0.146}/PKG-INFO +1 -1
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/pyproject.toml +1 -1
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/search.py +5 -5
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/siman.py +11 -5
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/threshold.py +1 -1
- searchlibrium-0.0.146/src/SearchLibrium/version.txt +1 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146/src/SearchLibrium.egg-info}/PKG-INFO +1 -1
- searchlibrium-0.0.145/src/SearchLibrium/version.txt +0 -1
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/MANIFEST.in +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/README.md +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/setup.cfg +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/BEHier.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/Halton.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/MixedLogit.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/Mode_Activity_Nested.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/RandomP.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/SEARCH_SM_MARIO.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/Two_Level_Nest.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/__init__.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/__main__.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/_choice_model.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/_device.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/banditsa.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/bhhh/minimize.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/boxcox_functions.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/call_meta.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/constraints_builder.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/data/Swissmetro_final.csv +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/data/TravelMode.csv +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/data/electricity.csv +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/harmony.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/hspbil.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/latent_class.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/main.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/main_debug.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/mdcev.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/misc.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/mixed_logit.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/mixed_nested.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/mixedrrm.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/multinomial_logit.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/multinomial_nested.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/multinomial_probit.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/ordered_logit.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/ordered_logit_mixed.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/predict.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/rrm.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/sample_data.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/sapbil.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/selection_models.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/setup.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/test_lc_de.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/test_mario_searches.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/test_sapbil_vs_banditsa.py +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/SOURCES.txt +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/dependency_links.txt +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/entry_points.txt +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/requires.txt +0 -0
- {searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SearchLibrium
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.146
|
|
4
4
|
Summary: A Python package for econometric models driven by search
|
|
5
5
|
Author: Mario Fernando Taco Morales, Alexander Paz, Prithvi Beeramole, Robert Burdett
|
|
6
6
|
Author-email: Zeke Ahern <z.ahern@qut.edu.au>
|
|
@@ -82,7 +82,7 @@ Documentation = "https://pypi.org/project/SearchLibrium/"
|
|
|
82
82
|
realpython = "SearchLibrium.__main__:main"
|
|
83
83
|
|
|
84
84
|
[tool.bumpver]
|
|
85
|
-
current_version = "0.0.
|
|
85
|
+
current_version = "0.0.146"
|
|
86
86
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
87
87
|
commit_message = "[skip ci] Bump version {old_version} -> {new_version}"
|
|
88
88
|
commit = true
|
|
@@ -3749,8 +3749,8 @@ class Search():
|
|
|
3749
3749
|
''' and cache the result if it converged. '''
|
|
3750
3750
|
''' ------------------------------------------------------------------ '''
|
|
3751
3751
|
|
|
3752
|
-
def evaluate_solution(self, sol):
|
|
3753
|
-
|
|
3752
|
+
def evaluate_solution(self, sol, track_best=True):
|
|
3753
|
+
|
|
3754
3754
|
sig = self.setup_signature(sol)
|
|
3755
3755
|
|
|
3756
3756
|
if sig not in self.explored_specs:
|
|
@@ -3763,7 +3763,7 @@ class Search():
|
|
|
3763
3763
|
sol.update_objective(i, score)
|
|
3764
3764
|
return sol, True
|
|
3765
3765
|
|
|
3766
|
-
sol, converged = self._evaluate_solution(sol)
|
|
3766
|
+
sol, converged = self._evaluate_solution(sol, track_best=track_best)
|
|
3767
3767
|
|
|
3768
3768
|
if converged:
|
|
3769
3769
|
self.evaluated_solutions[sig] = [sol.obj(i) for i in range(self.nb_crit)]
|
|
@@ -3780,7 +3780,7 @@ class Search():
|
|
|
3780
3780
|
''' re-estimated. The function returns the estimated solution '''
|
|
3781
3781
|
''' only if it converges. '''
|
|
3782
3782
|
''' ---------------------------------------------------------- '''
|
|
3783
|
-
def _evaluate_solution(self, sol):
|
|
3783
|
+
def _evaluate_solution(self, sol, track_best=True):
|
|
3784
3784
|
# {
|
|
3785
3785
|
# apply_constraints() was previously only wired into evaluate_lc/
|
|
3786
3786
|
# evaluate_nested_logit/evaluate_mixed_nested — plain multinomial/mixed
|
|
@@ -3836,7 +3836,7 @@ class Search():
|
|
|
3836
3836
|
sol['converged'] = True
|
|
3837
3837
|
self.update_objectives(self.param.criterions, sol)
|
|
3838
3838
|
|
|
3839
|
-
if not hasattr(self, 'best_solution') or self.find_best_sol([sol, self.best_solution]) == sol:
|
|
3839
|
+
if track_best and (not hasattr(self, 'best_solution') or self.find_best_sol([sol, self.best_solution]) == sol):
|
|
3840
3840
|
self.best_solution = sol
|
|
3841
3841
|
if self.last_printed_solution is None or not self.solutions_equal(sol, self.last_printed_solution):
|
|
3842
3842
|
self.print_best_solution(sol)
|
|
@@ -516,7 +516,10 @@ class SA(Search):
|
|
|
516
516
|
for attempt in range(1, N_trials + 1):
|
|
517
517
|
sol = self.generate_solution()
|
|
518
518
|
sol = self.repair_solution_for_clarity(sol)
|
|
519
|
-
|
|
519
|
+
# track_best=False: this is a disposable calibration trial, not
|
|
520
|
+
# part of the accepted search trajectory, so it must not update
|
|
521
|
+
# (or print) the run's global best solution.
|
|
522
|
+
sol, converged = self.evaluate(sol, track_best=False)
|
|
520
523
|
if converged:
|
|
521
524
|
base_sol = sol
|
|
522
525
|
break
|
|
@@ -579,7 +582,10 @@ class SA(Search):
|
|
|
579
582
|
print(f"Trial {trial}: Could not generate a new proposed solution, skipping temperature calculation.")
|
|
580
583
|
continue
|
|
581
584
|
|
|
582
|
-
|
|
585
|
+
# track_best=False: same reason as above — these proposals are
|
|
586
|
+
# only used to estimate delta_E for the starting temperature and
|
|
587
|
+
# are discarded immediately after, they never become current_sol.
|
|
588
|
+
proposed_sol, converged = self.evaluate(proposed_sol, track_best=False)
|
|
583
589
|
if not converged:
|
|
584
590
|
print(f"Trial {trial}: Proposed solution did not converge, skipping temperature calculation.")
|
|
585
591
|
continue
|
|
@@ -639,10 +645,10 @@ class SA(Search):
|
|
|
639
645
|
''' ---------------------------------------------------------- '''
|
|
640
646
|
''' Function. Evaluate how good a solution is '''
|
|
641
647
|
''' ---------------------------------------------------------- '''
|
|
642
|
-
def evaluate(self, sol):
|
|
648
|
+
def evaluate(self, sol, track_best=True):
|
|
643
649
|
# {
|
|
644
|
-
sol, converged = self.evaluate_solution(sol)
|
|
645
|
-
|
|
650
|
+
sol, converged = self.evaluate_solution(sol, track_best=track_best)
|
|
651
|
+
|
|
646
652
|
return sol, converged
|
|
647
653
|
# }
|
|
648
654
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.0.146
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SearchLibrium
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.146
|
|
4
4
|
Summary: A Python package for econometric models driven by search
|
|
5
5
|
Author: Mario Fernando Taco Morales, Alexander Paz, Prithvi Beeramole, Robert Burdett
|
|
6
6
|
Author-email: Zeke Ahern <z.ahern@qut.edu.au>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.0.145
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium/test_sapbil_vs_banditsa.py
RENAMED
|
File without changes
|
|
File without changes
|
{searchlibrium-0.0.145 → searchlibrium-0.0.146}/src/SearchLibrium.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|