我有一组具有相关属性(重量,长度,宽度)的项目.我还有一套包装类型,带有相关属性(最大重量,长度,宽度)
我正在寻找一种算法来确定包装物品的最少数量的盒子.
到目前为止,我已经探讨了背包问题,虽然它可以接近,但我并没有完全处理重量,价值类型的问题.
这是一个例子:
项目:10 x项目#1,(每个1磅,24英寸长,12英寸宽)5个项目#2,(每个2磅,24英寸长,6英寸宽)
包装类型:小盒子(MaxWeight = 40lbs,24"x12")大盒子(MaxWeight = 75lbs,24"x24")
打包的可能方法是:2x小盒子 - >每种物品类型1x大盒子 - >其中的一切
我想要返回单个框的结果,但如果我可以返回所有可能的组合,那也可以.
计算机如何知道(int x,y)x << y意味着移位y位?我不是指转变部分.我的意思是那y部分.计算机是否将x移位1并从y中减去1直到y == 0?如果不是,计算机如何计算y的值?
如果说y = 10,那么二进制表示是0b1010.计算机不能简单地拿走1010它并使用它,可以吗?
我试图为大于8的位大小.由于值不是简单地存储为标准整数的数组,容器不表示值,因此重载运算符<<并且>>有点困难.但是,从100位数字倒计数到0有点效率低,所以我试图找到一种方法让计算机更快地理解位数.
这个程序:
from __future__ import division
import numpy as np
from scipy.optimize import minimize
from collections import deque
def buy_captial():
""" buys the profit maximizing amount of captial """
offers = {'W': [{'quantity':50, 'price': 1}],
'K': [{'quantity':200, 'price': 0.5}]}
key_order = ('W', 'K')
exponents = {'W': 0.6, 'K': 0.4}
prices = {}
quantities = {}
for key in key_order:
if key in offers:
prices[key] = deque([offers[key][i]['price'] for i in range(len(offers[key]))])
quantities[key] = deque([offers[key][i]['quantity'] for i in range(len(offers[key]))])
print quantities
budget = …Run Code Online (Sandbox Code Playgroud) 如何在没有数学函数(arctan)的点和组织(0,0)之间计算快速通道角度(最接近八个提供值之一)?我已拆分的xy坐标系中的8个段(0,45,90,135,180,225,270,315),我需要找到点和org之间的角度(不准确的上述8只是最接近的值),而不重数学函数.我可以找到
std::pair<float,float> point;
float angle =arctan(point.second/point.first);
int index =static_cast<int>( (angle+22.5)/45);
Run Code Online (Sandbox Code Playgroud)
然后通过索引从数组中读取.(我增加了22.5度因为[-22.5, 22.5)=>0, [22.5,67.5)=>45,[67.5,112.5)=>90...)有更快的方式,任何想法(执行时间非常重要)?
我正在研究一些x86 ASM代码以及代码的真正功能,我的理解是power函数(x ^ y)在内部用作对数函数.在内部我指的是CPU寄存器.
为什么是这样?有什么好处?它是否可以被其他高级语言(如C++)复制和借用?
我试图在MIP中建模以下约束:
x_1 +x_2 + ... +x_n != d
Run Code Online (Sandbox Code Playgroud)
我的想法是引入一个变量z,即1,如果x_1 + x_2 + ... + x_n = d并添加约束
z <= 0.
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何建模约束
(x_1 +x_2 + ... +x_n = d) ==> z=1
Run Code Online (Sandbox Code Playgroud)
在整数程序中.
我试图最小化由除约束变量之外的变量组成的目标函数.有没有办法将参数传递给这样的函数,例如:
data = xlsread('Returns.xlsx', 'Sheet2','A2:F324');
for i = 1:10
returns = data(i:i+59,1:5);
fund = data(i:i+59,6:6);
lb = [0;0;0;0;0];
ub = [1; 1; 1; 1; 1];
[betas, fval] = fmincon(@obj_function, [0 .2 .2 .2 .2 .2], [], [], [], [], lb, ub, @constraints);
end
Run Code Online (Sandbox Code Playgroud)
目标函数定义为:
function [ value ] = obj_function(betas)
value = returns*betas(2:6) + betas(1);
value = sum((value - fund)^2);
end
Run Code Online (Sandbox Code Playgroud)
由于我的目标函数需要额外的变量,returns并且fund我可以继续从主函数传递它的最佳方法是什么?以下陈述无效,我还能做什么?
[betas, fval] = fmincon(@obj_function(returns, fund), [.2 .2 .2 .2 .2], [], [], [], [], …
我想找出最合适的数据.我做的是循环遍历各种n值并使用公式((y_fit - y_actual)/ y_actual)x 100计算每个p的残差.然后我计算每个n的平均值,然后找出最小残差均值和相应的n值并使用此值拟合.可重现的代码包括:
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize
x = np.array([12.4, 18.2, 20.3, 22.9, 27.7, 35.5, 53.9])
y = np.array([1, 50, 60, 70, 80, 90, 100])
y_residual = np.empty(shape=(1, len(y)))
residual_mean = []
n = np.arange(0.01, 10, 0.01)
def fit(x, a, b):
return a * x + b
for i in range (len(n)):
x_fit = 1 / np.log(x) ** n[i]
y_fit = y
fit_a, fit_b = optimize.curve_fit(fit, x_fit, y_fit)[0]
y_fit = …Run Code Online (Sandbox Code Playgroud) 这个来自adagio函数knapsack()的CRAN文档的摘录按预期运行 - 它解决了利润向量p,权重向量w和容量的背包问题cap,选择具有最大利润的元素子集受限于总权重选定的元素不超过容量.
library(adagio)
p <- c(15, 100, 90, 60, 40, 15, 10, 1)
w <- c( 2, 20, 20, 30, 40, 30, 60, 10)
cap <- 102
(is <- knapsack(w, p, cap))
Run Code Online (Sandbox Code Playgroud)
如何向解决方案添加矢量长度约束并仍然获得最佳答案?例如,上面的练习,但选定的子集必须包含正好三个元素.
我有一套(x, y, z)点,我需要找到最适合他们的飞机.平面由其系数定义为:
a*x + b*y + c*z + d = 0
Run Code Online (Sandbox Code Playgroud)
或等效地:
A*X +B*y + C = z
Run Code Online (Sandbox Code Playgroud)
第二个等式只是对第一个等式的重写.
我正在使用这个要点中开发的方法,这是从本答案中给出的Matlab代码到Python的翻译.该方法找到系数以定义最适合该组点的平面方程.
问题在于我能够提出一组系数,以便更好地适应这组点.
为了定义"更好",我按照这里给出的数学计算每个点到给定平面的绝对距离之和.较小的值意味着"更好"的拟合,因为这些点然后平均更接近平面.
MWE在下面.如可以看到的,手工采摘系数导致绝对距离值(较小总和~155.89),除了使用由(上述方法找到"最好"的系数~158.78).
我在这里错过了什么?
MWE
import numpy as np
import scipy.linalg
def sum_dist_2_plane(x, y, z, a, b, c, d):
"""
Sum of the absolute values of the distances to a plane, given by the
a,b,c,d coefficients, for the set of points defined by x,y,z.
""" …Run Code Online (Sandbox Code Playgroud)