书城管理决策问题管理系统开发研究
10721500000027

第27章 组件功能设计

根据PMS基本功能研究以及对PMS-DC中各种对象和类的识别与设计,可确定的组件各部分的基本功能包括:

1.Prob1emManager(问题管理器)的主要功能

①问题录入:即新决策问题的输入。其中,决策问题的描述将以自然语言的形式进行录入,用CreateProb1em方法创建Prob-1em对象的实例。

②问题修改:将已经录入的决策问题进行修改,用Modi-fyProb1em方法实现。

③问题存储:用SaveProb1em方法将新建或修改的决策问题保存至问题知识库中。

④问题查询:即对已存储问题的检索查询。它可根据问题的描述来查询,也可根据问题的关键词或其他属性来查询,用Ser-chProb1em方法实现。同时,实现对两个决策问题的相似性判断。

⑤问题删除:将问题知识库中重复的、过时的、错误的或者无用的问题删除,用De1eteProb1em方法实现。

⑥展示问题:打开问题知识库,显示里面存储的总决策问题。同时,根据用户选择不同的问题并借助Prob1ems对象中的ShowPMChain方法展开显示该总决策问题的分解结构。在用户需要的时候,可链接到相关问题上,用ShowProb1em方法实现。

⑦提供问题表述语句分词功能的接口:当用户点击问题管理器上的相关按钮或菜单时,触发GetWordSegmentation事件以调用WordSegmentation控件。使用户界面跳转至问题中文表述语句分词窗口,控制和设置对选择的决策问题进行表述语句的分词。

⑧提供问题识别功能的接口:当用户点击问题管理器上的相关按钮或菜单时,触发GetProb1emIdentificator事件以调用Prob-1emIdentificator控件。使用户界面跳转至决策问题识别窗口,以便用户对问题显性属性和隐含属性以及子问题识别过程的控制。

⑨提供问题求解功能的接口:当用户点击问题管理器上的相关按钮或菜单时,触发GetProb1emSo1ver事件以调用Prob1emSo1ver控件。使用户界面跳转至决策问题求解窗口,控制或设置问题求解的相关过程与参数。

⑩提供问题求解方案管理功能的接口:当用户点击问题管理器上的相关按钮或菜单时,触发GetSchemaEva1íation事件以调用So1ítionSchemaManager控件。使用户界面跳转至求解方案管理窗口,以便用户对求解方案进行评价和选取。

2.Prob1ems(决策问题集合对象)的主要功能

一个决策问题及其所有被分解的各级子问题构成一个决策问题集合,为实现对该集合的管理,Prob1ems对象的功能包括:

①设置一个决策问题集合:决策问题集合对象通过Add、Get、Remove、C1ear方法向集合中增加、获取、删除一个或多个决策问题对象。

②建立问题分解结构:通过SetPMChain方法建立决策问题集合所对应的决策问题的分解结构,以确定该决策问题包含有哪些子问题及属于哪个父问题。

③显示问题分解结构:用ShowPMChain方法显示所对应的决策问题的分解结构,问题分解结构采用树形目录的形式加以显示。

3.Prob1em(决策问题对象)的主要功能

①记录各层次决策问题的编号、名称、详细表述和父问题。

②对于选定的决策问题,通过GetProperties方法获取其目标、已知条件、问题类型、求解方法及求解条件等所有属性组成的属性集合,为PMS设置这些属性提供方便。

③为选定的决策问题通过SetSo1ítionSchema方法设置一个已经存在的求解方案,以便用户可利用现成的求解方案快速求解决策问题。

4.PM-Properties(决策问题属性集合对象)的主要功能

一个决策问题所有的显性属性和隐含属性构成一个决策问题集合,为实现对该集合的管理,PM-Properties对象的功能包括:

①设置一个决策问题属性集合:通过Add、Get、Remove、C1ear方法向集合中增加、获取、删除一个或多个决策问题属性对象。

②查找决策问题的属性:通过Find方法向集合中查找指定的决策问题属性。

5.PM-Property(决策问题属性对象)的主要功能

①管理每个决策问题属性的编号、名称、取值(内容)及与其他决策问题的关联。

②通过GetPropertyVa1íe方法获取当前决策问题属性的取值(内容),为问题的识别、求解等提供必要的依据;或配合Prob-1em对象的GetProperties方法,实现对选定决策问题的单个属性内容进行设置。

需要说明的是,对于PMS-DC中的每个对象/类或控件的属性,都有Set和Get两种方法实现属性取值的设置和读取,以便在应用程序开发时对类的实例进行操作。在上述设计中,由于它们是各种对象/类或控件的通用方法,我们就没有一一描述。但对PM-Property对象的Comment属性而言,由于它存储的信息(即决策问题本身的属性取值)是理解和求解决策问题的关键(如问题关键词属性是问题类型识别的关键,而问题类型属性又是求解方法匹配的依据,求解条件属性是子问题识别的判据,等等),在PMS-DC的多个控件中都需要调取PM-Property。Comment属性的取值,故在此我们把GetPropertyVa1íe方法作为一个重要的功能加以强调。

6.PM-Words(问题表述词组集合对象)的主要功能

从一个决策问题表述语句中切分出的所有词或词组构成一个问题表述词组集合。为实现对该集合的管理,PM-Words对象的功能包括:

①设置一个问题表述词组集合:通过Add、Get、Remove、C1ear方法向集合中增加、获取、删除一个或多个问题表述词组对象。

②显示词句分词结构:用ShowWSChain方法显示一个决策问题表述语句的词句切分结构,该结构采用“词组1/词性1 词组2/词性2……词组n/词性n”的形式展示,以便用户对分词结果进行检查。

7.PM-Word(问题表述词组对象)的主要功能

①管理从问题表述语句中切分出的每个词或词组的编号、内容、词性和关键词属性。其中,关键词属性表征该词是关键主题词还是关键动词或不是关键词。

②通过GetPropertiesVa1íe方法获取当前词组的具体内容及其词性标注,为问题属性识别的句法分析提供依据。

③通过GetKWPropertyVa1íe方法获取当前词组的关键词特征,为问题类型识别提供依据。

8.So1ítionSchemas(求解方案集合对象)的主要功能

对决策问题用不同的方法求解将形成不同的求解方案,一个决策问题所有被找到的求解方案构成一个问题求解方案集合。为实现对该集合的管理,So1ítionSchemas对象的功能包括:

①设置一个问题求解方案集合:通过Add、Get、Remove、C1ear方法向集合中增加、获取、删除一个或多个问题求解方案对象。

②管理求解方案评价方法的编号和求解方案的评分等信息。对于MMS-DC的模型库中已建立起的求解方案评价模型,采用SetEMID方法设置其编号,以便So1ítionSchemaManager控件选择合适的评价模型对求解方案进行评价。由于有些评价模型既可作为求解方案的评价模型,也可用作评价类问题的求解模型,因此,我们通过设置编号将模型在必要时标识为求解方案评价模型。

③通过GetScore方法获取所有求解方案的评分结果并显示给用户。

é。So1ítionSchema(求解方案对象)的主要功能

①记录求解方案名称、所在的求解方案库文件名、求解方案库文件存储路径、求解方案中的决策问题集合以及求解方案中顶层决策问题求解结果存储路径等信息。其中,求解方案库文件存储着一个或多个决策问题的求解方案集合。一个决策问题的求解方案因其包含了该问题的子问题分解结构,故要记录其对应的决策问题集合,该集合中的顶层问题即该方案对应的决策问题,其求解结果是方案评价的重要依据。

②为实现利用求解方案库文件对求解方案的记录和存储,采用OpenSchemaBase方法和C1oseSchemaBase方法打开和关闭求解方案库文件,采用LoadSo1ítionSchema、SaveSo1ítionSchema和De-1eteSo1ítionSchema方法分别实现对库文件中求解方案的读取、保存和删除。

需要说明的是,求解方案库文件和求解方案集合是不同的。一个库文件可以存储多个求解方案集合,也可以存储那些暂时没有归于某个集合的独立求解方案。

10.So1ítionTasks(求解任务集合对象)的主要功能

一个决策问题及其各级子问题的所有求解任务构成一个求解任务集合,为实现对该集合的管理,So1ítionTasks对象的功能包括:

①设置一个求解任务集合:通过Add、Get、Remove、C1ear方法向集合中增加、获取、删除一个或多个求解任务对象。

②查找求解任务:通过Find方法向集合中查找指定的求解任务。

③建立求解任务的分解结构:通过TaskChain方法建立求解任务的分解结构。求解任务的分解结构与决策问题的分解结构是一致的,建立求解任务分解结构的作用在于方便用户查看集合中的各求解任务。

11.So1ítionTask(求解任务对象)的主要功能

①记录每个求解任务的名称、类型、描述、与决策问题的关联和指派的求解方法。

②通过SetSo1ítionMethod方法为求解任务指派求解方法,以便Prob1emSo1ver控件选择一定的求解方法求解决策问题。

③通过Prob1emIDEntificator方法将待求解的决策问题标识为求解任务。

12.WordSegmentation(中文表述分词控件)的主要功能

①读取决策问题的表述:通过LoadPBComment方法载入待分词的决策问题详细表述,以便传递给分词算法作词句切分处理。

②选择分词算法:用SetA1gorithmID方法从MMS-DC的算法库中选择一种分词算法。

③问题存储:用SaveProb1em方法将新建或修改的决策问题保存至问题知识库中。

④读取分词的结果:通过LoadWord方法和LoadCharacteristic方法获取用分词算法切分出的词组及其对应的词性标注。

⑤保存分词的结果:通过SaveWord方法将分词获得的词组及其词性特征保存至PM-Word对象的相关属性中。同时,采用SaveWords方法构建该问题表述语句的词组集合。

⑥提供与分词算法的连接接口:当用户点击分词模块上的相关按钮或菜单时,触发GetA1gorithm事件以调用选定的分词算法,并将问题表述语句字串传递给该算法进行词句切分。

13.Prob1emIdentificator(问题识别控件)的主要功能

①子句划分:依次通过LoadWords方法和LoadWord方法读取待识别的决策问题的表述语句分词结果,为子句的划分提供分析的依据。同时,通过GetSentenceSegmentA1gorithm事件调用子句划分算法进行目标子句与条件子句的划分,并通过CreateSíb-SentenceWords方法生成相应的子句集合,为决策问题的已知条件与求解目标识别所需的句法分析做准备。

②句法分析:当条件子句和目标子句划分完成后,触发Get-SentenceAna1yseA1gorithm事件以调用子句句法分析算法,对条件子句和目标子句进行句法分析,并将获得的分析结果保存成子句的依存关系三元组集合,构成决策问题的已知条件集合与求解目标集合。

③双关键词识别:同样地,在完成句法分析而识别出决策问题的条件与目标后(针对总问题),或者在问题识别模块上点击相关按钮时(针对系统构造的子问题,因为这种子问题的条件和目标是已知的,不需要再识别),触发GetKeyWordsRí1e事件调用KMS-DC的知识规则库中的双关键词识别规则识别出决策问题的关键主题词和关键动词。

④问题类型和求解方法识别:当双关键词识别完成时,触发GetPMType IdentifyMode1事件以调用问题类型与求解方法识别模型,识别出决策问题的领域类型和求解类型以及两种类型组合下可供选择的求解方法,同时从求解方法知识库中获取相应求解方法所需的求解条件。

⑤保存属性识别的结果:通过SaveProperty方法将决策问题的目标与条件识别、双关键词识别、问题类型与求解方法识别以及求解条件识别的结果逐个保存至PM-Property对象的属性内容中。

⑥子问题识别与构造:通过GetDataSoírceStatís方法获取问题求解方法所需求解条件的数据源取值。如果该取值为空,触发GetSíbProb1emrí1e事件以调用子问题识别规则,识别是否产生子问题。如果需要产生子问题,则采用CreatSíbProb1em方法构造子问题,并通过GetSíbPMProperties方法将父问题条件属性传递给子问题,构成子问题的条件属性。

14.Prob1emSo1ver(问题求解控件)的主要功能

①记录选择求解方法所用的求解方法类型和调用数据所需的SQL生成器类型。

②建立求解任务:对于标识为待求解的决策问题,通过Set-So1ítionTask方法建立新的求解任务,同时设置该任务或修改已有任务的各种属性。

③获取问题的求解条件:通过LoadPMProperties方法,读取求解任务对应决策问题的求解条件属性,为求解问题所需的数据调用提供依据。

④获得求解的方法:采用LoadMode1方法读取求解模型(对于求解类型为模型求解的任务)或用LoadRí1e方法读取求解规则(对于求解类型为知识规则求解的任务),为求解问题做准备。

⑤载入求解所需数据:通过LoadDataSoíre方法利用SQL生成器载入求解条件属性指定数据源并生成相应的数组变量。

⑥求解决策问题:采用AB_So1ítion方法,将数据数组变量传递给读取的模型或规则所对应的求解算法,求解决策问题。

⑦获得并保存求解结果:用GetSo1ítionResí1t方法记录求解算法的返回结果,同时用SaveSo1ítionResí1t方法保存该结果至指定的数据库。对于求解结果是父问题求解条件的决策问题,Save-So1ítionResí1t方法还将重新指定其父问题求解条件数据源到保存求解结果的数据库。

⑧生成求解方案:依照决策问题的分解结构,用CreatSo1ít-ionTasks方法构造该问题的求解任务集合。当集合中的所有任务被求解后,用CreatSo1ítionSchema方法生成该问题的求解方案,以便为以后求解同样的问题所调用。

⑨提供求解模型设置的接口:当LoadMode1方法获取不到模型库中的现成求解模型时,触发GetMode1Manager事件以调用MMS-DC中的模型管理控件建立新的求解模型。

⑩提供求解规则设置的接口:当LoadRí1e办法获取不到规则库中的现成求解规则时,触发GetRí1eManager事件以调用KMS-DC中的规则管理控件建立新的求解规则。

15.So1ítionSchemaManager(求解方案管理控件)的主要功能①获取求解方案评价所需信息:依次通过LoadSo1ítionSche-

maCo11ection方法和LoadSo1ítionSchema方法读取指定决策问题的求解方案集合与其中的各个求解方案,用ShowSo1ítionResía1t方法读取并显示该决策问题用各求解方案得到的求解结果,为用户评价求解方案做准备。

②选择求解方案评价方法:通过Se1ectEva1íationMethod方法在模型库中选择所需的求解方案评价方法或选择直接由用户手工进行评分。

③评价求解方案:如果选择指定的评价模型来评价求解方案,采用Eva1íation方法调用选择的评价模型给求解方案评分。如果选择手工评分,则采用SetScore方法直接让用户给求解方案打分。SetScore方法也支持用户对评分的手工修改。

④对求解方案按评分进行排序:为方便用户比较求解方案的评分结果,通过ShowSo1ítionSchema方法按照评分高低顺序显示求解方案的名称及评分结果。

⑤选择最终的求解方案:用SetPMSchema方法为指定问题指定最终的求解方案,同时配合ShowSo1ítionResía1t方法使用户获取该方案的求解结果,最终为该问题的决策提供参考依据。

⑥提供求解方案评价模型设置的接口:当Se1ectEva1íation-Method方法找不到合适的评价模型时,触发GetMode1Manager事件以调用MMS-DC中的模型管理控件建立新的评价模型。

以上组件功能设计为组件各组成部分的主要功能,一些更细小的功能在此不再赘述。