
文章信息
- 朱玉杰, 马继东.
- Zhu Yujie, Ma Jidong.
- 原条量材设计优化软件的研制
- Research on the Optimization Software of the Timber Scaling
- 林业科学, 2005, 41(1): 136-141.
- Scientia Silvae Sinicae, 2005, 41(1): 136-141.
-
文章历史
- 收稿日期:2004-04-06
-
作者相关文章
原条量材设计是木材生产中的一道非常关键的生产工序,有些林木的使用价值将要通过这道生产工序来确定。因此,围绕量材设计所需的优化理论研究也就引起了国内外很多学者的关注,纷纷提出各种不同的优化理论。原条量材设计赋权有向图优化理论的数学模型非常适合我国现行的原条量材设计,本文用这个理论作为研究原条量材设计优化软件的基本理论。
1 我国现行的原条量材设计原条量材设计是对原条各部位木材用途进行优化的过程。根据国情,目前我国原条量材设计这道生产工序是与造材生产工序合并在一起操作的,合并后的工序称为合理造材生产工序。这道生产工序是以原条为劳动对象,量材员根据合理造材的基本原则、产销协议规定和国家木材标准,按照原条上木材缺陷所引起的材质差异,凭经验进行量材设计。设计结果用彩色笔或刃具画刻在原条的表面上,留作锯口线的标志。造材工按线下锯,当发现疑点时,要立即同量材员商量改锯。改锯权在量材员,如果方案有误,量材员要当场修改未造部分的最佳方案。因此,在我国合理造材这道生产工序也就成了确定木材使用价值的一道非常关键的生产工序。在这道生产工序中,量材员是林木使用价值的制定者,造材工则是落实者,两者相辅相成,只有齐心协力,方能获得最好的效果。
2 原条量材设计赋权有向图如果把合理造材基本原则锁定在原条售价最高的目标上,要把一根长24 m,中央直径42 cm,大头直径48 cm,小头直径24 cm,根部有一块心腐,腐底直径22.6 cm,呈锥形延伸至2 m处;距根端7.2 m处有1漏节,尺寸为5 cm,并有活节4个;在12~13 m之间,有5个活节,最大尺寸为12.2 cm;17~18 m之间有活节7个,在梢部22 m处有1活节,尺寸为6 cm的红松(Pinus koraiensis)原条,按照国家现行木材标准造2、3、4、5、6、7、8 m的原木,原木单价按1990年11月1日执行的《东北、内蒙古林区原木出厂价格表》(车成森等,1999;朱玉杰,1996)计算,这时量材员划出的最佳方案见图 1所示。
![]() |
图 1 最佳划尺方案图 Fig. 1 The most optimal timber scaling project |
如果把原条看作一条线,锯口线看作一个顶点,两个锯口线间的木段看作一个弧,从根向梢划尺的操作要求看作有向线段,用箭头表示,则图 1可简化成图 2。显然,图 2就是一个简单的有向图。
![]() |
图 2 划尺方案有向图 Fig. 2 The scaling directional diagram |
如果把每个弧的权值都用该木段的售价赋给,则图 2又可改画成图 3。图 3被称之为赋权有向图。
![]() |
图 3 划尺方案赋权有向图 Fig. 3 The scaling directional evaluated diagram |
众所周知,量材员所划的最佳方案是从多方案中优化出的一个。这种优化可用均等的最小弧有向图数学模型来描绘。如果把最小弧长取1 m时(朱玉杰,1992),其量材员能够找出的所有可能方案可用图 4来描绘,所以图 4是量材员优化设计时应想到的所有可能方案的数学模型,这个数学模型被称之为原条量材设计赋权有向图。基本参数为:原条长24 m,最小弧长1 m,顶点数25个,弧数300条,所有可能的路223条。
![]() |
图 4 原条量材设计赋权有向图 Fig. 4 The directional evaluated diagram for timber scaling |
有向图的解称其为路或链。求路的方法很多,其中标号法简单、明了、准确,适合计算机处理(车成森等,1993)。用计算机求解标号时,本文对下列问题进行了处理。
3.1 每个弧的权值问题众所周知,在原条量材设计赋权有向图的弧集中,只有所造材长的弧对所求的标号才有意义,其余的弧无意义。为了简化计算过程,可将这些无意义弧的权值赋给“0”,这样,与这些无意义弧的权值有关的所有因子均可不考虑。
3.2 等级认定问题对符合所造材长的弧赋给权值时,必须认定好等级。计算机的这项认定工作,需要在较短的时间里从八大木材缺陷中,认定出100多项限量,难度较大。由于被限量约束的木材缺陷随机性较大,本软件制定了一个专门的等级确定函数rank(i,j),其中i,j分别表示原木的大小头标号;木材的缺陷信息,本软件采用双向链表来表示(马继东等,2004a)。
根据木材缺陷和长级、径级的关系以及相应的缺陷检量方法,常见的木材缺陷可以建立相应的数学模型如下:节子(节子的位置,该位置处节子的直径尺寸,该位置处节子的个数);虫眼(虫眼的位置,该位置处虫眼的个数);腐朽(腐朽的起始位置,腐朽的终止位置,腐朽最大值位置,其相应的最大值);纵裂和外夹皮(缺陷的起始位置,缺陷的终止位置);外伤和偏枯(缺陷的起始位置,缺陷的终止位置,缺陷的深度值)。
为了便于计算机处理判断原木的等级,提高处理速度,采用了链表数据结构。同时考虑为使用户界面友好,采用双向链表。要实现链表结构,首先要能定义一个节点,这个节点除了有数据信息以外,还要包含指向其他同类节点的指针,由于Visual Basic没用指针这一数据类型,故用“类"来代替。对以上5类木材缺陷,其双向链表节点的定义分别为:
定义类Node_knot来表示节子
Option Explicit
Public position As Single表示节子的位置;Public size As Single表示节子的尺寸大小;Public numbers As Integer表示此位置处,节子的数目;Public pPrev As Node_knot指向上一个节点;Public pNext As Node_knot指向下一个节点。
定义类Node_rotten来表示腐朽
Option Explicit
Public start_position As Single表示腐朽的起始位置;Public stop_position As Single表示腐朽的结束位置;Public max_position As Single表示腐朽的最大值位置;Public value As Integer表示腐朽的最大直径;Public pPrev As Node_rotten指向上一个节点;Public pNext As Node_rotten指向下一个节点……
其他类型的缺陷类似。
在程序的研制过程中,把木材等级的判断作为一个函数rank(i,j)来使用的,其中函数的参数i,j分别是大头和小头标号,函数的返回值可能为0、1、2、3、4和-1,分别表示木材的等级是特级、锯切一等、锯切二等、锯切三等、等外和非材种材。该函数的程序框图见图 5。
![]() |
图 5 函数rank()的程序框图 Fig. 5 The program frame of function rank() |
考虑市场经济的特点,木材的价格是浮动的,为便于原木价格表的修改,同时更重要的是便于原木价格的查询,本软件采用了按树种分别建立数据库,并使用ADO(Active Data Object)数据对象访问技术来进行检索数据库的方法。制定了一个价格查询函数log_price(i,j,k),其中i,j,k分别表示原木的长级、径级、等级(马继东等,2004b),以方便在程序中调用。
3.4 材积问题为了减少容量,本软件的木材材积是根据国家原木材积表中规定的材积计算公式进行计算。
4 程序设计本软件采用的用户界面是对话框类型的,见图 6,主要的功能是“原条基本信息的输入”,包括输入树种、长级、径级;“原条缺陷的输入”,包括节子、腐朽、虫眼等;“原木价格的修改”,按树种打开数据库,进行价格的修改;“原条量材优化”,系统进行优化设计;“优化结果”,显示程序运行的优化结果。
![]() |
图 6 用户界面 Fig. 6 User interface |
原条的基本信息(树种、长级、径级)和缺陷的信息输入后,在系统中作为全局变量保存起来。相应树种的原木价格保存在数据库中。
“原条量材优化”按钮,对应的click事件过程是根据原条量材赋值有向图中标号法做出的,最小木段长度取1 m,其框图见图 7。其中心思想是当前标号值取决于前1点标号值、前2点标号值及该2 m长原木售价之和、前3点标号值及该3 m长原木售价之和、前4点标号值及该4 m长原木售价之和、前5点标号值及该5 m长原木售价之和、前6点标号值及该6 m长原木售价之和、前7点标号值及该7 m长原木售价之和、前8点标号值及该8 m长原木售价之和这8种可能情况中的最大值,将其作为当前标号的标号值,并保存在二维数组array()中,以方便回溯求解。当前标号从0开始,直到原条的长级数为止,循环运行。标号0的初始值为0,标号1的初始值为0。
![]() |
图 7 “原条量材优化”按钮框图 Fig. 7 The program frame of the timber scaling |
特定长级原木(即两标号间的木段)的售价计算,主要是先调用rank()函数来确定木材等级,再根据长级、径级,调用函数log_price(),确定该原木的单位销售价格,再乘以该原木的材积即可。
5 结论等级的认定和售价问题是原条量材设计软件研制的关键因素,利用双向链表来存储木材缺陷的信息,检索速度快,编制的程序用户界面友好。同时把缺陷的判定作为一个函数来使用,使程序的模块功能增强,程序清晰,既便于程序的编制、调试又便于程序的升级提高。
利用数据库技术把原木价格表按树种分成若干个数据库存储起来,数据维护方便、简单,检索速度快,操作性强。同时ADO数据对象访问技术的利用,使程序的编制容易,代码清晰并可在标号法的求解过程中使用。
该软件可运行在Windows9X、WindowsXP、Windows2000等操作系统下,用户界面友好,无需学习,按其提示点击即可完成相应的操作,运行速度较快。
前面给定的红松原条所有信息输入后,经大约10 s运行后输出的原条售价最高方案与最佳量材方案完全相同,其结果见表 1。
![]() |
车成森, 王景昌, 杨占奎, 等. 1990. 原条量材学. 长春: 吉林科学技术出版社.
|
车成森, 马艳娥, 张明石. 1993. 原条量材设计有向图的标号解法及其应用. 东北林业大学学报, 21(1): 90-94. |
马继东, 李淑红, 朱玉杰. 2004a. 原条量材设计中数据库技术的应用. 森林工程, 20(1): 17-19. |
马继东, 李淑红, 朱玉杰. 2004b. 原条量材设计中木材等级的确定. 森林工程, 20(3): 13-14. |
朱玉杰. 1992. 原条量材设计有向图中最短木段长的探讨. 森林采运科学, 1: 46-51. |
朱玉杰. 1996. 干基内部根腐形状的分析. 林业科学, 32(3): 285-288. |