问题标签 [maximum-profit-problem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 间隔调度算法或活动选择算法
我在这个问题上挣扎了这么久。
在酒店有 n 个人想要同一个房间。每个人都想在自己方便的时候留在酒店,但一次只能住一个人。假设房间从早上 5 点到晚上 11 点有空。酒店经理从住在那个房间的每个人那里收取 500 卢比。一个人在那个房间里待多久并不重要。我们必须使经理的利润最大化。假设n = 4,即四个人想要同一个房间。假设第一个人从早上 6 点到早上 8 点想要房间,第二个人想要从早上 7 点到早上 8 点的房间,第三个人想要从早上 8 点到中午 12 点的房间,第四个人想要从早上 11 点到下午 1 点的房间。
通过观察上图,我们可以很容易地看出,经理最多只能允许两个人入住(1st and 3rd or 1st and 4th or 2nd and 3rd or 2nd and 4th)。所以他可以获得的最大利润是 500+500 = 1000 卢比。所以我们必须实现一个可以找到最大利润值的算法。假设人们只需要早上 5 点到晚上 11 点的房间,并且每个人都想要几个小时后的房间。
输入说明:
{<第一人开始时间>#<第一人结束时间>,<第二人开始时间>#<第二人结束时间>,…………,# }
输出说明:
输出应该是最大的利润值。
对于问题中考虑的示例,输出为 2000。
例子:
输入:
{6AM#8AM,11AM#1PM,7AM#3PM,7AM#10AM,10AM#12PM,2PM#4PM,1PM#4PM,8AM#9AM}
产量:
2000
java - 给定一系列时间和售价,找到最佳买卖时间以最大化利润
给定 [ (02:00, 7.5), (03:30, 7.9), (04:00, 8.0), (05:30, 6.8), (10:00, 9.01)] 次和我们需要找到的售价买卖利润最大化的最佳时机。// 时间按递增顺序 // 示例输出:在 05:30 买入,在 10:00 卖出,获利 2.21
我已经写了找到最大利润的逻辑,但我还需要找到最佳的买卖时间,所以我有点卡在那里
optimization - 优化分配以最大化输出
因此,一家公司有 n 个可用项目和 k 名员工。每个项目都有一个与之相关的“小时数”。每个员工都有一个小时费率,如果他在一个项目中,母公司会得到报酬。并非所有员工都可以分配到任何项目,即每个员工都有他可以从事的 n 个项目的一个子集。我想将员工分配到项目中,以便我可以最大限度地利用公司从分配中获得的收益。每个项目只能分配给一名员工,每个员工只能从事一个项目。
我正在考虑使用动态编程,但无法达到可用于填充表格的递归。I 代表 amxn 矩阵,其中 m 是项目,n 是员工。Matrix[i][j]= 如果项目 i 分配给员工 j,公司获得的金额。我被困在如何最大化这一点上。
任何帮助将不胜感激!
algorithm - 通过交易实现利润最大化
我已经在这个问题上停留了一段时间,试图找出以下问题的递归关系。
问题描述:
假设在一个市场中,以下交易选项是可能的:
- 1 金属对 2 木材
- 1 木材到 0.2 玻璃
- 1 玻璃比 1.5 金属
- 1 木材到 0.4 火
- 1 火对 3 金属
确定是否可以仅通过交易从某个项目上获利。
例如,在上述场景中,我们可以通过以下操作从金属中获利:
1 金属 -> 2 木 -> 0.8 火 -> 2.4 金属
我坚持的部分是应该如何分解子问题。这个问题似乎对括号乘法问题很熟悉,我们试图通过一系列乘法来最大化最终结果,但有更多限制。
我不想要完整的答案,但是可以将我推向正确方向的提示将不胜感激!
谢谢!
dynamic - 背包最大利润
有 4 种物品:A 重量 2LB 利润 40 美元,B 重量 5LB 利润 30 美元,C 重量 10LB 利润 50 美元,D 重量 5LB 利润 10 美元。计算你可以从 4 件背包重量为 16 磅的物品中获得的最大总利润。你不能拿一个项目的任何部分,只能拿整个。
请说明如何使用背包问题方法解决上述问题。
java - 在给定多只股票的情况下最大化股票利润
我根据情况研究了股票利润最大化算法。
对于您只有一只股票并且可以购买/出售一次或多次的情况的策略对我来说很清楚。您分别使用最大差异和最大子数组。
但是,当给定两只股票及其各自的波动价格时会发生什么?您不能同时持有两只股票,并且卖出一只并买入另一只会引入交易成本。
示例:在给定股票 A 和 B 的情况下最大化回报。股票价格在不同时期波动。因此,如果给定一个数组,每个数组中 A 和 B 的索引表示特定时间的股票价格。考虑到你不能同时持有两只股票,买 A 卖 B 会产生交易成本,最好的策略是什么?
loops - SAS:循环通过逻辑回归得分表,计算利润与截止,产量截止与利润一起进入单独的表格
所以首先,我已经完成了一个二元逻辑回归模型,并输出了几个表。我有一个“评分”数据集,其中包含客户的实际默认值(GOODBAD),它是二进制的。然后我有一个预测的违约概率 (p_1),范围从 0 到 1。然后我必须确定一个截止值,生成一个新变量,它是现在是二元的预测违约。
我正在尝试做的是遍历潜在的截止值(假设从 0.1 到 0.5,步长为 0.1),然后从这 5 个步骤中的每一个计算“利润”。然后,我希望将截止值和“利润”值都放在一个单独的数据集中,以生成这种关系的图表,以便找到我的最大利润。
下面是我目前用于生成特定截止值及其相关利润的代码。(proc 报告根本不应该改变,因为这些是帐户/情况的预定值)
我遇到的并且似乎无法解决的问题是,我用 i 和 pper100 的最新值(或宏变量 ProfitAT)覆盖了先前的值。
我不知道如何强迫这被视为观察,如果我应该循环遍历我的宏变量,如果因为我将它们放在数据步骤中,我应该有一个单独的循环来检查N然后写观察随着N的增加,或者如果我还没有发现另一种选择,则进一步增加。
algorithm - 元素组合具有给定值的连续子数组的最大总和(也为负数)
你好我有一个问题,我已经消除了一个结构
对于数组中的元素,这个结构体代表了从头到尾的元素以及它的收益。(可能是负数并且只能包含一个元素)
所有元素(或包含它们的子数组)必须包含在总和中。我首先尝试使用加权区间选择的修改版本,但以这种方式解决它,该解决方案会删除所有负面元素,因此它不包含所有元素。我可以涉及的任何其他已知问题?
algorithm - 在给定的约束条件下,我可以使用哪些算法/方法来实现一周中几天的任务调度?
我有一个任务列表,其中包含持续时间、完成利润和每周最小/最大频率(例如,每周至少阅读 X 本书 3 次)。如果某些任务的完成次数超过了最小频率,那么它们的利润将乘以某个因子(例如 1,5)。
一周中的每一天都有可用于这些任务的小时容量(例如,星期一 - 3 小时,星期二 - 5 小时等)。
我需要在几周内执行任务调度,以达到最大利润并满足所有给定的约束。
我一直在考虑使用一些启发式算法或多个背包问题的解决方案,但这里似乎没有什么真正合适的,我已经完全没有想法了。
您能否告诉我我可以在这里使用什么算法/方法,或者我可以阅读哪些资源来更好地理解问题并找到解决方案?
谢谢
algorithm - 如何优化未来未知事件的事件调度?
设想:
我需要让用户有机会为服务预订不同的时间。需要注意的是,我没有提前预订,但我需要在他们进来时填写。
预订可以表示为键值对:
[startTime, duration]
因此,例如,[9,3]
这意味着事件从 9 点开始,持续时间为 3 小时。
规则:
- 用户一个接一个进来,从来没有一批用户请求
- 没有预订可以重叠
- 24/7 全天候服务,因此无需担心“工作时间”</li>
- 用户
duration
自行选择 - 显然,一旦用户选择并确认他的预订,我们就不能再洗牌了
- 我们不希望差距小于某个时间。这是基于未来用户填补空白的概率。例如,如果
durations
超过用户预订的分布使得未来用户填补短于x
小时的差距的概率小于,p
那么我们需要一个规则,即差距不能短于x
。(出于这个问题的目的,我们可以假设x
是硬编码的,这里我只是解释一下原因) - 目标是最大化服务忙碌持续时间
到目前为止我的想法...
- 我保留了到目前为止的预订清单
- 我还跟踪差距(因为它们是新用户预订的潜在位置)
- 当新用户预订时,
[startTime, duration]
我首先检查理想情况gapLength = duration
。如果没有这样的间隙,我会找到满足条件的所有插槽(间隙)并按该值gapLength - duration > minimumGapDuration
降序排列它们gapLength - duration
- 我将用户分配给最大值为的第一个空白,
gapLength - duration
因为这使我在此预订后剩余的空白也将在未来被填补的可能性最高
问题:
我的方法是否存在一些我遗漏的问题?
是否有一些算法可以解决这个特定问题?
是否有一些我可以开始并稍后优化的常用方法(良好的起点)?(我实际上是在尝试获得足够的信息来开始,但没有犯一些严重的错误;优化可以/应该稍后进行)
PS。从目前的研究来看,这听起来可能是约束规划的情况。如果可能的话,我想避免它,因为我对此一无所知(也许它很简单,我只是不知道),但如果它产生了真正的影响,我会争取它的好处并实施它。
我通过stackoverflow解决了类似的问题,但没有找到未来事件未知的问题。如果有这样的,这是直接重复的,请参考它。