方形件排样优化与订单组批问题探析

news2024/10/27 0:29:42

方形件排样优化与订单组批问题是计算复杂度很高的组合优化问题,在工业工程中有很广泛的应用背景。为实现个性化定制生产模式,企业会选择订单组批的方式,继而通过排样优化实现批量切割,加工完成后再按照不同客户需求进行分拣,从而提高原材料的利用率,进而降低生产成本,提高企业竞争力。

本文以二维方形件的排样优化及订单组批为对象,充分考虑各种约束条件,对两个问题分别建立混合整数规划模型,合理规划方形件在板材原片上的布局,整体协调订单分配与批量计划的集成优化,最终取得全局近似最优解。

针对问题一:优化目标是基于三阶段齐头切精确排样方式,在各产品项数量均不超过其需求量的约束下实现使用的板材原片数量最少。我们转“割”为“拼”,采用“均匀栈的生成→条带生成→原片条带放置”的步骤,设计了均匀三阶段排样方式的生成算法(TUSP 法)得到满足条件的排样图。之后采用顺序价值修正启发式算法(SVC 法),逐个将满足条件的排样图加入到整个数据的排样方案中进行优化,最终得到基于整个数据的最优排样方案,得到A1~A4数据集的板材利用率依次为96.02%、94.08%、95.15%和94.08%。根据获得的各产品项的x、y方向坐标及度量,绘制各原片的排样方案效果图。

针对问题二:优化目标是通过订单组批的形式将订单聚类,并按照材质选择相应的排样方式,进而实现使用的板材原片数量最少。本问题的关键在于订单组批,后续排样过程可参考问题一。首先使用杰拉德距离定义了订单之间材质的相似性,以此作为层次聚类的依据,从而划分项目的组批。其次,对同一批次中的不同材质,依次对产品项使用均匀三阶段排样方式的生成算法(TUSP法) 和顺序价值修正启发式算法(SVC法) 获得最终的排样方案,得到B1~B5数据集的板材利用率依次为84.42%、82.84%、82.11%、83.44%和83.51%,并根据排样方案中产品项的坐标等信息绘制各原片的排样方案效果图。

最后,本文对所用算法的复杂度进行了评估,同时对模型的优缺点进行了分析。

关键词:混合整数规划模型; 均匀三阶段排样方式的生成算法; 顺序价值修正启发式算法:订单组批:层次聚类

一、  问题重述

1.1问题背景

新时期我国经济发展面临的重大课题,即是实现由制造大国向制造强国的转变,其中智能制造又是“中国制造 2025”的主攻方向。企业若想在智能制造转型中获取竞争优势,则需要在个性化定制方面提高竞争力。面对层出不穷的客户需求,如何在把控产品质量的同时预测订单规模,以便可以及时做出响应,就成为企业需要思考的问题。

方形件产品(或称板式类产品) 即为依赖于个性化定制生产模式的一类产品,它以板材为主要原片,经过平面加工后,由几种板式配件装配而成。为了实现“多品种小批量”的个性化定制生产,面对数量庞大的订单,企业通常会通过订单组批的方式来实现批量切割,加工完成后再按照不同客户需求进行分拣,从而提高原料的利用率[11-[3]。

在上述“订单组批+批量生产+订单分拣”模式中,订单组批与排样优化为两个重要环节。订单组批就是将相同材质、相近交货期、相似工艺的订单安排在同一个生产批次,通过订单组批优化兼顾个性化需求与生产高效性(如组批批次太小,会造成材料利用率低与生产效率低:如组批批次太大,会影响生产效率从而影响订单交付);排样优化本质为一个面向客户订单的材料切割问题,需要合理规划方形件在板材上的布局,以达到降低板材浪费、简化切割过程的目的。

对于排样优化问题,根据切割工艺方式的不同可分为齐头切与非齐头切(齐头切即直线切割且切割方向垂直于一边,并保证每次切割都可将原片分为两块),齐头切又可分为精确方式与非精确方式(区别在于是否可切割出准确尺寸的方形件) 。三阶段齐头切主要有三种类型:三阶段非精确排样方式、三阶段匀质排样方式以及三阶段同质排样方式,后两种均为精确排样方式。基本经过三到四个阶段的切割即可满足客户需求。

1.2 问题提出

基于对订单组批与排样优化的理解,题目提出以下2个子问题,其中第2个子问题的约束都基于第1个子问题并增加了单个批次生产原片数和面积的限制:

问题一:排样优化问题。只考虑齐头切的切割方式且切割阶段数不超过3的精确排样,建立混合整数规划模型[4],在满足订单需求及相关约束条件下,达到原片的最大化利用。

需要考虑的约束条件如下:

1) 在相同栈( stack) 里的产品项( item) 的宽度(或长度) 应该相同;

2) 最终切割生成的产品项是完整的,非拼接而成。

 

 

问题二:订单组批问题。要求建立混合整数规划模型,对数据集B中全部的订单进行组批,然后对每个批次进行独立排样,在满足订单需求和相关约束条件下,使得板材原片的用量尽可能少。在满足子问题1约束的基础上进一步要求:

1) 每份订单当且仅当出现在一个批次中;

2) 每个批次中的相同材质的产品项( item) 才能使用同一块板材原片进行排样;

3) 为保证加工环节快速流转,每个批次产品项( item) 总数不能超过限定值:

4) 因工厂产能限制,每个批次产品项( item) 的面积总和不能超过限定值。

二、 问题分析

2.1问题一分析

问题一需要建立混合整数规划模型得出三阶段齐头切精确排样方案,该方案由排样方式组成,排样方式为该排样优化问题的解。对于三阶段切割方式,要求同一阶段切割方向相同,相邻阶段切割方向互相垂直,我们并不限制第一阶段的切割方向,横向或纵向皆可,并称第一阶段切割生成的模块为 stripe(条带),第二阶段切割生成的模块成为 stack(栈),第三阶段切割生成的模块为 item(产品项)。实际应用中,产品项方向可以是固定的,也可以是旋转的,为了更贴近实际情况,我们考虑产品项方向可旋转。产品项的价值一般为其面积,且会赋予面积大的产品项一个较大的权重,以便优先考虑其放置。

排样方式必须满足:(1) 产品项的个数不超过需求量; (2) 排入的产品项之间互不重叠且不超过原片边界:(3) 满足题目要求的三阶段齐头切精确排样方式。

本问题建立在三阶段匀质排样的基础上,即认为每个栈都由一组宽度相同的产品项组成,对比于三阶段同质排样,匀质排样的材料利用率可能会更高,但切割复杂度也会随之增加。

根据待切割的产品项的种类和数量,确定产品项在原片上的排列组合方式,在满足产品项数量与工艺约束的条件下,减少原材料的损耗。此排样优化问题可描述为:在尺寸为L×W的原片上寻找最佳排样方案,排入 n种产品项,其中第 i 项产品项的长、宽及需求量为   l×wi×di,∑'j=1αν=1,∇i=1,⋯,2ni∈I=1n, 需要使消耗的原片成本最低,且排样方式需符合切割工艺要求。

本问题的优化目标是在各产品项数量均不超过其需求量的约束下实现原片中包含的产品项总价值最大,可以将目标设定成以板材用量最少,另一种角度是使残料最少。尽管追求板材用量最少与追求残料最少的实现方式是一致的,但后者方法的灵敏度较差,最终可能会导致无解:且对于残料,如果其尺寸足够大,就可以成为余料二次利用,所以实际问题中考虑残料最少并不合理。

2.2问题二分析

问题二需要建立混合整数规划模型,对数据集B1~B5中全部的订单进行组批,并对每个批次进行独立排样,在满足订单需求和相关约束条件下,使得板材原片的用量尽可能少。该方案由组批方式组成,组批方式为该子问题的解。

组批方式必须满足:(1) 每份订单当且仅当出现在一个批次中; (2) 每个批次可生产的产品项总数不超过上限;  (3) 每个批次可生产的产品项面积总和不超过上限。

订单组批问题是一个NP完全问题,求其精确解是比较困难的。模型的优化目标是最小化板材原片使用数量,可以考虑在组批过程中尽量将使用同种材质的订单放在同一批次,这样同一批次中相同材料的产品项种类和数量也越多,在之后的排样过程中,也更容易得

到更高的板材使用率,从而达到目标。所以该子问题的关键就转为寻求一个合适的差异度函数来度量订单间的相似程度,在此基础上对订单进行聚类,最终生成分批后的订单。后续排样过程与第一问类似,可按照第一问的思路进行排样优化。

三、模型假设

假设1:本题假定排样优化方式为三阶段齐头切匀质排样,且产品项作为切割的最小单位需保持完整;

假设2:本题假定第一阶段切割方向为横向的排样方式为X向排样,第一阶段切割方式为纵向的排样方式为Y 向排样:

假设3:本题假定板材原片仅有一种规格,即原片长度为2440( mm),原片宽度为1220( mm), 且原片数量充足;

假设4:本题假定排样方案不受锯缝宽度影响:

假设5:本题假定在切割过程中不存在设备故障、生产事故:

假设6:本题假定所有订单的交货期均相同,即订单组批问题不考虑交货期因素:

假设7:订单包含的产品项的种类和数量满足某种随机分布:

假设8:一个订单仅可组批一次,且不能跨批次组批;

假设9:批次与批次之间不会互相交叉混合。

四、符号说明

本文所用符号的说明如下表所示。

指标:

符号                                      说明

i       产品项编号的指标,对n个产品项按宽度进行排序               w1w2≥≥wn,

即产品项1,产品项2,……,产品项n将宽度不增,其中               i∈I=1⋯n

j          栈编号的指标,将栈中所含产品项中宽度最大的产品项编号作为栈的编

号,其中    j∈J=1⋯n

k        条带编号的指标,将条带中所含栈的最宽栈的编号作为条带编号,其中

k∈K

l         原片编号的指标,将原片中所含条带的最小索引作为原片编号,其中

l∈L

输入参数:

符号

说明

L

原片长度(单位: mm)

w

原片宽度(单位: mm)

 

 

五、问题一:模型建立与求解

5.1整数规划模型建立

根据题目要求建立整数规划模型[8]-[10]如下:

对于问题一,可以理解成有约束条件的三阶段二维装箱问题。装箱问题就是我们有 n 个小矩形,以及无限个大矩形箱子,目标是将全部小矩形无重叠的放入箱子中,小矩形放入箱子的方向可以旋转,水平垂直均可。三阶段切割可以理解:1、沿第一个方向齐头切割后,将矩形切割成几个条带,2、沿第二个方向齐头切割后,将条带切割成几个栈,3、沿第三个方向齐头切割后,将栈切割为产品项。显然,由同一个栈切割得到的几个产品项具有相同的宽度。为统一规则,便于切割,我们将矩形尽量放置于大矩形箱子的左下位置,使得如果必须存在剩余空间的话,剩余空间位于右上位置。由于几个产品项组成一个栈后被放置于大矩形箱子内,故产品项排列的前后顺序对栈在大矩形箱子内的摆放位置并无影响,我们可以将同一个栈内的几个产品项按照产品项的索引从小到大排列,便于后续处理。产品项组成栈后,我们可以获得一定数量的栈,栈组成条带与产品项组成栈类似,同一条带内栈的排序也可以前后调整。对栈进行编号索引,类似的,我们也可以在条带内将不同的栈按照索引顺序从小到大排列。这种排序方法有利于后续我们得到每个产品项在大矩形箱子的位置。最后再将条带放置于大矩形箱子内,找到最好的放置方式使得只需要尽可能少的箱子数即可放置下全部条带。

针对产品项可旋转,我们考虑将n个产品项复制一份,并将其长宽互调,得到了2n个产品项,并进一步按照产品项的宽度进行排序,这时使用两个映射f和g,f表示目前排序下产品项对应为复制前的该产品项索引编号,g表示产品项和其复制品的索引编号差。

其中l₀和w₀表示产品项k的长度和宽度,lmin(i)和 wmin(i)表示产品项i到m的产品项长度最小值和宽度最小值。这时在判断能否继续向栈排入产品项时,仅需将 lmin(i)和 wmin(i)分别与剩余长度和剩余宽度比较即可, 这大大减少了算法了计算复杂度。

产品项已经耗尽:

注:对于此终止条件,我们仍考虑建立一个一维数组 demand 对每个产品项的剩余量进行记录,这是再判断某产品项是否有剩余可排入栈时,仅需与 demand(i)进行对比即可。

初始化 demand数组:demand(i)表示产品项i在栈中排入的限制数量,令其初值等于产品项的初始需求,其赋值计算表达式如下:

 demand(i)=d(i), i=1,…,m.                      (20)

其中d(i)表示产品项的初始需求。

Step2. 算法建立过程

在将产品项排入栈的过程中,需要对生成的栈的信息进行存储,我们考虑建立一个一维数组向量对栈j的信息存储,向量构建如下:

其中w表示此栈的放置方式,w='h'表示水平放置,         w='v'表示竖直放置,二元数组(i,num,)中,i表示产品项的编号,numn表示此产品项在栈中排入的次数。

在得到栈的主要信息之后,我们需要进一步计算栈的价值。并且由于生成的是均匀栈,故此要求栈的所有出现的产品项的宽度或者长度均是相等的。下以水平均匀栈为例:设以产品项j作为主产品项的水平均匀栈j,其长度不大于L,且宽度等于w,,记此栈的价值为HV(j,L,w,,m,),   其求解的伪代码如下:

算法1:均匀栈生成算法

输入:栈价值V:条带剩余长度RL; 栈中包含产品项i的数量 num

输出: 栈价值HV(j,L,w,m,); 栈的数组信息m,

1  RL=L-l,;

2        for i=1 to 2m

3          if RL< lmin(i) or l₁≠ɪ;

4              HV(j,L, wj, mj)=V; break

5          else

6              if demand(i)=0 return

7              else

8                  if RL<l₁ return

9                 else

10                   num= min( demand(i), [RL/l₁]); RL=L-num×l,

11                     Add (i, num) to m,;       P=14num×c₁

12                 end

13             end

14         end

15      end

 16    return HV(j,L,w,m,); m,                                 

2.条带生成算法

我们类比上一节提出的产品项排成栈的算法,进一步将栈排条带中,从而可得到由栈生成条带的算法,由于和栈生成算法类似,下面仅简略展示条带生成算法的步骤,如下:

StepI. 算法初始化设置

确定栈的各类属性:首先通过使用栈生成算法生成了 n个栈,进而通过算法输出结果计算水平栈的长度和竖直栈的宽度,并将其储存。

确定栈的使用需求:在这部分我们认为算法生成的n个栈均是不同的,即当两个栈的长宽以及内部包含的产品项种类和数目均相同时,而这时栈内产品项的排列顺序也可以是不同的,故此我们认为生成的n个栈均是不同的。进而设置每个栈的需求量均为1。

Step2. 算法建立过程:

在这部分我们类比产品项生成栈的算法,进行算法设计,将n个栈放置进条带中,具体流程均与上节所述类似,在此不进行重复展示。

 

5.3.2求解过程

下面基于 TUSP 排样图生成算法和SVC 顺序价值修正启发式算法来求解在产品项可旋转的条件下的三阶段匀质齐头切情况下二维矩形排样问题,模型的求解流程如下:

TUSP和SVC求解3CS框图

输入: 初始化产品项单位价值,令ρ₁=l₁w₂,

输出: 最优的排样方案

其中ieI, 令(

 Uni=+∞

1

 For E=1 to Em. x

2

初始化产品项可用量, 令 c₁=d₁,

其中i∈I

3

令 U=0, J=0

4

 While ∑mac,>0

5

使用TUSP算法生成当前排样图 P

6

确定P的使用次数, 计算表达式为f= min |c;/r;||r;∧i∈I

7

将P加入当前排样方案

8

更新当前排样方案的排样方式数J: J=J+1

9

更新原片使用数量V: U=U+1

10

更新产品项可用量c₁: c₁=c₁=f×r₁

11

使用价值修正公式来修正产品项的价值

12

 end

13

 If UKUap

14

记当前排样方案为最优方案:

 Uun=U, Jop=J

15

 end

16

 If Unip=U and Jap>J

17

记当前排样方案最优:   Jap=J

18

19

 end

 end

5.4求解结果与分析

5.4.1对于数据集A1、A2、A3、A4的排样方案效果图

基于所建立的模型,使用 Python绘出排样方案效果图,部分结果如下(由于排样方案效果图数量较多,故仅展示部分效果图,全部效果图见附录9.1):

 

七、模型分析与评价

7.1算法复杂度分析

对于3阶段二维矩形排样问题的算法设计,我们是使用基于HUSP算法和价值修正的顺序启发式算法来寻找满足约束条件和优化目标的解,其中HUSP算法主要包括三个层级,对应着3阶段切样方式。第一个层级是产品项生成栈,需要遍历所有的个栈; 第二个层级是栈生成条带,需要遍历所有的条带,第三个层级是条带生成原片,需要遍历所有的原片,因此算法的复杂度为O(n³)

25

                                                                               

7.2模型优缺点分析

7.2.1模型优点分析

1、本文考虑的三阶段排样问题,考虑了较多约束条件,如齐头切和产品项可旋转等,这保证了本文所建立的模型和算法具有较高的灵活性,使用范围较广。

2、本文针对3阶段二维矩形排样问题建立了混合整数规划模型,并结合优化目标和约束条件,设计了基于HUSP算法,使用顺序价值修正的启发式算法,算法的求解得到的原片利用率是较好的。

7.2.2模型缺点分析

1、本文所涉及的算法为启发式算法,无法保证算法求解的最忧性。

2、对于问题二的处理,我们并没有对订单组批和排样问题进行协同优化,这导致了我们问题二求解的结果中原片利用率比问题一平均低了10%。

 function stack= item   to   stack( item,L. W, rho)

%输入: item的所有信息: item,原片长度: L, 原片宽度: W.价值修正系数: rho;

%输出: 生成 stack的所有信息: stack--一个三维数组

%初始参数设置

 item   id= item(:,1);

 item   length= item(:,3);

 item   lighth= item(:,4);

 item   square= item(:,2).* item(:,3);

 item   value= rho.* item   square;

 demand= item(:,5);

m= length( item(:,1));% item总数

 Imin=[];

 wmin=[];

 for i=1:m

 lmin(i)= min( item   length(i:m));

 wmin(i)= min( item   width(i:m));

 end

%以 item i作为主 item的 stack, 预先设定2m个

a= zeros(2*m+2,2);

a(3:2*m+2,1)=[1:2*m]';

 for i=1:2*m

 stack(:,:,i)=a;

 end

%通过循环进行 item的放置

RL=L;%剩余高度

RW=W;%剩余宽度

demand0= demand;

 for i=1:2*m

 if demand(i)==0

%对每个 stack进行 item的放置i

RL=L- item   length(i);

RW=L- item   width(i);

VL=0;%水平 stack价值

VW=0;%竖直 stack价值

ML= zeros(m,1);%存放每个 item在水平 stack放置的个数

MW= zeros(m,1);%存放每个 item在直 stack放置的个数

%水平放置 stack

demand1= demand;

 for j=1:2*m

 num  j=0;

% stack均匀性要求

 if item   width(j)~= item   width(i)

 return

 end

 if demand1(j)==0| item   length(j)>RL

 return

 end

 if item   length(j)>RL && RL< Imin(j)

 break

 end

 if RL< Imin(j) && RL>= Imin(j)

 return

 end

%限制旋转前和旋转后的 item只能使用一次

 if demand0-demand1(j)>=ML(j)

 return

 end

 if RL> Imin(j) && item   width(j)== item   width(i)

 if j<=m

 num  j= min(demand1(j), floor(RL/ item   length(j)));

ML(j)=ML(j)+1;

RL=RL- num  j* item   length(j);

VL=VL+ num  j* item   value(j);

demand1(j)=demand1(j)-1;

 else

 num  j= min(demand1(j-m), floor(RL/ item   length(j-m)));

ML(j-m)=ML(j-m)+1;

RL=RL- num  j* item   length(j-m);

VL=VL+ num  j* item   value(j);

demand1(j-m)=demand1(j-m)-1;

 end

 end

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2224296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

洛谷 P1226:【模板】快速幂

【题目来源】https://www.luogu.com.cn/problem/P1226【题目描述】 给你三个整数 a&#xff0c;b&#xff0c;p&#xff0c;求 a^b mod p。【输入格式】 输入只有一行三个整数&#xff0c;分别代表 a&#xff0c;b&#xff0c;p。【输出格式】 输出一行一个字符串 a^b mod ps&a…

多线程——线程池

目录 前言 一、什么是线程池 1.引入线程池的原因 2.线程池的介绍 二、标准库中的线程池 1.构造方法 2.方法参数 &#xff08;1&#xff09;corePoolSize 与 maximumPoolSize &#xff08;2&#xff09;keepAliveTime 与 unit &#xff08;3&#xff09;workQueue&am…

GPT-4o 和 GPT-4 Turbo 模型之间的对比

GPT-4o 和 GPT-4 Turbo 之间的对比 备注 要弄 AI &#xff0c;不同模型之间的对比就比较重要。 GPT-4o 是 GPT-4 Turbo 的升级版本&#xff0c;能够提供比 GPT-4 Turbo 更多的内容和信息&#xff0c;但成功相对来说更高一些。 第三方引用 在 2024 年 5 月 13 日&#xff0…

HTB:Blocky[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行端口扫描 再次使用nmap对靶机开放端口进行脚本、服务信息扫描 对FTP服务版本&#xff1a;ProFTPD_1.3.5进行漏洞扫描 对SSH服务版本&#xff1a;OpenSSH 7.2p2进行漏洞扫描 使用浏览器访问靶机80端口 使用浏览器访问U…

信息搜集-域名信息收集

1.1 域名信息收集 WHOIS查询&#xff1a; 通过WHOIS查询可以快速得到域名的IP段、DNS解析、注册时间、地址等信息&#xff0c;或许运用合理可以巧妙的绕过CDN。备案信息收集&#xff1a; 网站备案信息收集更加方便定位资产到具体的企业名称、ICP备案号、备案人名称、公司、所处…

图片写入GPS经纬高信息

近期项目中需要往java平台传输图片&#xff0c;直接使用QNetworkAccessManager和QHttpMultipart类即可&#xff0c;其他博文中有分享。 主要是平台接口对所传输图片有要求&#xff1a;需要包含GPS信息&#xff08;经度、纬度、高度&#xff09;。 Qt无法直接实现&#xff0c;…

2003年秋季我给哈工大数学研究生写的讲义

我写的没出版讲义共有278页&#xff0c;书末参考文献 我写的讲义书末索引&#xff0c;冯克勤的书《代数数论》书末没有索引&#xff0c;陆洪文、李云峰的书《模形式讲义》书末也有索引 我写的讲义自制的封面 &#xff08;对数学的研究我的经验是&#xff0c;跟其他科学类似&am…

「Qt Widget中文示例指南」如何实现半透明背景?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 本文将为大家展示如…

Java应用程序的服务器有哪些

1.Tomcat、Jetty 和 JBoss 区别&#xff1f; Apache Tomcat、Jetty 和 JBoss都是用于部署Java应用程序的服务器&#xff0c;它们都支持Servlet、JSP和其他Java EE&#xff08;现在称为Jakarta EE&#xff09;技术。尽管它们有一些相似的功能&#xff0c;但它们之间还是存在一些…

Mysql在线修改表结构工具gh-ost使用说明及实践

本文内容较多&#xff0c;篇幅较长&#xff0c;若不想了解ghost原理&#xff0c;几种模式的介绍以及具体的验证过程&#xff0c;可直接跳到‘四 gh-ost使用总结’查看简洁版使用说明。 一 gh-ost使用场景 生产环境当有关于一个大表的大操作时(比如select count一个大表)&…

沈阳乐晟睿浩科技有限公司抖音小店领域的强者

在当今数字化浪潮的推动下&#xff0c;电子商务以其便捷性、高效性和广泛的覆盖面&#xff0c;成为了推动经济发展的新引擎。而抖音小店&#xff0c;作为短视频平台上的新兴电商形态&#xff0c;更是凭借其庞大的用户基础、精准的内容推送机制以及独特的购物体验&#xff0c;迅…

qt QNetworkProxy详解

一、概述 QNetworkProxy通过设置代理类型、主机、端口和认证信息&#xff0c;可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类&#xff08;如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等&#xff09;配置网络层代理支持…

Spring Boot框架下的厨艺社交网络构建

1 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#xff0c;也让时间变得更加地宝贵化&#xff0c;因为每天的…

iOS 本地存储地址(位置)

前言: UserDefaults 存在沙盒的 Library --> Preferences--> .plist文件 CoreData 存在沙盒的 Library --> Application Support--> xx.sqlite 一个小型数据库里 (注:Application Support 这个文件夹已开始是没有的,只有当你写了存储代码,运行之后,目录里才会出…

IDEA开发工具使用技巧积累

一、IDEA 工具设置默认使用maven的settings.xml文件 第一步&#xff1a;打开idea工具&#xff0c;选中 File ——> New Projects Setup ——> Settings for New Projects 第二步&#xff1a;先设置下自动构建项目这个选项 第三步&#xff1a;选中 Build Tools ——>…

深度学习-循环神经网络-LSTM对序列数据进行预测

项目简介: 使用LSTM模型, 对文本数据进行预测, 每次截取字符20, 对第二十一个字符进行预测, LSTM层: units100, activationrelu Dense层: units输入的文本中的字符种类, 比如我使用的文本有644个不同的字符, 那么units64 激活函数: 因为是多分类, 使用softmax 因为这是最…

树莓派5使用pytorch训练模型(CPU)

Pytorch 对于树莓派提供了较好的支持&#xff0c;可以利用 Pytorch 在树莓派上进行试试推理&#xff0c;当然也可以使用树莓派进行模型训练了&#xff0c;这里尝试使用树莓派CPU对模型进行训练。 0 环境配置 必要的环境安装&#xff0c;这个步骤没有什么值得说的&#xff0c;…

c++(树)

定义 2-3 树中的每一个节点都有两个孩子&#xff08;称为 2 节点&#xff0c;2-node&#xff09;或三个孩子&#xff08;称为 3 节点&#xff0c;3-node)。 2 节点&#xff0c;有一个数据元素和两个孩子。只能有两个孩子或没有孩子&#xff0c;不能出现只有一个孩子的情况。如果…

JVM学习总结:字节码篇

本文是学习尚硅谷宋红康老师主讲的 尚硅谷JVM精讲与GC调优教程 的总结 &#xff0c;部分内容也参考了 JavaGuide 网站&#xff08;文末有链接&#xff09; JVM 概述 Oracle JDK 与 OpenJDK 是什么关系&#xff1f; 2006 年 SUN 公司将 Java 开源&#xff0c;也就有了 OpenJDK。…

【verilog】四位全加器

文章目录 前言一、实验原理二、实验过程三、实验结果参考文献 前言 进行 FPGA 全加器 实验 一、实验原理 module adder(ain,bin,cin,cout,s); input ain,bin,cin; output cout,s; assign coutain&bin | ain&cin | bin&cin; assign sain^bin^cin; endmoduletimesc…