How to allocate list of orders to tranposrt with constraints

41 Views Asked by At

I have a DataFrame with order number, weight and pallet equvivalent.

    order #   pallets weight
0   31785053    1.0    174.0
1   31785071    1.0    45.0
2   31785044    6.0    8300.0
3   31827117    7.0    9684.0
4   31827228    1.0    1404.0

I want to allocate orders to cars with some specific constraints: max_weight and max_pallet

max_weight = 20000

max_pallets = 44

This is what I came up with:

def fill_one_car():
    car =[]
    pallets_eq = 0
    weight = 0
    for index in range(len(orders)):
        if (orders[index] not in big_orders) and ((pallets_eq + pallets[index]) <= max_pallets) and ((weight + weights[index]) <= max_weight):
            weight += weights[index]
            pallets_eq += pallets[index]
            car.append(orders[index])
    return car

Outcome is list of orders.

I wonder how to allocate the full list of orders to x cars, for example: [[31785053,31785071],[3178504,31785044]], where each list is a seperate car.

0

There are 0 best solutions below