I'm migrating from or-tools to Google's Cloud Fleet Routing API (Optimization AI API). So far, the client libraries are not the best, nor do they have good documentation. Looking through the REST documentation (https://cloud.google.com/optimization/docs/), it's very unclear to me how I add reload points to offload capacity. If I have 5 pickups, and I specify a Delivery (assuming that's what a reload point is), the delivery shipment is skipped UNLESS the loadDemand exactly matches capacity of the vehicle at the time - which is not possible to predict. If we set loadDemand=capacity of the vehicle, it will go to the reload point ONLY when full. Does anyone know how to use this API and how to handle loadDemand to set capacity to 0 at whichever time makes sense for the vehicle? It's somewhat straightforward in or-tools.
Adding reload points in Google Cloud Fleet Routing API (Optimization AI)
91 views Asked by Neil At
1
There are 1 answers
Related Questions in GOOGLE-CLOUD-PLATFORM
- Why do I need to wait to reaccess to Firestore database even though it has already done before?
- Unable to call datastore using GCP service account key json
- Troubleshooting Airflow Task Failures: Slack Notification Timeout
- GoogleCloud Error: Not Found The requested URL was not found on this server
- Kubernetes cluster on GCE connection refused error
- Best way to upload images to Google Cloud Storage?
- Permission 'storage.buckets.get' denied on resource (or it may not exist)
- Google Datastream errors on larger MySQL tables
- Can anyone explain the output of apache-beam streaming pipeline with Fixed Window of 60 seconds?
- Parametrizing backend in terraform on gcp
- Nonsense error using a Python Google Cloud Function
- Unable to deploy to GAE from Github Actions
- Assigned A record for Subdomain in Cloud DNS to Compute Engine VM instance but not propagated/resolved yet
- Task failure in DataprocCreateClusterOperator when i add metadata
- How can I get the long running operation with google.api_core.operations_v1.AbstractOperationsClient
Related Questions in OPTIMIZATION
- Optimize LCP ReactJs
- Efficiently processing many small elements of a collection concurrently in Java
- How to convert the size of the HTML document from 68 Kb to the average of 33 Kb?
- Optimizing Memory-Bound Loop with Indirect Prefetching
- Google or-tools soft constraint issue
- How to find function G(x), and make for every x, G(x) always returns fixed point for another function F(G(x))
- Trying to sort a set of words with the information theory to solve Worlde in Python but my program is way to slow
- Do conditional checks cause bottlenecks in Javascript?
- Hourly and annual optimization problem over matrix
- Sending asynchronous requests without a pre-defined task list
- DBT - Using SELECT * in the staging layer
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Is this a GCC optimiser bug or a feature?
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- Distribute a list of positive numbers into a desired number of sets, aiming to have sums as close as possible between them
Related Questions in OR-TOOLS
- Google or-tools soft constraint issue
- OR Tools cp model performance for flexible job shop scheduling with transitions
- Add node precedence
- OR Tools problem with 'scheduling_with_transitions_sat' job shop scheduling example from GitHub
- OR Tools Job Shop Scheduling for multiple machines with setup times
- Only allow intervals to be produced on machines during shifts cp-sat or-tools
- ortools solvers GLOP, PDLP instantly writes that the model is infeasible
- Self referencing constraints
- Geo spatial constraints in OR-Tools CP-SAT
- CpModel BoolVar not evaluating as a boolean
- Adding reload points in Google Cloud Fleet Routing API (Optimization AI)
- Differences between Excel Solver & OR Tools solver in python
- Unable to build OR-Tools with XPRESS enabled in Windows 11
- Google OR-Tools Set Some Locations Edge Fixed
- AttributeError: type object 'ortools.algorithms.python.knapsack_solver.KnapsackSolver' has no attribute 'KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER'
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
The difference between the
or-toolsAPIs and the Cloud Fleet Routing (CFR) API is that the CFR API is primarily build around the notion of transporting items from a pickup location to a delivery location. That is also how vehicle capacities and load demands are handled, i.e. the load demands of the shipment is subtracted from the free vehicle capacity on pickup, and it is added back on delivery. Both pickup and delivery are optional in the API, but if you don't specify them, it just means that they happen implicitly at the beginning of the route (for pickups), resp. at the end of the route (for deliveries).With this in mind, I'd model the item collection at customer site & drop-off at a reload point by making each item a
shipmentthat has a single pickup (at the customer address), and multiple delivery alternatives (at the different reload points). This way, the load of each item will be tracked exactly for the time it is on a vehicle, and the vehicles will be able to drop the shipments whenever it is convenient at one of the delivery addresses (when they get close to one and/or they need free capacity). If the vehicle can take the items to the depot at the end of the day, the depot address should be one of the delivery locations.The solver will put the deliveries as needed (when the vehicle is close to a full capacity) or when convenient (when passing by a reload point), but you can also add costs to make them delivered sooner rather than later - for example, by using soft time windows on the deliveries or pickup to delivery detour limits on the shipments.
An example of such a model (where the depot is not a reload point):