Context:
Your enterprise have 15 trucks and 200 clients. Each truck has a fixed cost of utilization of 600 USD and each one can deliver the products to a max 12 clients. If you need more trucks to satisfy the demmand, you will have to hire external trucks, with a fixed cost of utilization of 1000 USD each one and with a max product deliver capacity of 8 clients. To avoid operational problems, you receive the information that at least 10% of the clients assigned to a truck has to be assigned to another truck.
Problem:
So, in order to minimize costs, I have to minimize the quantity of trucks to utilize and maximize trucks utilization considering that 10% of clients of each truck has to be assigned to another truck. The problem I'm having is with the 10% constraint. I can't figure out a way to assign efficiently such 10%.
EDIT - Examples:
Example 1) - Truck 1 has 12 clients, client number 1 to client number 12. Truck 2 also has 12 clients but from client number 11 to client number 22. Clients number 11 and 12 represent the 10% of clients assigned to another Truck, of Truck 1 and 2. Now, the 12 clients from Truck 3 are clients number 23 to client number 34, and the 12 clients from Truck 4 are clients number 33 to clients number 44. Clients 33 and 34 represent the (at least) 10% of clients assigned to another Truck, of Truck 3 and 4.
Example 2) - A simple way of Example 1), is to assign for all Trucks the same 10%: Clients number 1 is assigned to ALL Trucks, and Client number 2 is assigned to just "internal" Trucks also (as "internal Trucks" need to share at least 1.2 = 2 clients, and external Trucks need to share at least 0.8 = 1 clients). This solution will have the same cost as Example 1, but this solution is impractical in reality.
A small solution format:
Variable:
Xct = 1 if client C is assigned to Truck T; 0 otherwhise.
Constraint:
All clients has to be assigned to at least 1 Truck.
SUM(t,Xct) >= 1 for all c = 1 to 200.