How should I think about selecting values for unassigned penalties?

What’s the value should I use here for my VRP?

1 Like

Good question. Unassigned penalty values are arbitrary amounts of time. So how to find a value can involve some experimentation because of how your model is set up and the types of solutions you hope to see.

Generally, I recommend starting with a simple value like 1000 to test what types of solutions get returned. If you’re seeing too many stops get unassigned, then your value is probably too low. In this case, I’d recommend upping the value by orders of magnitude (ex: 10000, 100000) until you see solutions where no stops are unassigned. At that point, you’ve hit a ceiling of sorts, giving you a range in which you can refine this value to meet your operational needs.

Unassigned penalties are designed to encourage servicing all stops. But keep in mind that regardless of what value you set, it’s possible that your model may be configured so that unassigned stops are unavoidable. For example, a hard window constraint or route start and end times might be too restrictive. You can read more about unassigned penalties in our documentation.