产量算法(一)

一、问题

  1. 生产一个产品有9道工序,每个工序必须在前一步完成后才有原材料输入。每道工序耗时不一。

  2. 9道工序顺序及耗时如下

    序号工序时间
    1打印7
    2退火1
    3线切割0.5
    4机加3
    5打磨6
    6喷砂3
    7固溶7
    8磨粒流7
    9检测9

    可以看出生产一个产品时间是43.5天。

    现有客户给180时间,分析算出马力全开可以生产多少件成品。

二、分析

  1. 输入为工序耗时数组,及天数,输出为产品数!

  2. 寻找算法

    建立excel每格半天计算画出图形,直观分析,图中九行对应9道工序,每一列代表半天

     
    1. 可以看出时间是卡顿在最耗时的工序哪里,不难发现生产N次的时间:N次时间=一次完整时间+(N-1)*最耗时工序时间。
  3. 建立模型

    算法核心公式:N次时间=一次完整时间+(N-1)*最耗时工序时间

    步骤:① 将工序时间转换成数组②找到单次加工耗时③寻找最耗时环节④按照公式求解

    按照公式,开始编码

三、代码实现

  1. 求N件产品的时间函数

    输入参数:

    eTs为工序时间数组,比如本例输入为{ 7.0, 1.0, 0.5, 3, 6, 3, 7, 7, 9 };

    Cnt为生产产品数;

    返回值:

    返回值为生产Cnt件需要的时间;

    static double GetDays(double[] eTs,int Cnt)
    {
        if (Cnt <= 0)
        {
            return 0;
        }
        double maxT = eTs.Max();
        double oneProductT = eTs.Sum();
        return oneProductT + maxT * (Cnt - 1);
    }
  2. 主函数调用代码

    main函数中调用如下!

                double[] ereryTimes = { 7.0, 1.0, 0.5, 3, 6, 3, 7, 7, 9 };
                double maxT = ereryTimes.Max();
                string instrDays = "";
                Console.WriteLine("请输入你拥有的天数:");
                while (string.Empty != (instrDays = Console.ReadLine()))
                {
                    double yourDays = 0;
                    if (double.TryParse(instrDays, out yourDays))
                    {
                        Console.WriteLine("你拥有" + yourDays + "天生产时间!");
                    }
                    for (int i = 0; i < yourDays; i++)
                    {
                        double tmp = GetDays(ereryTimes, i);
                        if (yourDays< tmp)
                        {
                            Console.WriteLine("你能生产"+(i-1)+"件产品!");
                            break;
                        }
                    }
    ​
                    Console.WriteLine("请继续输入你拥有的天数:");
                }
    ​
                Console.ReadLine();

四、完成

至此完成排产任务,编写简单小工具,带上framework发给同事使用。

在Python中,估算脐橙产量通常会涉及收集和分析相关的数据,如种植面积、亩产量历史记录、生长周期、气候条件等。以下是个简单的流程概述: 1. **数据收集**: - 获取种植区域的数据,包括土壤质量、光照时间、降雨量等环境因素。 - 收集历史种植记录,了解过去几年的平均产量及影响产量的关键变量。 2. **数据分析**: - 利用统计模型,比如线性回归、决策树或机器学习算法(如随机森林),分析各因素对产量的影响程度。 - 对数据进行预处理,清洗异常值,处理缺失值,并将非数值特征编码为数值形式(如有必要)。 3. **建立预测模型**: - 使用训练数据训练个回归模型(例如通过`sklearn`库的`LinearRegression`或`RandomForestRegressor`)。 - 如果有历史趋势,可以考虑时间序列分析方法(如ARIMA或Prophet)。 4. **模型评估**: - 用测试数据集验证模型的准确性和可靠性,可能需要调整模型参数或选择更合适的模型。 5. **生产预测**: - 输入当前的环境条件到模型中,得到预测的产量。 ```python # 示例代码(简化版) import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 加载数据 data = pd.read_csv('脐橙产量数据.csv') # 数据预处理 X = data[['土壤质量', '光照时间', '降雨量']] # 特征 y = data['年产量'] # 目标变量 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) # 训练模型 model = LinearRegression() model.fit(X_train, y_train) # 预测 current_conditions = [土壤质量_value, 光照_time_hours, 降雨_mm] predicted_yield = model.predict([current_conditions]) print("基于当前条件,预计今年的脐橙产量为:", predicted_yield) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值