如何使用 Gekko 加快优化速度?

2023-12-23

我的计划是优化家用电池的充电和放电,以最大限度地降低年底的电力成本。每15分钟测量一次家庭用电量,所以我在1天内有96个测量点。我想优化电池 2 天的充电和放电,以便第 1 天考虑到第 2 天的使用情况。我编写了以下代码并且它有效。

from gekko import GEKKO
import numpy as np
import pandas as pd
import time
import math

# ------------------------ Import and read input data ------------------------

file = r'D:\Bedrijfseconomie\MP Thuisbatterijen\Spyder - Gekko\Data Sim 1.xlsx'

data = pd.read_excel(file, sheet_name='Input', na_values='NaN')

dataRead = pd.DataFrame(data, columns= ['Timestep','Verbruik woning (kWh)','Prijs afname (€/kWh)',
                                            'Capaciteit batterij (kW)','Capaciteit batterij (kWh)',
                                            'Rendement (%)','Verbruikersprofiel'])

timestep = dataRead['Timestep'].to_numpy()                                 
usage_home = dataRead['Verbruik woning (kWh)'].to_numpy()
price = dataRead['Prijs afname (€/kWh)'].to_numpy()
cap_batt_kW = dataRead['Capaciteit batterij (kW)'].iloc[0]              
cap_batt_kWh = dataRead['Capaciteit batterij (kWh)'].iloc[0]
efficiency = dataRead['Rendement (%)'].iloc[0]
usersprofile = dataRead['Verbruikersprofiel'].iloc[0]

# ---------------------------- Optimization model ----------------------------
# Initialise model
m = GEKKO()

# Global options
m.options.SOLVER = 1

# Constants
snelheid_laden = cap_batt_kW/4
T = len(timestep)

loss_charging = m.Const(value = (1-efficiency)/2) 
max_cap_batt = m.Const(value = cap_batt_kWh)
min_cap_batt = m.Const(value = 0)
max_charge = m.Const(value = snelheid_laden)                                    # max battery can charge in 15min
max_decharge = m.Const(value = -snelheid_laden)                                 # max battery can decharge in 15min

# Parameters
dummy = np.array(np.ones([T]))

# Variables
e_batt = m.Array(m.Var, (T), lb = min_cap_batt, ub = max_cap_batt)              # energy in battery
usage_net = m.Array(m.Var, (T))                                                 # usage home & charge/decharge battery
price_paid = m.Array(m.Var, (T))                                                 # price paid each 15min
charging = m.Array(m.Var, (T), lb = max_decharge, ub = max_charge)              # amount charge/decharge each 15min

# Intermediates
e_batt[0] = m.Intermediate(charging[0])
for t in range(T):
    e_batt[t] = m.Intermediate(m.sum([charging[i]*(1-loss_charging) for i in range(t)]))
usage_net = [m.Intermediate(usage_home[t] + charging[t]) for t in range(T)]
price_paid = [m.Intermediate(usage_net[t] * price[t] / 100) for t in range(T)]
total_price = m.Intermediate(m.sum([price_paid[t] for t in range(T)]))

# Equations (constraints)
m.Equation([min_cap_batt*dummy[t] <= e_batt[t] for t in range(T)])
m.Equation([max_cap_batt*dummy[t] >= e_batt[t] for t in range(T)])
m.Equation([max_charge*dummy[t] >= charging[t] for t in range(T)])
m.Equation([max_decharge*dummy[t] <= charging[t] for t in range(T)])
m.Equation([min_cap_batt*dummy[t] <= usage_net[t] for t in range(T)])
m.Equation([(-1*charging[t]) <= (1-loss_charging)*e_batt[t] for t in range(T)])

# Objective 
m.Minimize(total_price)

# Solve problem
m.solve()

我的代码正在运行并且可以工作,但尽管它给出的解决方案时间为 10 秒,但它的总运行时间约为 8 分钟。有谁知道我可以加快速度的方法吗?


有几种方法可以加快 Gekko 代码的速度:

  • 在本地解决而不是在公共服务器上解决。选项是m=GEKKO(remote=False)。公共服务器可能会因许多作业而变慢。
  • Use sum()代替m.sum()。这可以更快地编译模型。否则,使用m.integral(x)如果你需要积分x.
  • 许多方程在每个时间范围步骤中都会重复。 Gekko 使用单个方程定义更加高效IMODE=2(对于代数方程模型)或IMODE=6(对于微分/代数方程模型),然后在时间范围内创建方程。您可能需要使用m.vsum()代替m.sum().

如需其他诊断,请尝试设置m.options.DIAGLEVEL=1获取编译模型和执行每个函数、一阶导数和二阶导数计算所需时间的详细时序报告。它还提供了求解阶段求解器与模型时间的详细视图。

通过数据文件测试进行更新

感谢您发送数据文件。运行目录显示模型文件长度为 58,682 行。编译这么大的模型需要一段时间。以下是您发送的文件中的解决方案:

 --------- APM Model Size ------------
 Each time step contains
   Objects      :          193
   Constants    :            5
   Variables    :        20641
   Intermediates:          578
   Connections  :        18721
   Equations    :        20259
   Residuals    :        19681
 
 Number of state variables:          20641
 Number of total equations: -        19873
 Number of slack variables: -         1152
 ---------------------------------------
 Degrees of freedom       :           -384
 
 * Warning: DOF <= 0
 ----------------------------------------------
 Steady State Optimization with APOPT Solver
 ----------------------------------------------
 
 Iter    Objective  Convergence
    0  3.37044E+01  5.00000E+00
    1  2.81987E+01  1.00000E-10
    2  2.81811E+01  5.22529E-12
    3  2.81811E+01  2.10942E-15
    4  2.81811E+01  2.10942E-15
 Successful solution
 
 ---------------------------------------------------
 Solver         :  APOPT (v1.0)
 Solution time  :    10.5119999999879      sec
 Objective      :    28.1811214884047     
 Successful solution
 ---------------------------------------------------

这是一个使用的版本IMODE=6反而。您定义一次变量和方程,然后让 Gekko 处理时间离散化。它建立了一个更有效的模型,因为没有不必要的重复方程。

from gekko import GEKKO
import numpy as np
import pandas as pd
import time
import math

# ------------------------ Import and read input data ------------------------

file = r'Data Sim 1.xlsx'

data = pd.read_excel(file, sheet_name='Input', na_values='NaN')

dataRead = pd.DataFrame(data, columns= ['Timestep','Verbruik woning (kWh)','Prijs afname (€/kWh)',
                                            'Capaciteit batterij (kW)','Capaciteit batterij (kWh)',
                                            'Rendement (%)','Verbruikersprofiel'])

timestep = dataRead['Timestep'].to_numpy()                                 
usage_home = dataRead['Verbruik woning (kWh)'].to_numpy()
price = dataRead['Prijs afname (€/kWh)'].to_numpy()
cap_batt_kW = dataRead['Capaciteit batterij (kW)'].iloc[0]              
cap_batt_kWh = dataRead['Capaciteit batterij (kWh)'].iloc[0]
efficiency = dataRead['Rendement (%)'].iloc[0]
usersprofile = dataRead['Verbruikersprofiel'].iloc[0]

# ---------------------------- Optimization model ----------------------------
# Initialise model
m = GEKKO()
m.open_folder()

# Global options
m.options.SOLVER = 1
m.options.IMODE  = 6

# Constants
snelheid_laden = cap_batt_kW/4
m.time = timestep

loss_charging = m.Const(value = (1-efficiency)/2) 
max_cap_batt = m.Const(value = cap_batt_kWh)
min_cap_batt = m.Const(value = 0)
max_charge = m.Const(value = snelheid_laden)                                    # max battery can charge in 15min
max_decharge = m.Const(value = -snelheid_laden)                                 # max battery can decharge in 15min

# Parameters
usage_home = m.Param(usage_home)
price = m.Param(price)

# Variables
e_batt = m.Var(value=0, lb = min_cap_batt, ub = max_cap_batt)  # energy in battery
price_paid = m.Var()                                              # price paid each 15min
charging = m.Var(lb = max_decharge, ub = max_charge)              # amount charge/decharge each 15min
usage_net = m.Var(lb=min_cap_batt)

# Equations
m.Equation(e_batt==m.integral(charging*(1-loss_charging)))
m.Equation(usage_net==usage_home + charging)
price_paid = m.Intermediate(usage_net * price / 100)
m.Equation(-charging <= (1-loss_charging)*e_batt)

# Objective 
m.Minimize(price_paid)

# Solve problem
m.solve()

import matplotlib.pyplot as plt
plt.plot(m.time,e_batt.value,label='Battery Charge')
plt.plot(m.time,charging.value,label='Charging')
plt.plot(m.time,price_paid.value,label='Price')
plt.plot(m.time,usage_net.value,label='Net Usage')
plt.xlabel('Time'); plt.grid(); plt.legend(); plt.show()

该模型只有 31 行长(参见gk0_model.apm)并且解决速度更快(总共几秒钟)。

 --------- APM Model Size ------------
 Each time step contains
   Objects      :            0
   Constants    :            5
   Variables    :            8
   Intermediates:            1
   Connections  :            0
   Equations    :            6
   Residuals    :            5
 
 Number of state variables:           1337
 Number of total equations: -          955
 Number of slack variables: -          191
 ---------------------------------------
 Degrees of freedom       :            191
 
 ----------------------------------------------
 Dynamic Control with APOPT Solver
 ----------------------------------------------
 
 Iter    Objective  Convergence
    0  3.46205E+01  3.00000E-01
    1  3.30649E+01  4.41141E-10
    2  3.12774E+01  1.98558E-11
    3  3.03148E+01  1.77636E-15
    4  2.96824E+01  3.99680E-15
    5  2.82700E+01  8.88178E-16
    6  2.82039E+01  1.77636E-15
    7  2.81334E+01  8.88178E-16
    8  2.81085E+01  1.33227E-15
    9  2.81039E+01  8.88178E-16
 
 Iter    Objective  Convergence
   10  2.81005E+01  8.88178E-16
   11  2.80999E+01  1.77636E-15
   12  2.80996E+01  8.88178E-16
   13  2.80996E+01  8.88178E-16
   14  2.80996E+01  8.88178E-16
 Successful solution
 
 ---------------------------------------------------
 Solver         :  APOPT (v1.0)
 Solution time  :   0.527499999996508      sec
 Objective      :    28.0995878585948     
 Successful solution
 ---------------------------------------------------

编译时间不长。此外,求解器时间从 10 秒减少到 0.5 秒。目标函数几乎相同(28.18 与 28.10)。

这是一个完整的版本,没有数据文件依赖性(以防数据文件将来不可用)。

from gekko import GEKKO
import numpy as np
import pandas as pd
import time
import math

# ------------------------ Import and read input data ------------------------
timestep = np.arange(1,193)                                 
usage_home = np.array([0.05,0.07,0.09,0.07,0.05,0.07,0.07,0.07,0.06,
                          0.05,0.07,0.07,0.09,0.07,0.06,0.07,0.07,
                          0.07,0.16,0.12,0.17,0.08,0.10,0.11,0.06,
                          0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.08,
                          0.08,0.06,0.07,0.07,0.07,0.07,0.05,0.07,
                          0.07,0.07,0.07,0.21,0.08,0.07,0.08,0.27,
                          0.12,0.09,0.10,0.11,0.09,0.09,0.08,0.08,
                          0.12,0.15,0.08,0.10,0.08,0.10,0.09,0.10,
                          0.09,0.08,0.10,0.12,0.10,0.10,0.10,0.11,
                          0.10,0.10,0.11,0.13,0.21,0.12,0.10,0.10,
                          0.11,0.10,0.11,0.12,0.12,0.10,0.11,0.10,
                          0.10,0.10,0.11,0.10,0.10,0.09,0.08,0.12,
                          0.10,0.11,0.11,0.10,0.06,0.05,0.06,0.06,
                          0.06,0.07,0.06,0.06,0.05,0.06,0.05,0.06,
                          0.05,0.06,0.05,0.06,0.07,0.06,0.09,0.10,
                          0.10,0.22,0.08,0.06,0.05,0.06,0.08,0.08,
                          0.07,0.08,0.07,0.07,0.16,0.21,0.08,0.08,
                          0.09,0.09,0.10,0.09,0.09,0.08,0.12,0.24,
                          0.09,0.08,0.09,0.08,0.10,0.24,0.08,0.09,
                          0.09,0.08,0.08,0.07,0.06,0.05,0.06,0.07,
                          0.07,0.05,0.05,0.06,0.05,0.28,0.11,0.20,
                          0.10,0.09,0.28,0.10,0.15,0.09,0.10,0.18,
                          0.12,0.13,0.30,0.10,0.11,0.10,0.10,0.11,
                          0.10,0.21,0.10,0.10,0.12,0.10,0.08])
price = np.array([209.40,209.40,209.40,209.40,193.00,193.00,193.00,
                    193.00,182.75,182.75,182.75,182.75,161.60,161.60,
                    161.60,161.60,154.25,154.25,154.25,154.25,150.70,
                    150.70,150.70,150.70,150.85,150.85,150.85,150.85,
                    150.00,150.00,150.00,150.00,153.25,153.25,153.25,
                    153.25,153.25,153.25,153.25,153.25,151.35,151.35,
                    151.35,151.35,151.70,151.70,151.70,151.70,154.95,
                    154.95,154.95,154.95,150.20,150.20,150.20,150.20,
                    153.75,153.75,153.75,153.75,160.55,160.55,160.55,
                    160.55,179.90,179.90,179.90,179.90,202.00,202.00,
                    202.00,202.00,220.25,220.25,220.25,220.25,245.75,
                    245.75,245.75,245.75,222.90,222.90,222.90,222.90,
                    203.40,203.40,203.40,203.40,205.30,205.30,205.30,
                    205.30,192.80,192.80,192.80,192.80,177.00,177.00,
                    177.00,177.00,159.90,159.90,159.90,159.90,152.50,
                    152.50,152.50,152.50,143.95,143.95,143.95,143.95,
                    142.10,142.10,142.10,142.10,143.75,143.75,143.75,
                    143.75,170.80,170.80,170.80,170.80,210.35,210.35,
                    210.35,210.35,224.45,224.45,224.45,224.45,226.30,
                    226.30,226.30,226.30,227.85,227.85,227.85,227.85,
                    225.45,225.45,225.45,225.45,225.80,225.80,225.80,
                    225.80,224.50,224.50,224.50,224.50,220.30,220.30,
                    220.30,220.30,220.00,220.00,220.00,220.00,221.90,
                    221.90,221.90,221.90,230.25,230.25,230.25,230.25,
                    233.60,233.60,233.60,233.60,225.20,225.20,225.20,
                    225.20,179.85,179.85,179.85,179.85,171.85,171.85,
                    171.85,171.85,162.90,162.90,162.90,162.90,158.85,
                    158.85,158.85,158.85])
cap_batt_kW = 3.00             
cap_batt_kWh = 5.00
efficiency = 0.95
usersprofile = 1

# ---------------------------- Optimization model ----------------------------
# Initialise model
m = GEKKO()
#m.open_folder()

# Global options
m.options.SOLVER = 1
m.options.IMODE  = 6

# Constants
snelheid_laden = cap_batt_kW/4
m.time = timestep

loss_charging = m.Const(value = (1-efficiency)/2) 
max_cap_batt = m.Const(value = cap_batt_kWh)
min_cap_batt = m.Const(value = 0)
max_charge = m.Const(value = snelheid_laden)                                    # max battery can charge in 15min
max_decharge = m.Const(value = -snelheid_laden)                                 # max battery can decharge in 15min

# Parameters
usage_home = m.Param(usage_home)
price = m.Param(price)

# Variables
e_batt = m.Var(value=0, lb = min_cap_batt, ub = max_cap_batt)  # energy in battery
price_paid = m.Var()                                              # price paid each 15min
charging = m.Var(lb = max_decharge, ub = max_charge)              # amount charge/decharge each 15min
usage_net = m.Var(lb=min_cap_batt)

# Equations
m.Equation(e_batt==m.integral(charging*(1-loss_charging)))
m.Equation(usage_net==usage_home + charging)
price_paid = m.Intermediate(usage_net * price / 100)
m.Equation(-charging <= (1-loss_charging)*e_batt)

# Objective 
m.Minimize(price_paid)

# Solve problem
m.solve()

import matplotlib.pyplot as plt
plt.plot(m.time,e_batt.value,label='Battery Charge')
plt.plot(m.time,charging.value,label='Charging')
plt.plot(m.time,price_paid.value,label='Price')
plt.plot(m.time,usage_net.value,label='Net Usage')
plt.xlabel('Time'); plt.grid(); plt.legend(); plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Gekko 加快优化速度? 的相关文章

  • 为什么数组索引或基索引以 0 开头?

    在使用任何语言处理数组时 我一直想知道为什么数组的基地址或索引号以零开头 int x 5 21 34 55 314 45 现在 如果我想访问数组的任何第一个值 我将不得不使用x 0 但是为什么 0 这背后有什么逻辑呢 在 C 语言中 数组的
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • Array.indexOf 如何比 Array.some 更高效

    这个问题的灵感来自于这个问题的竞争答案 具有多个参数的indexOf https stackoverflow com questions 39000151 indexof with multiple arguments 用户想知道一种有效的
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • Java 9:AES-GCM 性能

    我进行了一个简单的测试来测量AES GCM https en wikipedia org wiki Galois Counter Mode表现在Java 9 通过在循环中加密字节缓冲区 结果有些令人困惑 本机 硬件 加速似乎有效 但并非总是
  • 如何连接/组合两个数组以连接成一个数组?

    我正在尝试将 JavaScript 中的 2 个数组合并为一个 var lines new Array a b c lines new Array d e f 这是一个简单的例子 我希望能够将它们组合起来 这样当读取第二行时 数组中的第四个
  • 数组匹配值过滤器 PHP [重复]

    这个问题在这里已经有答案了 我尝试在数组中搜索 但根本没有得到任何结果 假设我有一个包含一些值的数组 所以当我想搜索它们时 它总是返回 null 不知道为什么 假设这是我的数组 data Array 0 gt Array id gt 122
  • 存储 PHP 数组的首选方法(json_encode 与序列化)

    我需要将多维关联数据数组存储在平面文件中以进行缓存 我偶尔可能会遇到需要将其转换为 JSON 以便在我的 Web 应用程序中使用的情况 但绝大多数时候我会直接在 PHP 中使用该数组 在此文本文件中将数组存储为 JSON 或 PHP 序列化
  • std::类似向量的类经过优化以容纳少量项目[重复]

    这个问题在这里已经有答案了 在程序的一个时间关键部分中 有一个类成员如下所示 std vector m vLinks 在分析过程中 我注意到该向量大约 99 98 的执行仅包含 0 或 1 个项目 然而 在极少数情况下 它可能会容纳更多 根
  • 为什么 pandas 在简单的数学运算上比 numpy 更快?

    最近 我观察到 pandas 的乘法速度更快 我在下面的例子中向您展示了这一点 如此简单的操作怎么可能做到这一点 这怎么可能呢 pandas 数据帧中的底层数据容器是 numpy 数组 测量 我使用形状为 10k 10k 的数组 数据框 i
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 返回年份数组作为年份范围

    我正在尝试查询一个包含以下内容的表character varying 年份列 并将这些年份作为逗号分隔的年份范围字符串返回 年份范围将由数组中存在的连续年份确定 不连续的年份 年份范围应以逗号分隔 数据类型的原因是character var
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 优化 CSS 交付 - Google 的建议

    谷歌建议在 head 中使用非常重要的 CSS 内联 并在内部使用其他 CSS
  • 为什么对于小数组,for-of 循​​环比标准 for 循环快,而对于大数组则慢?

    在 JavaScript 中 我注意到 ES6for of循环的性能与传统的有很大不同for start stop step loop 基准 const n 10000 const arr Array n fill map e i gt i
  • PHP中的反转数组

    array 7 0 gt array 2 id gt string 1 9 roi gt float 0 1 gt array 2 id gt string 1 1 roi gt float 0 2 gt array 2 id gt str
  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • postgresql中数组的区别

    我有两个数组 1 2 3 4 7 6 and 2 3 7 在 PostgreSQL 中可能有共同的元素 我想做的是从第一个数组中排除第二个数组中存在的所有元素 到目前为止我已经取得了以下成果 SELECT array SELECT unne
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat

随机推荐

  • System.IO.Compression.ZipFile .NET 4.5 输出 zip 不适合 Linux/Mac/Java

    使用 NET时System IO Compression ZipFile CreateFromDirectory类结果 zip 在带有正斜杠目录分隔符的系统上被严重提取 原因 zip 名称中包含反斜杠 为了解决这个问题 有一个解决方法 cl
  • Xcode - iPhone - 配置文件与默认钥匙串中的任何有效证书/私钥对不匹配

    我尝试将我的 iPhone 添加到 Xcode4 来测试我的应用程序 我在 Apple Developer Center 中添加了设备并下载了 Provision Profile 我们每月为该帐户支付 99 美元 而且我不是唯一使用该帐户的
  • 如何生成“粗”的贝塞尔曲线?

    我正在寻找一种通过 加厚 贝塞尔曲线以编程方式生成多边形的方法 像这样的东西 我最初的想法是找到直线中的法线 并从中生成多边形 但问题是法线可能会以陡峭的曲线相互交叉 如下所示 是否有任何公式或算法可以从贝塞尔曲线生成多边形 我在互联网上找
  • 如何在 Kotlin 中获取具体化泛型参数的实际类型参数?

    Using 具体化类型参数 https kotlinlang org docs reference inline functions html reified type parameters 可以编写一个内联函数 在运行时通过反射来处理类型
  • java中正十进制值和负十进制值的正则表达式

    负十进制值和正十进制值的正则表达式 以便可以 使用模式和匹配器与字符串匹配以获得正确的实现 谁能给我提供一下吗 0 9 0 9
  • RMI 连接在本地主机上被拒绝

    我正在尝试学习 RMI 编码 当我运行 RMI 的服务器端时 连接被拒绝 这是我的服务器主要方法 public static void main String args throws Exception Implementation imp
  • 如何绑定到 SwiftUI 中可选的数据

    我很好奇 我们如何指定对属于可选部分的状态数据的绑定 例如 struct NameRecord var name var isFunny false class AppData ObservableObject Published var
  • 使用 SSZipArchive 解压缩文件 - Swift

    我正在尝试使用 SSZipArchive 框架解压缩文件 let unzipper SSZipArchive unzipFileAtPath String document toDestination String documentsUrl
  • PyQt 打印原始 PDF

    假设我有一个test pdf文件在当前目录中 我想使用以下命令将此原始文件发送到打印机PyQt 图形用户界面打印机 下面的Python3代码打印PDF源代码 我不希望 Qt 为我构建 PDF 而只是使用 gui 对话框将其发送到打印机 这应
  • NVidia CUDA 工具包 7.5.27 无法在 OS X 上安装

    下载 CUDA 工具包 DMG 可以工作 但安装程序在选择软件包后失败 并出现神秘的 软件包清单解析错误 错误 使用内部二进制文件从命令行运行安装程序也会以类似的方式失败 var log cuda installer log 处的日志文件基
  • JavaScript 数组问题

    好的 我只是回顾一下 JavaScript 中的一些基本编程原则 我是编程新手 所以请耐心等待 下面是我遇到问题的代码 特别注意数组的字符串组件 var name new Array var sales new Array var tota
  • 如何突出显示列中非空白的重复项?

    我想突出显示 I 列中连接字符串的所有重复项 并在突出显示任何重复项时提供错误消息 但是 该列中有几个空白单元格 我不希望在运行宏时这些单元格显示为重复项 我从这里得到了这个代码 Sub HighlightDuplicateValues D
  • 没有编译器优化的 SSE 内在函数

    我是 SSE 内在函数的新手 并尝试通过它来优化我的代码 这是我的程序 用于计算等于给定值的数组元素 我将代码更改为 SSE 版本 但速度几乎没有改变 我想知道我是否以错误的方式使用SSE 此代码用于不允许我们启用编译器优化选项的分配 无
  • 当从 C# 程序中反序列化 JSON 时,我是否需要使用 JavaScriptSerializer 以外的任何东西?

    NET 中提供了 JavaScriptSerializer 类 System Web Script Serialization 命名空间 在 System Web Extensions dll 中提供 它最初旨在支持 AJAX Web 服务
  • 如何使用通配符设置docker的NO_PROXY

    正如 docker 官方文档中提到的here https docs docker com config daemon systemd configure where the docker daemon listens for connect
  • flatMap API 合约如何将可选输入转换为非可选结果?

    这是 Swift 3 0 2 中 flatMap 的合约 public struct Array
  • 从 Unity 中的 Android Studio 读取意图

    我有一个 Unity 游戏导出到 Android Studio 中 我有一个已保存游戏的列表 其中存储了玩家玩的每个游戏的最后一个场景 基本上存储玩家的进度 从 Unity 到 Android Studio 播放的最后一个场景的编写效果非常
  • Delphi 应用程序的插件系统 - bpl 与 dll?

    我正在编写delphi应用程序 它应该具有加载插件的能力 我使用 JvPluginManager 作为插件系统 管理器 现在 在新的插件向导中 他们说最好使用 bpl 类型插件而不是 dll 插件 这个解决方案与 dll 类型插件相比有什么
  • 增量求解有什么好处?

    如果 pop 完全破坏了上下文 即学到的引理 增量约束求解使用 堆栈 的目的是什么 模式 理由 我想如果我只有 1 个约束 几个 合词 最好进行单个查询 而不是 将单独帧中的合取词堆叠到堆栈上 如果我 有超过 1 个约束并决定使用增量求解
  • 如何使用 Gekko 加快优化速度?

    我的计划是优化家用电池的充电和放电 以最大限度地降低年底的电力成本 每15分钟测量一次家庭用电量 所以我在1天内有96个测量点 我想优化电池 2 天的充电和放电 以便第 1 天考虑到第 2 天的使用情况 我编写了以下代码并且它有效 from