Python中的零售库存管理

Python中的零售库存管理,python,optimization,Python,Optimization,一家大型零售店有不同容量的货架来存放不同种类的商品。假设没有限制哪种商品可以放在哪个货架上,任何商品都可以放在任何货架上。面临的挑战是在每个货架上以最佳方式分配不同重量的商品,而货架容量不会超过。 所以,如果一个货架的容量是500kg,我们需要放置不同重量的商品,这样这n种商品的总重量就是你从数据库中提取数据了吗?我的意思是,PostgreSQL、Oracle等。当前数据位于本地目录中&通过“pd.read\u csv”命令读取数据。更进一步,我们还可以通过导入合适的库从MYSQL数据库中读取它

一家大型零售店有不同容量的货架来存放不同种类的商品。假设没有限制哪种商品可以放在哪个货架上,任何商品都可以放在任何货架上。面临的挑战是在每个货架上以最佳方式分配不同重量的商品,而货架容量不会超过。
所以,如果一个货架的容量是500kg,我们需要放置不同重量的商品,这样这n种商品的总重量就是你从数据库中提取数据了吗?我的意思是,PostgreSQL、Oracle等。当前数据位于本地目录中&通过“pd.read\u csv”命令读取数据。更进一步,我们还可以通过导入合适的库从MYSQL数据库中读取它,提供uid、密码、主机和数据库名称。您的CSV文件到底有多大?我这么问是因为有时候第一个瓶颈是加载数据集的方式。老实说,用python加载数据集并不需要太多时间,而是用了通常的时间。我目前正在处理实际csv的20%数据,大约4mb(我指的是20%)。
import pandas as pd
def a(lst, target, with_replacement=False):
    def _a(idx, l, r, t, w):
        if t == sum(l): r.append(l)
        elif t < sum(l): return
        for u in range(idx, len(lst)):
            _a(u if w else (u + 1), l + [lst[u]], r, t, w)
        return r
    return _a(0, [], [], target, with_replacement)

commodity_weights = pd.np.array(retail_data.commodity_weights)
b = a(commodity_weights,1000000)
[[150319, 176282, 125877, 112750, 118113, 151850, 164809],
 [150319, 226013, 154886, 112438, 205017, 151327],
 [150319, 226013, 106055, 255872, 261741],
 [150319, 125877, 164094, 301341, 145931, 112438],
 [150319, 285096, 169215, 230561, 164809],
 [150319, 118113, 327682, 122286, 130273, 151327],
 [150319, 149649, 230561, 321987, 147484],
 [478629, 207277, 145931, 168163],
 [266632, 112750, 169215, 164809, 130273, 156321],
 [266632, 106055, 118081, 173942, 130273, 205017],
 [486415, 125877, 106055, 169215, 112438],
 [279641, 280289, 232793, 207277],
 [279641, 208577, 112750, 112438, 130273, 156321],
 [343704, 118113, 151850, 218170, 168163],
 [280289, 112750, 118081, 320717, 168163],
 [249551, 176282, 287475, 112750, 173942],
 [249551, 232793, 122286, 230561, 164809],
 [249551, 112750, 118113, 112438, 238985, 168163],
 [249551, 118113, 106055, 118081, 169215, 238985],
 [249551, 340878, 149649, 112438, 147484],
 [249551, 151850, 301341, 145931, 151327],
 [176282, 287475, 145931, 238985, 151327],
 [176282, 236223, 260192, 122286, 205017],
 [176282, 112750, 356097, 106055, 118081, 130735],
 [176282, 151850, 118081, 431501, 122286],
 [176282, 382377, 164094, 112438, 164809],
 [303818, 125877, 215434, 106055, 118081, 130735],
 [232793, 118081, 169215, 218170, 261741],
 [232793, 173942, 130735, 164094, 130273, 168163],
 [208577, 118113, 118081, 320717, 234512],
 [208577, 154886, 239828, 396709],
 [208577, 106055, 122286, 301341, 261741],
 [208577, 178415, 239828, 205017, 168163],
 [413029, 321406, 118081, 147484],
 [287475, 125877, 356097, 118113, 112438],
 [432142, 125877, 154886, 122286, 164809],
 [125877, 215434, 260192, 118113, 149649, 130735],
 [125877, 118113, 154886, 130735, 239828, 230561],
 [125877, 172848, 151850, 149649, 169215, 230561],
 [125877, 151850, 149649, 118081, 173942, 112438, 168163],
 [125877, 151850, 149649, 118081, 122286, 164094, 168163],
 [125877, 151850, 207277, 122286, 145931, 246779],
 [125877, 106055, 169215, 200747, 246779, 151327],
 [285096, 154886, 313239, 246779],
 [285096, 149649, 118081, 178415, 112438, 156321],
 [236223, 112750, 260192, 151850, 238985],
 [236223, 215434, 118113, 172848, 106055, 151327],
 [112750, 378095, 106055, 246779, 156321],
 [112750, 151850, 118081, 317373, 299946],
 [112750, 149649, 122286, 200747, 267084, 147484],
 [112750, 106055, 122286, 382377, 164094, 112438],
 [112750, 118081, 130735, 239828, 164094, 234512],
 [112750, 118081, 317373, 246779, 205017],
 [356097, 321406, 172848, 149649],
 [215434, 118113, 207277, 164094, 164809, 130273],
 [215434, 154886, 172848, 118081, 173942, 164809],
 [118113, 151850, 118081, 130735, 145931, 130273, 205017],
 [118113, 149649, 207277, 122286, 234512, 168163],
 [118113, 106055, 207277, 118081, 173942, 164094, 112438],
 [340878, 313239, 106055, 239828],
 [151850, 169215, 164094, 145931, 200747, 168163],
 [149649, 164094, 301341, 145931, 238985],
 [106055, 118081, 130735, 230561, 267084, 147484],
 [320717, 164094, 145931, 238985, 130273],
 [308185, 112438, 164809, 267084, 147484],
 [327152, 200747, 267084, 205017]]