Skip to content
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

Forcing vehicle steps in solving mode #886

Closed
mbachem opened this issue Feb 11, 2023 · 8 comments
Closed

Forcing vehicle steps in solving mode #886

mbachem opened this issue Feb 11, 2023 · 8 comments

Comments

@mbachem
Copy link

mbachem commented Feb 11, 2023

Hi there,

I try to force some steps to a certain vehicle, in solving mode.

I started with three (pickup/delivery) shipments (0/1), (2/3) and (4/5), and two vehicles, vehicle:0 an vehicle:1
All three shipments can be done by each vehicle alone, shown by problem_1.json and problem_2.json.
When both vehicle are at service, vroom is using vehicle:0 for (0/1), and vehicle:1 for (4/5) and (2/3).

Now I try to pin shipment (4/5) to vehicle:0, without any success, as shown by problem_4.json an solution_4.json
What am I doing wrong?

All my files described above can be reviewed here, a vroom forked 'vehicle_pinning' branch :
d1773c8

Thanks a lot for helping!

cheers,
Martin

@mbachem
Copy link
Author

mbachem commented Feb 12, 2023

Hi There,
I think I have found a pretty capable way of vehicle pinning: when each vehicle brings it's own ID as skill, once a shipment needs a vehicle pinning, I force the desired shipment-vehicle-pinning by requiring that vehicle-skill-ID as shipment skill.
Plus setting a high shipment priority for already pinned shipments, I expect new shipments without vehicle-pinning and low priority, could be easily unassigned when running into conflicts.
Cheers,
Martin

@fbaierl
Copy link

fbaierl commented Feb 13, 2023

Hi mbachem,

this topic has been discussed before already, see e.g.:

#800
#753

Maybe you can find a few helpful hints in those threads.

@mbachem-rvk
Copy link
Contributor

Both topics are indeed super helpfull, thanks a lot for pointing them out. Good to see I'm on the right track by setting vehicle specific skills to render shipments as immutable.

@mbachem-rvk
Copy link
Contributor

Hi @fbaierl ,
I have found some strange unexpected results along the way...
( comitted as https://github.com/mbachem-rvk/vroom/tree/testing/unexpected_behaviour/ ... )

Then, there is an another strange matter:

  • in problem3, I get an unresolved shipment, while I have a lot of completely unoccupied vehicles...
  • setting shipment.2492940 to require skill [1201] (in problem3.json), for I know vehicle 1201 with skill 1201 is completely free, will render 0 unassigned again
  • this is getting better if each vehicle gets a 'filler' job assigned without load, to tickle the path...

@mbachem-rvk
Copy link
Contributor

... I moved away from vehicle pinning by using vehicle unique skills.
Would ne great to do so, but this but comes with too many strange effects...

As I go along the day, every new incoming shipment-request can either be accepted as servicable, or has to be rejected for good.
To do so, I have a pool of still mutable shipments, where I can accept changes in vehicle allocation, and collect those in seperate vehicle lists which are already immnutable and allocated to a vehicle.
Every shipment taken out the the pool (as time goes forward), when it moves into a vehicle list, may drag others with it, to have a clean cut where the vehicle is delivering to an empty load.
Then I move this's vehicles start location and time_window where it can start as empty vehicle in next pool problems/solutions.

That clipping horizon between pooled shipments, and vehicle-pinned shipments, is very critical, and prone to errors.
This can be helped by multiple vroom calls, where I to both: setting/unsetting the vehicle step-order, to help vroom finding a solution.

Bottom line is, with multiple vroom-calls per incoming shipment, I can use vroom to let it do what it does great.
Thanks for helping!

@jcoupey
Copy link
Collaborator

jcoupey commented Feb 21, 2023

@mbachem-rvk looks like you got some food for though in previous threads and from your own experiments. Shall we close this ticket?

@mbachem
Copy link
Author

mbachem commented Feb 21, 2023

Hi @jcoupey : yes, thanks, just close it.
If you want to investigate the "skill" issue, just let me know if I can help.

@jcoupey
Copy link
Collaborator

jcoupey commented Feb 21, 2023

OK, closing now. If you think there is a "skill" issue, then maybe worth opening another dedicated ticket?

@jcoupey jcoupey closed this as completed Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants