Theissue I have is that when using SetGlobalSpanCostCoefficient as below, the resulting routes have very short distances from the depot to the first delivery point and from the last delivery point to the depot, but instead, the distances between delivery points is high. Instead, when not using this SetGlobalSpanCostCoefficient the routes have very low distances between delivery points but the distance from and to the depot are higher.
Also, when not using the span cost, the sum of the distances of all routes is lower. Based on the metrics and how the routes look in a map, I think that not using the span cost is better. See the routes on the images below, first not using the span cost and second using it.
My concern is that if I'm not using the span cost, I don't know if the solver is optimizing the routes or it just creates a greedy solution (I'm using PATH_CHEAPEST_ARC as first solution strategy). Can someone explain why I'm getting these routes in both cases and tell me if the routes I'm getting when not using the span are optimal?
In both cases you'll always have the arc cost added to the objective, the global span cost coefficient add an EXTRA cost being coeff * (max_end - min_start)
note: When using a coefficient of 100 it just makes this cost the dominant factor...
The time matrix I have included represents 42 locations; the first two locations are the depot where the vehicle will begin and end the day (these won't necessarily always be the same location). The remaining forty locations all represent McDonald's restaurants in the Minneapolis area. The vehicle cannot leave the depot until 6:00am (21600 seconds), and must return to the depot by 6:00pm (64800 seconds). I do have time windows enforced for visits to the locations, but for the sake of brevity and simplicity in my question, I've allowed the locations to be visited at any time (while still meeting the condition of beginning and ending the day at 6:00am and 6:00pm, respectively). Additionally, every location must be visited for a duration of 30 minutes (1800 seconds).
When I run my implementation, there are (as you'd expect) many locations that are not visited, due to all of the existing constraints. I want to modify my solution to allow for schedules to be created across multiple days. For example, I would like my implementation to explore solutions where the locations are schedule to be visited the following day as well, starting at 6:00am (21600 seconds + 86400 seconds) and ending at 6:00pm (64800 seconds + 86400 seconds). I also want to allow for disjointed time windows, though I'm afraid that may be too much to ask for someone to help me with at once. I have attempted this on my own, but my efforts have been fruitless and yielded only errors. I thought sharing my working solution and my constraints would be a good place to start when asking for help, but I'd be more than happy to provide any additional context and information I may have omitted.
The nature of my original question was pretty particular - my goal was to make locations in the traveling salesperson problem available for recurring time windows each day over an arbitrary number of days (i.e. making a location only available between 2:00pm - 4:00pm during each day over the span of some days that the vehicle would be active).
The solution came down to modeling the problem in a way such that the entire span of days would be represented as one large range of time between the start of the first day and the end of the last day; all durations of unavailability (due to night time, existing events, unavailable time windows, etc) would be removed from this range. This was achieved by using SetRange and RemoveInterval.
I have a bunch of gain pedals like fuzz, boost, and so on, they follow one into each other in the good old styles, then the mono signal gets into a Strymon Deco, at that point I have a L and R output feeding a Strymon Cloudburst. From it L goes into a Fender amp on the edge of breackup with a little reverb and tremolo, and R into a Brunetti setted very clean.
This was before the H90 hit my pedalboard and reverb and delays were running after the cloudburst, but now that I have my H90, the L and R from Deco gets into the H90. I wish to put my Cloudburst (stereo) in the inserts of the h90, so that I can recall it with presets.
If I plug the H90 out1 to the Fender Dry amp and the H90 out3 to the Brunetti Wet amp, I will have free for routing only in 2-4 and out 2-4. The manual lacks any information about a routing like that.
Here is the routing. I have a bunch of gain pedals like fuzz, boost, and so on, they follow one into each other in the good old styles, then the mono signal gets into a Strymon Deco, at that point I have a L and R output feeding a Strymon Cloudburst. From it L goes into a Fender amp on the edge of breackup with a little reverb and tremolo, and R into a Brunetti setted very clean.
The BrowserTracing integration creates a new transaction for each page load and navigation event, and creates a child span for every XMLHttpRequest or fetch request that occurs while those transactions are open. Learn more about traces, transactions, and spans.
To make sure that spans are created correctly for a custom routing setup, you'll need to opt out of the default span creation by setting instrumentNavigation: false and instrumentPageLoad: false in the browserTracingIntegration() options. You can then manually create spans like this:
A list of strings and regular expressions. The JavaScript SDK will attach the sentry-trace and baggage headers to all outgoing XHR/fetch requests whose destination contains a string in the list or matches a regex in the list. If your frontend is making requests to a different domain, you'll need to add it there to propagate the sentry-trace and baggage headers to the backend services, which is required to link transactions together as part of a single trace.
The tracePropagationTargets option matches the entire request URL, not just the domain. Using stricter regex to match certain parts of the URL ensures that requests don't unnecessarily have additional headers attached.
The default value of tracePropagationTargets is ['localhost', /^\//]. This means that by default, tracing headers are only attached to requests that contain localhost in their URL or requests whose URL starts with a '/' (for example GET /api/v1/users).
You will need to configure your web server CORS to allow the sentry-trace and baggage headers. The configuration might look like "Access-Control-Allow-Headers: sentry-trace" and "Access-Control-Allow-Headers: baggage", but it depends on your set up. If you do not allow the two headers, the request might be blocked.
beforeStartSpan is called at the start of every pageload or navigation span, and is passed an object containing data about the span which will be started. With beforeStartSpan you can modify that data or drop the transaction entirely by returning undefined.
One common use case is parameterizing transaction names. For both pageload and navigation transactions, the BrowserTracing integration uses the browser's window.location value to generate a transaction name. Using beforeStartSpan lets you modify the transaction name to make it more generic, so that, for example, transactions named GET /users/12312012 and GET /users/11212012 can both be renamed to GET /users/:userid. That way they'll be grouped together.
The idle time, measured in ms, to wait until the transaction will be finished, if there are no unfinished spans. The transaction will use the end timestamp of the last finished span as the endtime for the transaction.
The time, measured in ms, one heartbeat takes. If no new spans were started or no open spans finished within three heartbeats, the transaction will be finished. The heartbeat count restarts whenever a new span is created or an open span is finished.
This option flags transactions when tabs are moved to the background with "cancelled". Because browser background tab timing is not suited for precise measurements of operations and can affect your statistics in nondeterministic ways, we recommend that this option be enabled.
This option determines whether spans for long animation frames get created automatically. If both enableLongAnimationFrame and enableLongTask are enabled, Sentry will send long animation frames and fallback to long tasks (if long animation frames aren't supported by the browser).
INP samples currently incur no cost to enable at Sentry. Basic samples contain limited information such as the interaction target, latency, and user. You may wish to enrich your INP samples by setting up Session Replays and/or setting up Browser Profiling instrumentation around your interactive elements to gain further insights into your slowest interactions.
This option determines the sample rate of INP spans. interactionsSampleRate is applied on top of tracesSampleRate, therefore if your interactionsSampleRate is set to 0.5 and your tracesSampleRate is set to 0.1, the outcome will be 0.05.
[01] Note: node Duplicate node number skipped
A node was encountered with a number that was already in use. The node is skipped, and the program continues to process any additional nodes.
This message usually occurs while adding a project that contains nodes that don't have unique numbers. Before adding a project, you should generally renumber any nodes with conflicting numbers. To add any nodes that were skipped, renumber the applicable nodes and add the project again.
The message can also occur when pasting nodes from the clipboard, or opening a project that contains duplicate node numbers.
Tip: To make a clone of an existing node use Ctrl-drag (rather than cut and paste.)
[02] Note: Exceeded node capacity
The current project has exceeded the nominal node capacity of your program.
You can continue to work with the project, but you will not be able to save the project or produce multi-page reports unless you reduce the number of nodes. The automatic project backup will also be suspended until the number of nodes is reduced.
Warning: If you're using the HydroCAD Sampler, your changes will be lost when the Sampler's time limit expires. To save your project you must reduce the number of nodes before the time limit expires.
3a8082e126