Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python和dask进行优化_Python - Fatal编程技术网

使用Python和dask进行优化

使用Python和dask进行优化,python,Python,我正在编写一个使用gurobipy开发的代码,目标是将Dask包集成到其中。目的是在更大的随机生成的数据集上运行代码 下面是代码,我来到的壁橱就是这个代码下面的代码。我在努力完成它。我不知道如何以及在哪里输入Dask包 import numpy as np import gurobipy as gbp import time import dask.array as da def GuTransProb(): t1 = time.time() Demand # 10

我正在编写一个使用gurobipy开发的代码,目标是将Dask包集成到其中。目的是在更大的随机生成的数据集上运行代码

下面是代码,我来到的壁橱就是这个代码下面的代码。我在努力完成它。我不知道如何以及在哪里输入Dask包

import numpy as np
import gurobipy as gbp
import time
import dask.array as da

def GuTransProb():
    t1 = time.time()

    Demand 
    # 1000x1000
    Cij = np.random.randint(100, 1000, 250000)
    Cij = Cij.reshape(500,500)
    print Cij

    # Supply
    Si = np.random.randint(500, 2000, 500)
    Si = Si.reshape(500,1)
    SiSum = np.sum(Si)
    print SiSum

    # Demand
    Dj = np.sort(Si, axis=None)
    DjSum = np.sum(Dj)
    client_nodes = range(len(Cij))
    print client_nodes

    #       2. Create Model, Set MIP Focus, Add Variables, & Update Model
    m = gbp.Model(' -- The Transportation Problem -- ')
    # Set MIP Focus to 2 for optimality
    gbp.setParam('MIPFocus', 2)
    client_var = []
    for orig in client_nodes:
        client_var.append([])
        for dest in client_nodes:
            client_var[orig].append(m.addVar(vtype=gbp.GRB.CONTINUOUS, 
                                            obj=Cij[orig][dest], 
                                            name='x'+str(orig+1)+'_'+str(dest+1)))
    print client_var

    # Update Model Variables
    m.update()       

    #       3. Set Objective Function
    m.setObjective(gbp.quicksum(Cij[orig][dest]*client_var[orig][dest] 
                            for orig in client_nodes for dest in client_nodes), 
                            gbp.GRB.MINIMIZE)

    #       4. Add Constraints
    # Add Supply Constraints
    for orig in client_nodes:
        m.addConstr(gbp.quicksum(client_var[dest][orig] 
                            for dest in client_nodes) - Si[orig] == 0, 
                            'Supply_Constraint_%d' % orig)
    # Add Demand Constraints
    for orig in client_nodes:
        m.addConstr(gbp.quicksum(client_var[orig][dest] 
                            for dest in client_nodes) - Dj[orig] == 0, 
                            'Demand_Constraint_%d' % orig)

    #       5. Optimize and Print Results
    try:
        m.optimize()
    except Exception as e:
        print e

    t2 = time.time()-t1
    print '*****************************************************************************************'
    print '    | From SUPPLY Facility to DEMAND Facility x(Si)_(Dj) shipping # of units  '
    print '    |                                         ↓  ↓         ↓↓           ↓↓'
    selected = []
    for v in m.getVars():
        if v.x > 0:
            var = '%s' % v.VarName
            value = '%i' % v.x
            selected.append(v.x)
            print '    |                                       ', var, '_____ Units:       ' ,value
    print '    | Selected Facility Locations ---------  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ '
    print '    | Candidate Facilities [p] ------------ ', len(selected)
    print '    | Supply Sum -------------------------- ', SiSum
    print '    | Demand Sum -------------------------- ', DjSum
    val = m.objVal
    print '    | Objective Value --------------------- ', int(val)
    print '    | Real Time to Optimize (sec.) -------- ', t2
    print '*****************************************************************************************'
    print '  --  The Transportation Problem  --'
    m.write('path.lp')

try:
    GuTransProb()
except Exception as e:
    print e

#500x500 Cij=np.random.randint(1001000250000) 打印Cij Cij=Cij.整形(500500) 打印Cij Cij=da.from_数组(Cij,chunks=(10001000)) 打印Cij

# Supply
#Si = np.random.randint(500, 2000, 500)
#Si = Si.reshape(500,1)
#Si = da.from_array(Si, chunks=(100, 100))

Si = np.random.randint(500, 2000, 500)
print Si
Si = Si.reshape(500,1)
print Si
Si = da.from_array(Si, chunks=(1000, 1000))
print Si
SiSum = Si.sum()
print SiSum

# Demand
Dj = np.sort(Si, axis=None)
print Dj
DjSum = np.sum(Dj)
print DjSum
client_nodes = range(len(Cij))
print client_nodes

#       2. Create Model, Set MIP Focus, Add Variables, & Update Model
m = gbp.Model(' -- The Transportation Problem -- ')
# Set MIP Focus to 2 for optimality
gbp.setParam('MIPFocus', 2)
client_var = []
for orig in client_nodes:
    client_var.append([])
    for dest in client_nodes:
        client_var[orig].append(m.addVar(vtype=gbp.GRB.CONTINUOUS, 
                                        obj=Cij[orig][dest], 
                                        name='x'+str(orig+1)+'_'+str(dest+1)))
print client_var
# Update Model Variables
m.update()       

#       3. Set Objective Function
m.setObjective(gbp.quicksum(Cij[orig][dest]*client_var[orig][dest] 
                        for orig in client_nodes for dest in client_nodes), 
                        gbp.GRB.MINIMIZE)

#       4. Add Constraints
# Add Supply Constraints
for orig in client_nodes:
    m.addConstr(gbp.quicksum(client_var[dest][orig] 
                        for dest in client_nodes) - Si[orig] == 0, 
                        'Supply_Constraint_%d' % orig)
# Add Demand Constraints
for orig in client_nodes:
    m.addConstr(gbp.quicksum(client_var[orig][dest] 
                        for dest in client_nodes) - Dj[orig] == 0, 
                        'Demand_Constraint_%d' % orig)

#       5. Optimize and Print Results
try:
    m.optimize()
except Exception as e:
    print e

t2 = time.time()-t1
print '*****************************************************************************************'
print '    | From SUPPLY Facility to DEMAND Facility x(Si)_(Dj) shipping # of units  '
print '    |                                         ↓  ↓         ↓↓           ↓↓'
selected = []
for v in m.getVars():
    if v.x > 0:
        var = '%s' % v.VarName
        value = '%i' % v.x
        selected.append(v.x)
        print '    |                                       ', var, '_____ Units:       ' ,value
print '    | Selected Facility Locations ---------  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ '
print '    | Candidate Facilities [p] ------------ ', len(selected)
print '    | Supply Sum -------------------------- ', SiSum
print '    | Demand Sum -------------------------- ', DjSum
val = m.objVal
print '    | Objective Value --------------------- ', int(val)
print '    | Real Time to Optimize (sec.) -------- ', t2
print '*****************************************************************************************'
print '  --  The Transportation Problem  --'
m.write('path.lp')
尝试: 古特普罗布() 例外情况除外,如e:
打印e

我想你没有添加代码耶…添加一些代码伙伴。我已经添加了代码。非常感谢!你想达到什么目标?预期的输出是什么?我正在尝试将dask包集成到原始python代码中。有了这个,我将能够在更大的数据上运行代码,而不会耗尽内存。
# Supply
#Si = np.random.randint(500, 2000, 500)
#Si = Si.reshape(500,1)
#Si = da.from_array(Si, chunks=(100, 100))

Si = np.random.randint(500, 2000, 500)
print Si
Si = Si.reshape(500,1)
print Si
Si = da.from_array(Si, chunks=(1000, 1000))
print Si
SiSum = Si.sum()
print SiSum

# Demand
Dj = np.sort(Si, axis=None)
print Dj
DjSum = np.sum(Dj)
print DjSum
client_nodes = range(len(Cij))
print client_nodes

#       2. Create Model, Set MIP Focus, Add Variables, & Update Model
m = gbp.Model(' -- The Transportation Problem -- ')
# Set MIP Focus to 2 for optimality
gbp.setParam('MIPFocus', 2)
client_var = []
for orig in client_nodes:
    client_var.append([])
    for dest in client_nodes:
        client_var[orig].append(m.addVar(vtype=gbp.GRB.CONTINUOUS, 
                                        obj=Cij[orig][dest], 
                                        name='x'+str(orig+1)+'_'+str(dest+1)))
print client_var
# Update Model Variables
m.update()       

#       3. Set Objective Function
m.setObjective(gbp.quicksum(Cij[orig][dest]*client_var[orig][dest] 
                        for orig in client_nodes for dest in client_nodes), 
                        gbp.GRB.MINIMIZE)

#       4. Add Constraints
# Add Supply Constraints
for orig in client_nodes:
    m.addConstr(gbp.quicksum(client_var[dest][orig] 
                        for dest in client_nodes) - Si[orig] == 0, 
                        'Supply_Constraint_%d' % orig)
# Add Demand Constraints
for orig in client_nodes:
    m.addConstr(gbp.quicksum(client_var[orig][dest] 
                        for dest in client_nodes) - Dj[orig] == 0, 
                        'Demand_Constraint_%d' % orig)

#       5. Optimize and Print Results
try:
    m.optimize()
except Exception as e:
    print e

t2 = time.time()-t1
print '*****************************************************************************************'
print '    | From SUPPLY Facility to DEMAND Facility x(Si)_(Dj) shipping # of units  '
print '    |                                         ↓  ↓         ↓↓           ↓↓'
selected = []
for v in m.getVars():
    if v.x > 0:
        var = '%s' % v.VarName
        value = '%i' % v.x
        selected.append(v.x)
        print '    |                                       ', var, '_____ Units:       ' ,value
print '    | Selected Facility Locations ---------  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ '
print '    | Candidate Facilities [p] ------------ ', len(selected)
print '    | Supply Sum -------------------------- ', SiSum
print '    | Demand Sum -------------------------- ', DjSum
val = m.objVal
print '    | Objective Value --------------------- ', int(val)
print '    | Real Time to Optimize (sec.) -------- ', t2
print '*****************************************************************************************'
print '  --  The Transportation Problem  --'
m.write('path.lp')