工程造价调整方法及装置与流程

文档序号:11953010阅读:273来源:国知局
工程造价调整方法及装置与流程

本发明涉及工程造价技术,尤其涉及一种工程造价调整方法及装置。



背景技术:

在工程造价过程中,当计算出工程的期望报价之后,会对工程的期望报价进行调整,以获取到工程的最终报价。

现有技术中,在进行报价调整时,会根据工程的期望报价,扣除工程中不变部分,进行反算得到调整系数,再使用该调整系数得出工程的最终报价。

但是,使用现有技术所调整出的工程的最终报价与期望报价的误差大,不能满足用户的投标需求。



技术实现要素:

本发明提供一种工程造价调整方法及装置,用于解决现有技术中的工程造价调整方法所造成的最终报价与期望报价误差大的问题。

本发明第一方面提供一种工程造价调整方法,包括:

A:根据预设的期望报价以及实际报价,计算初始调整系数,并将所述初始调整系数作为第一调整系数;

B:判断所述期望报价与所述实际报价的差值是否大于预设偏差值,若大于,则:

根据所述初始调整系数以及所述第一调整系数计算第一调整步长;

根据所述第一调整步长计算新的第一调整系数;

根据新的第一调整系数,计算新的实际报价;

C:重复执行B,直至所述期望报价与所述实际报价的差值小于所述预设偏差值。

进一步地,所述根据所述初始调整系数以及所述第一调整系数计算第一调整步长,包括:

若所述初始调整系数与所述第一调整系数的乘积大于零,则获取当前调整步长,将所述当前调整步长乘以2,将乘积作为所述第一调整步长;

将所述第一调整步长作为所述当前调整步长。

进一步地,所述根据所述初始调整系数以及所述第一调整系数计算第一调整步长,包括:

若所述初始调整系数与所述第一调整系数的乘积小于或等于零,则获取当前调整步长,将所述当前调整步长乘以1/2,将乘积作为所述第一调整步长;

将所述第一调整步长作为所述当前调整步长。

进一步地,所述根据所述第一调整步长计算新的第一调整系数,包括:

使用公式new_CurXs=CurXs×(1+CurXs×new_StepSize)计算新的第一调整系数,其中,new_CurXs为新的第一调整系数,CurXs为所述第一调整系数,new_StepSize为所述第一调整步长。

进一步地,所述根据新的第一调整系数,计算新的实际报价,包括:

若所述工程为多个,则根据新的第一调整系数,并行计算每个所述工程的所述实际报价。

进一步地,所述根据新的第一调整系数,并行计算每个所述工程的所述实际报价,包括:

根据新的第一调整系数,使用并行语言集成查询PLINQ并行计算每个所述工程的所述实际报价。

本发明第二方面提供一种工程造价调整装置,包括:

第一计算模块,用于根据预设的期望报价以及实际报价,计算初始调整系数,并将所述初始调整系数作为第一调整系数;

第二计算模块,用于判断所述期望报价与所述实际报价的差值是否大于预设偏差值,若大于,则:根据所述初始调整系数以及所述第一调整系数计算第一调整步长;根据所述第一调整步长计算新的第一调整系数;以及,根据新的第一调整系数,计算新的实际报价;

处理模块,用于重复执行所述第二计算模块的操作,直至所述期望报价与所述实际报价的差值小于所述预设偏差值。

进一步地,所述第二计算模块具体用于:

若所述初始调整系数与所述第一调整系数的乘积大于零,则获取当前调整步长,将所述当前调整步长乘以2,将乘积作为所述第一调整步长;

将所述第一调整步长作为所述当前调整步长。

进一步地,所述第二计算模块具体还用于:

若所述初始调整系数与所述第一调整系数的乘积小于或等于零,则获取当前调整步长,将所述当前调整步长乘以1/2,将乘积作为所述第一调整步长;

将所述第一调整步长作为所述当前调整步长。

进一步地,所述第二计算模块具体还用于:

使用公式new_CurXs=CurXs×(1+CurXs×new_StepSize)计算新的第一调整系数,其中,new_CurXs为新的第一调整系数,CurXs为所述第一调整系数,new_StepSize为所述第一调整步长。

进一步地,所述第二计算模块具体还用于:

若所述工程为多个,则根据新的第一调整系数,并行计算每个所述工程的所述实际报价。

进一步地,所述第二计算模块根据新的第一调整系数,并行计算每个所述工程的所述实际报价,具体为:

根据新的第一调整系数,使用并行语言集成查询PLINQ并行计算每个所述工程的所述实际报价。

本发明所提供的工程造价调整方法及装置,在设置一个初始调整系数的基础上,不断进行迭代计算,每次迭代过程中使用的都是可变步长,并使用可变步长计算出新的调整系数,多次迭代之后就会获得与期望报价最为接近的实际报价,从而大大缩减了实际报价与期望报价的偏差值,实现了工程造价的快速精准调整,满足了用户的投标需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的工程造价调整方法实施例一的流程示意图;

图2为本发明提供的工程造价调整方法实施例二的流程示意图;

图3为本发明提供的工程造价调整装置实施例一的模块结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

使用现有的工程造价调整方法进行工程造价调整时,所调整出的最终的实际报价与期望报价的误差大,因此,不能满足用户的投标需求。同时,现有的工程造价调整方法的实现过程采用的是单线程方式,因此计算速度慢,当工程文件较大时,计算性能就会迅速下降。综上,使用现有技术进行工程造价调整的精度和速度都不能满足用户的需求。

本发明基于上述问题,提出一种工程造价调整方法,使用多工程并行调整以及迭代计算的方式,来迅速进行工程造价调整计算,使得计算精度和速度都得到大幅提升。

图1为本发明提供的工程造价调整方法实施例一的流程示意图,如图1所示,该方法包括:

步骤A:根据预设的期望报价以及实际报价,计算初始调整系数,并将该初始调整系数作为第一调整系数。

对于每个工程,在进行造价调整之前,都会预先根据一定的策略确定出该工程的期望报价,并且根据人工、材料以及机械成本确定出初始的实际报价,在后续进行调整时,期望报价不会发生变化,而实际报价会根据调整系数不断发生变化,直到实际报价与期望报价的偏差在用户所能接受的范围内。

在确定出工程的期望报价和初始的实际报价后,会根据这两个报价来计算出初始的调整系数,计算公式优选可以为例如,假设某工程的期望报价为200万元,初始的实际报价为180万元,则计算出的初始的调整系数为0.11。

进而,将所计算出的这个初始的调整系数作为后续迭代计算中的第一调整系数的初始值。

步骤B:判断期望报价与实际报价的差值是否大于预设偏差值,若大于,则:

根据初始调整系数以及第一调整系数计算第一调整步长;

根据第一调整步长计算新的第一调整系数;

根据新的第一调整系数,计算新的实际报价。

步骤C:重复执行B,直至期望报价与实际报价的差值小于预设偏差值。

在计算出初始的调整系数之后,则开始步骤B到步骤C的迭代过程。

每次迭代前,首先判断期望报价与实际报价的差值是否大于预设偏差值,如果不大于,则说明经过上一次的迭代计算,所计算出的实际报价已经接近期望报价,即已经满足了用户的需求,因此就可以停止迭代,将上一次迭代所计算出的实际报价作为该工程的最终实际报价。

而如果大于,则说明上次迭代所使用的调整系数还不够精确,不能满足用户的需求,因此会继续进行迭代。

其中,上述预设偏差值可以根据工程的需要以及经验值进行设置,例如,可选地,当迭代大于10次时,偏差值设置为期望报价的万分之一;当迭代大于20次时,偏差值设置为期望报价的千分之一;当迭代值大于30次时,偏差值设置为期望报价的百分之一;当迭代小于10次时,偏差值设置100元。

每次具体迭代时,会执行前述步骤B中的三个动作,即:

1、根据初始调整系数以及第一调整系数计算第一调整步长。

在第一次迭代前,第一调整系数就等于初始调整系数,在每次迭代完成时,第一调整系数会发生变化,即每次迭代中第一调整系数都会被赋与新的值。

步长是指让一个数值在每次运算中加上某个数重复执行此项运算。采用较大的步长,可以加快优化速度,但得到的优化条件的精度较差,而采用较小的步长,得到的优化条件的精度提高,但减慢了优化速度。因此,可见步长过大或过小都会影响计算的精度和速度。

本发明中根据初始调整系数以及第一调整系数来计算第一调整步长,即每次迭代中都不会使用固定的步长,而是根据上次迭代的结果来重新计算步长,因此,本发明所使用的步长为可变步长。可变步长是根据每次迭代的实际结果获得,因此,使用该可变步长也会使得下一次迭代的结果更加准确。

2、根据第一调整步长计算新的第一调整系数。

如前所述,在第一次迭代前,第一调整系数就等于初始调整系数,在每次迭代中,都根据前面所算出的新的步长来计算新的第一调整系数。

3、根据新的第一调整系数,计算新的实际报价。

每次迭代结束时,都会根据新的第一调整系数计算出一个新的实际报价,再根据这个新的实际报价去同期望报价进行比较,从而获得最终的实际报价。

本实施例中,在设置一个初始调整系数的基础上,不断进行迭代计算,每次迭代过程中使用的都是可变步长,并使用可变步长计算出新的调整系数,多次迭代之后就会获得与期望报价最为接近的实际报价,从而大大缩减了实际报价与期望报价的偏差值,实现了工程造价的快速精准调整,满足了用户的投标需求。

在上述实施例的基础上,本实施例涉及计算第一调整步长的具体方法,即,图2为本发明提供的工程造价调整方法实施例二的流程示意图,如图2所示,上述步骤B中根据初始调整系数以及第一调整系数计算第一调整步长的具体方法为:

S201、若初始调整系数与第一调整系数的乘积大于零,则获取当前调整步长,将当前调整步长乘以2,将乘积作为第一调整步长。

当初始调整系数与第一调整系数的乘积大于零时,说明调整的方向正确,则可以将步长加长,以减少迭代次数,提高运算速度。

S202、若初始调整系数与第一调整系数的乘积小于等于零,则获取当前调整步长,将当前调整步长乘以1/2,将乘积作为第一调整步长。

当初始调整系数与第一调整系数的乘积小于等于零时,说明调整的方向出现偏差,则将步长缩小,再进行计算,以提升调整的正确性。

在上述步骤S201/S202之后,都需要将第一调整步长作为当前调整步长,即为当前调整步长赋予新的值,用于下一次的迭代中。

经过本实施例的计算,实现了可变步长的调整,基于这个可变步长,可以提升实际报价的准确性。

在上述实施例的基础上,本实施例涉及计算新的第一调整系数的具体方法,即,上述步骤B中根据第一调整步长计算新的第一调整系数具体为:

使用公式new_CurXs=CurXs×(1+CurXs×new_StepSize)计算新的第一调整系数,其中,new_CurXs为新的第一调整系数,CurXs为第一调整系数,new_StepSize为第一调整步长。

即,CurXs为上一次迭代所计算出的第一调整系数,每次迭代计算时,都是基于上一次迭代所计算出的第一调整系数使用上述公式进行更新,从而不断更新调整系数,使得根据最终的调整系数所计算出的实际报价的精度最高。

在上述实施例的基础上,本实施例涉及使用每次迭代过程中所计算出的新的第一调整系数计算实际报价的具体方法,即:

当上述工程为多个时,根据新的第一调整系数,并行计算每个工程的实际报价。

当某项目包含多个单位工程时,如果使用单线程的串行调整计算方法,会导致调整速度低下,而本实施例中,当某项目包含多个工程时,在每次迭代计算出一个新的第一调整系数之后,会根据这个新的第一调整系数并行计算多个工程的实际报价,从而快速得到工程的最终报价。

优选地,可以使用并行语言集成查询(Parallel Language Integrated Query,简称PLINQ)并行计算每个工程的实际报价。

语言集成查询(Language Integrated Query,简称LINQ)是一组用于C#和Visual Basic语言的扩展。其允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。而PLINQ是LINQ模式的并行实现,PLINQ能够充分利用系统中的所有处理器,从而实现高效的并行计算。

本发明中,使用PLINQ实现并行计算每个工程的实际报价的伪代码可以为:

Begin(算法开始)

List<Epoint_ZaojiaGc>lstGcData=当前项目下的工程列表;

lstGcData.AsParallel().ForAll((d)=>

{

根据新的第一调整系数计算出工料机价格或数量;

CalGC(d);//计算工程d的实际报价

}

End(算法结束)

进一步地,考虑到用户电脑配置性能,还可以对PLINQ指定并行化查询的处理器的最大数目。并行度是将用于处理查询的同时执行的任务的最大数目,其代码如下:

lstGcData.AsParallel().WithDegreeOfParallelism(3).ForAll(…);

其中,上述代码中的参数“3”表示并行参数,即同时执行计算的工程数量。

另外,本发明的工程造价调整方法可选地可以使用如下的伪代码:

Begin(算法开始)

PreXs=计算初始调整系数;//即第一调整系数的初始值

Pc=预设偏差值;

While(期望报价与实际报价的差值大于预设偏差值)

{

CurXs=计算新的第一调整系数;

If(PreXs*CurXs>0)

步长*=2;

Else

步长*=0.5;

调整系数*=1+CurXs*步长;//计算新的第一调整系数

根据调整系数计算实际报价;

}

End(算法结束)

图3为本发明提供的工程造价调整装置实施例一的模块结构图,如图3所示,该装置包括:

第一计算模块301,用于根据预设的期望报价以及实际报价,计算初始调整系数,并将初始调整系数作为第一调整系数。

第二计算模块302,用于判断期望报价与实际报价的差值是否大于预设偏差值,若大于,则:根据初始调整系数以及第一调整系数计算第一调整步长;根据第一调整步长计算新的第一调整系数;以及,根据新的第一调整系数,计算新的实际报价。

处理模块303,用于重复执行第二计算模块302的操作,直至期望报价与实际报价的差值小于预设偏差值。

进一步地,第二计算模块302具体用于:

若初始调整系数与第一调整系数的乘积大于零,则获取当前调整步长,将当前调整步长乘以2,将乘积作为第一调整步长;

若初始调整系数与第一调整系数的乘积小于等于零,则获取当前调整步长,将当前调整步长乘以1/2,将乘积作为第一调整步长。

进一步地,第二计算模块302具体还用于:

使用公式new_CurXs=CurXs×(1+CurXs×new_StepSize)计算新的第一调整系数,其中,new_CurXs为新的第一调整系数,CurXs为第一调整系数,new_StepSize为第一调整步长。

进一步地,第二计算模块302具体还用于:

若上述工程为多个,则根据新的第一调整系数,并行计算每个工程的实际报价。

进一步地,第二计算模块302根据新的第一调整系数,并行计算每个工程的实际报价,具体包括:

根据新的第一调整系数,使用PLINQ并行计算每个工程的实际报价。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1