- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
求解S和T1…TN,使下列总和最小化:
∑nk=1(1-分钟(s·tk,ck)/最大(s·tk,ck)),
在哪里?
C1…CN>1,
S>0,
T1…tn∈_+
编辑以澄清问题描述:
“你需要多快的算法。”不是超快的(但不是多秒)。n大约在5-10左右。
至于实际问题,我在“页面”上有不同大小的“元素”,这个页面需要转换成一个X元素的最大基数格式,元素的基本大小必须是整数。但是,在新格式中,任何元素都可以通过为页面设置的单个缩放因子进行缩放。
所以c1…cn是原始页面上元素的大小。T1…TN是新页面格式中的新整数大小。(T1…TN需要小于X。)新页面格式的缩放因子为S。
更多
就我之前所做的,我发现了原始页面上最大的元素,如果它比X小,我只在新页面上使用现有元素大小,而将每个元素大小整为整数。但是,如果原始页上最大的元素大于x,我将其大小除以x,得到新页的缩放因子s,将c1…cn除以s,得到t1…tn。但这会导致新页上每个元素的大小差异平均约为1-3%,但最大的元素除外。不是很明显,但我是个完美主义者。
最佳答案
您还应该阅读integer unknowns的线性规划。
即使这不是线性规划,它可能会给你一个什么样的想法寻找。
另外,您可能会转到https://mathoverflow.net/以获得重新建模问题的帮助(您有一个整数域上的优化问题,目标函数中存在不连续性,而我的数学对正确地放置它有点生疏;也可以检查combinatorial optimization)
(对于正确的解决方案,请跳到下面的edit4)
编辑:
关于线性
寻找最大值
∑nk=1(1-分钟(s·tk,ck)/最大(s·tk,ck))
可能和看最大值一样
∑nk=1(最大(s·tk,ck)-最小(s·tk,ck))
前提是
σnk=1 max(s·tk,ck)>0
(哪个总是?真的吗?考虑到你的条件)
和期限
∑nk=1(最大(s·tk,ck)-最小(s·tk,ck))
可以写成
∑nk=1 abs(s·tk-ck)
如果上面的问号表示
S和TK最大化
最小化所有CK
所以所有c=1,以及所有t和s································
好吧,原来我的建议是错的,因为我假设一个问题不会变成一个案例,事实上很明显是这样。
编辑2:
我的数学是生疏的,上面的过程是不正确的(第一步),但是结论/解决方案似乎是有效的,所以我不会更正(它变得有点复杂)
edit3(ck是常数和其他修正):
也许我应该整理一下答案,我相信下面的推理就足够了:
ck是常数而不等于1这一事实无关紧要。最大化原创表达
∑nk=1(1-分钟(s·tk,ck)/最大(s·tk,ck))
你应该尽量减少
∑nk=1分钟(s·tk,ck)/max(s·tk,ck)
因为所有的领域都是正的,使这个比率最小,你必须使分子尽可能小,分母尽可能大。
如果
tk为0(对于所有k);?min(0,ck)/max(0,ck)=0/ck=0
如果
s接近于零(与上面类似,只有它是等于0的极限)
s接近无穷大–“min(∞,ck)/max(∞,ck)=ck/∞=0
(上述等式应使用极限符号…)
所有k的tk接近无穷大
(每一个条件本身就足够了,代表了解决方案,当组合它们时,不要让s接近0,而tk接近无穷大,反之亦然;在这种情况下,哪一个接近得更快是很重要的)
edit4:(实际解决方案)
基本上所有上面都给出了一个错误的答案,因为我在寻找原始目标函数的最大值,而不是最小值。
至于最小值,它有点有趣,如果每个项都达到最小值
最小(s·tk,ck)/最大(s·tk,ck)=1
这是给定参数域的这个术语的最大值。如果我们假设ck是整数,那么可以找到
S=1
TK=CK
但是在一般情况下,ck不是整数,所以我们需要找到ck/s是整数的s。
如果我们能把ck写成
nk/dk,其中n,d∈+(换言之,如果ckdegenerate)
那么一个解决方案可以是
s=1/∏nk=1dk
tk=nk/dk·∏nk=1dk
(即∈_+)
笔记
与其选择s是所有分母的乘积,不如将它设置为最大公分母,然后可以适当地计算tk。
注2:
绘制相关函数的图表有助于我发现错误的理解问题(意识到最小值更有趣)。我也意识到这些函数是连续的(但不是光滑的,所以推导是不连续的)。
注3:
上述解适用于有理数,但我认为无理数不会使解无用,因为无理数的十进制或其他有理表示将给出接近于实解的近似解,因为表示接近无理数的实际值。
关于algorithm - 解决一些未知数必须为整数的方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995288/
@Cacheable在同一类中方法调用无效 上述图片中,同一个类中genLiveBullets()方法调用同类中的queryLiveByRoom()方法,这样即便标识了Cacheable标签,
目录 @Transaction注解导致动态切换更改数据库失效 使用场景 遇到问题 解决 @Transaction
@RequestBody不能class类型匹配 在首次第一次尝试使用@RequestBody注解 开始加载字符串使用post提交(貌似只能post),加Json数据格式传输的时候,
目录 @Autowired注入static接口问题 @Autowired自动注入普通service很方便 但是如果注入static修饰的serv
目录 @RequestBody部分属性丢失 问题描述 JavaBean实现 Controller实现
目录 解决@PathVariable参数接收不完整的问题 今天遇到的问题是: 解决办法: @PathVariable接受的参
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚。后来终于找到了原因。 如果你也出现了这种情况,可以从下面开始排查。 1、特性 先来了解一下@Trans
概述: ? 1
场景: 在处理定时任务时,由于这几个方法都是静态方法,在aop的切面中使用@Around注解,进行监控方法调用是否有异常。 发现aop没有生效。 代码如下:
最近做项目的时候 用户提出要上传大图片 一张图片有可能十几兆 本来用的第三方的上传控件 有限制图片上传大小的设置 以前设置的是2M&nb
我已经实现了这个SCIM reference code在我们的应用程序中。 我实现的代码确实通过了此postman link中存在的所有用户测试集合。 。我的 SCIM Api 也被 Azure 接受
我一直对“然后”不被等待的行为感到困扰,我明白其原因。然而,我仍然需要绕过它。这是我的用例。 doWork(family) { return doWork1(family)
我正在尝试查找 channel 中的消息是否仍然存在,但是,我不确定如何解决 promise ,查看其他答案和文档,我可以看到它可能是通过函数实现的,但我是不完全确定如何去做。我希望能在这方面获得一些
我有以下情况: 同一工作区中的 2 个 Eclipse 项目:Apa 和 Bepa(为简洁起见,使用化名)。 Apa 项目引用(包括)Bepa 项目。 我在 Bepa 有一个类 X,具有公共(publ
这个问题已经有答案了: Why am I getting a NoClassDefFoundError in Java? (31 个回答) 已关闭 6 年前。 我正在努力学习 spring。所以我输入
我正在写一个小游戏,屏幕上有许多圆圈在移动。 我在两个线程中管理圈子,如下所示: public void run() { int stepCount = 0; int dx;
我在使用 Sympy 求解方程时遇到问题。当我运行代码时,例如: 打印(校正(10)) 我希望它打印一个数字 f。相反,它给我错误:执行中止。 def correction(r): from
好吧,我制作的每个页面都有这个问题。我不确定我做错了什么,但我所有的页面都不适用于所有分辨率。可能是因为我使用的是宽屏?大声笑我不确定,但在小于宽屏分辨率的情况下,它永远不会看起来正确。它的某些部分你
我正在尝试像这样进行一个非常简单的文化 srting 检查 if(culture.ToUpper() == "ES-ES" || "IT-IT") { //do something } else
Closed. This question is off-topic. It is not currently accepting answers. Learn more。 想改进这个问题吗?Upda
我是一名优秀的程序员,十分优秀!