-
Notifications
You must be signed in to change notification settings - Fork 12
Rjf/isolate traversal models #318
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
@nreinicke i've also replaced the python test (python/tests/test_downtown_denver_example.py) with the monotonicity test. the previous test was only confirming that "app.run()" did not fail, so, that is included as part of the new test. |
Thanks for adding that new monotonic test in! When I pull these changes down and run the 03_time_energy_tradeoff_example.py, I'm getting some weird results (after fixing the example to run with the new code). Here's what I'm seeing for the battery electric time energy tradeoff chart: Are you able to reproduce this on your side? I'm surprised to see this since the montonic test is passing. |
Also - I'm not sure I understand the difference between the "trip_energy_electric" weight and the "edge_energy_electric" weight? If I change the monotonic test to use "trip_energy_electric" rather than "edge_energy_electric", the test fails. |
OH so glad you caught that. i did drop a note here about the naming convention. edge_* is the value for just the edge, and trip_* is the value for the entire trip. we should be looking at trip_*. i've updated the test, and now i'll look into what's going wrong here. |
i'm seeing non-determinism again now. sometimes cost-optimal fails to be less than either energy optimal or time optimal. i'm guessing it's a mix-up somewhere in either 1) recording trip_, edge_ state correctly or 2) using trip_ vs edge_ attributes in the cost model. will investigate.
|
this big old change improves traversal modeling on Compass so that each TraversalModel updates a single dimension of the traversal, as in the single responsibility principle. API changes and refactored modules resulted in far-reaching changes.
todo
changed API + implementation for traversal modeling
topological dependency sorting and validation
topological sorting added via the topological_sort crate. that is used to sort the configured models. this means the user's config does not need to guarantee correct model order. this is done once when constructing a CombinedTraversalModelService, see combined_ops.rs
gotchas
future work