570 likes | 782 Views
Ontology-based optimization modeling tool for distributed and ad-hoc business problems. 2012.12.13 Piao Guangyuan. Contents. Introduction 2.Related Works 3.Ontology-based Optimization Modeling Tool using SWCL 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise
E N D
Ontology-based optimization modeling tool for distributed and ad-hoc business problems 2012.12.13 PiaoGuangyuan
Contents • Introduction • 2.Related Works • 3.Ontology-based Optimization Modeling Tool using SWCL • 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • 5.Conclusion
Contents • Introduction • 1.1. Background of the research • 1.2. Why this research is needed? • 1.3. Scopes and objectives of the research • 2. Related Works • 3. Ontology-based Optimization Modeling Tool using SWCL • 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • 5. Conclusion
1. Introduction • Background of the research • Semantic Web • - The Semantic Web is a "man-made woven web of data" that facilitates machines to understand the semantics, or meaning, of information on the World Wide Web • SWCL and the applications • - Semantic Web Constraint Language (SWCL) was proposed in 2006 with the vision of complementing the constraints on data and concepts represented by ontology. • - The Application of SWCL for decision making in internet shopping environment was proposed by Youn, Suk Hee1) with an implementation of a shopping agent in the Semantic Web environment in 2006. • - Jeong, Kynbum2) , 2007 proposed to apply SWCL based on OWL to be possible interchanging constraints information among each other in the virtual enterprise and more flexible. 1). Supporting System for Shopping Decision Making based on Semantic Web Constraint Language (2006), Youn, SukHee 2). Application of Semantic Web Constraint Language SWCL for Virtual Enterprise (2007), Jeong, Kyunbum
1. Introduction • Why this research is needed? The SWCL Syntax is uncomfortable to read and write Users need high level of knowledge in OWL It would be a tedious work to deal with expressing many constraints All constraints related to objective are need to be defined manually Difficult to generate and evaluate SWCL as well as inconvenient to users apply it to real problems.
1. Introduction • Objectives and Scopes of the research Develop Optimization Modelling Tool to facilitate the usage of Ontology and SWCL Objectives Develop translation algorithm from SWCL to solver’s code Develop Optimization Modelling Tool based on Protégé Scopes Choose IBM IlogCplex Optimization Studio as the solver Apply SWCL to cope with linear problem
1. Introduction • Objective with Virtual Enterprise scenario Semantic Web MemVendor1 CPUVendor constraint constraint MemVendor2 constraint constraint constraint AssemblyVendor ? Optimized Solution Optimized Solution with MemVendor2
1. Introduction • Contributions Ontology Ontology Reference manually Reference with OWL API Optimization Modeling Using SWCL Manually Optimization Modeling Using SWCL in Protégé Select related constraints manually Detect related constraints automatically SMART Engine OWL API Ilog statement
Contents • Introduction • 2. Related Works • 2.1. Semantic Web • 2.2. OWL2.0 • 2.3. SWRL • 2.4. SWCL • 2.5. Drawbacks of SWCL • 3. Ontology-based Optimization Modeling Tool using SWCL • 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • 5. Conclusion
2. Related works • Semantic Web, OWL 2.0 and SWRL • Semantic Web • - The Semantic Web is the extension of the World Wide Web that enables people to share content beyond the boundaries of applications and websites. • OWL 2.0 • - OWL 2 Web Ontology Language (OWL) is a Semantic Web language designed to represent rich and complex knowledge about things, groups of things, and relations between things. • SWRL • - Semantic Web Rule Language (SWRL) is a language based on a combination of the OWL DL and OWL Lite sublanguages of the OWL Web Ontology Language with the Unary/Binary DatalogRuleML sublanguages of the Rule Markup Language. Example: hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)
2. Related works • SWCL (Semantic Web Constraint Language) • The Purpose of SWCL • - Representing mathematical expressions about constraints in the Semantic Web. • - OWL and SWRL cannot support what relates mathematical expressions. • - SWCL is the extended version of OWL, because of it’s data connection with OWL classes and properties in SWCL expressions. Country Province partOf populationValue populationValue xsd:positiveInteger Fig. 1. Country and province classes and the relationship of them
2. Related works • SWCL (Semantic Web Constraint Language) Fig. 2. SWCL structure
2. Related works • SWCL Abstract Syntax
2. Related works • Drawbacks of SWCL <swcl:Constraintrdf:ID=”numberOfPopulation"> <swcl:qualifier> <swcl:Variablerdf:id="y"> <swcl:bindingClassrdf:resource="#Country"/> </swcl:Variable> </swcl:qualifier> <swcl:hasLHS> <swcl:TermBlockrdf:ID="termBlock_1"> <swcl:signrdf:resource="&swcl;plus"/> <swcl:aggregateOperatorrdf:resource="&swcl;Sigma"/> <swcl:parameter> <swcl:Variablerdf:id="x"> <rdfs:subClassOf> <owl:Restriction> <owl:onPropertyrdf:resource="#partOf"/> <owl:hasValuerdf:resource="#y"/> </owl:Restriction> </rdfs:subClassOf> </swcl:Variable> </swcl:parameter> <swcl:factor> <swcl:FactorAtom> <swcl:bindingClassrdf:resource="#x"/> <swcl:bindingDatatypePropertyrdf:resource="#populationValue"/> <swcl:FactorAtorm> </swcl:factor> </swcl:TermBlock> </swcl:hasLHS> <swcl:hasOperatorrdf:resource="&swcl;equal"/> <swcl:hasRHS> <swcl:TermBlockrdf:ID="termBlock_2"> <swcl:signrdf:resource="&swcl;plus"/> <swcl:factor> <swcl:FactorAtom> <swcl:bindingClassrdf:resource="#y"/> <swcl:bindingDatatypePropertyrdf:resource="#populationValue"/> </swcl:FactorAtom> </swcl:factor> </swcl:TermBlock> </swcl:hasRHS> </swcl:Constraint> The SWCL Syntax present is difficult to read and write Users need high level of knowledge in OWL In order to cope with these problems… It would be a tedious work to deal with expressing many constraints
Contents • Introduction • 2. Related Works • 3. Ontology-based Optimization Modeling Tool using SWCL • 3.1. Architecture of Optimization Modeling Tool • 3.2. Constraint Editor • 3.3. Optimization Model Constructor • 3.4. Optimization Modeling Language Translator • 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • 5. Conclusion
3.Ontology-based Optimization Modeling Tool using SWCL • Architecture of Optimization Modeling Tool Ontology-based Optimization Modeling Tool Optimization Model Constructor Optimization Modeling Language Translator IBM IlogCplex Optimization Studio Optimization Model Identification OWL/ SWCL Statement Ilog Statement Decision Variable Identification Constraint Editor Constraint Identification User Interface Objective Identification Protégé 4.1 Protégé 4.1 API OWL API
3.Ontology-based Optimization Modeling Tool using SWCL • Constraint Editor The constraint editor of OMT which can help users Manipulate SWCL more straightforward Create, retrieve, update, delete SWCL easily Refer to resources in Protégé intuitively For the reasons, we develop Optimization Modeling Tool as a plug-in of Protégé…
3.Ontology-based Optimization Modeling Tool using SWCL • Constraint Editor – Adapting Manchester Syntax • Manchester Syntax • - The Manchester OWL syntax is a user-friendly syntax for OWL 2 descriptions Apply Manchester Syntax in variable’s class expressions which is <swcl:Variablerdf:id="x"> <rdfs:subClassOf> <owl:Restriction> <owl:onPropertyrdf:resource="#partOf"/> <owl:hasValuerdf:resource="#y"/> </owl:Restriction> </rdfs:subClassOf> </swcl:Variable> Designed to produce a syntax that was concise Designed for writing OWL class expressions Fig. 3. Class expression for variable x Less verbose, quicker to write and easier to read
3.Ontology-based Optimization Modeling Tool using SWCL • Constraint Editor – Adapting Manchester Syntax <swcl:Variablerdf:id="x"> <rdfs:subClassOf> <owl:Restriction> <owl:onPropertyrdf:resource="#partOf"/> <owl:hasValuerdf:resource="#y"/> </owl:Restriction> </rdfs:subClassOf> </swcl:Variable> x partOf VALUE ?y Fig. 4. The Manchester OWL Syntax Class Constructors
3.Ontology-based Optimization Modeling Tool using SWCL • Constraint Editor – Refer to classes and properties in Protégé easily Fig. 5. Screenshot of Protégé
3.Ontology-based Optimization Modeling Tool using SWCL • Constraint Editor Adapting Manchester Syntax Referring resources in Protégé Fig. 6. Screenshot of Constriant Editor
3.Ontology-based Optimization Modeling Tool using SWCL • Architecture of Optimization Modeling Tool Ontology-based Optimization Modeling Tool Optimization Model Constructor Optimization Modeling Language Translator IBM IlogCplex Optimization Studio Optimization Model Identification OWL/ SWCL Statement Ilog Statement Decision Variable Identification Constraint Editor Constraint Identification User Interface Objective Identification Protégé 4.1 Protégé 4.1 API OWL API
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor • Objective Identification • - The step identifies the user’s objective for the optimization model. • Constraint Identification • Once the objective is given, the constraints related to the objective should be identified automatically. • Decision Variable Identification • - In this step, for all factors, we first examine whether its value is exist. If this is the case, the factor is called “constant factor”; otherwise, it is identified as “decision variable factor” • Optimization Model Identification • - We identify which kind of programming model (e.g., linear programming problem, constraint logic problem, constraint satisfaction problem) is given in this step.
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor – Objective Identification Fig. 7. Screenshot of Objective View
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor – Constraint Identification Objective Constraint04 Constraint01 Constraint07 Constraint05 Constraint03 Constraint06 Constraint02 Constraint08 After objective identified based on classes and properties from Ontology, the constraints related to the objective should be identified automatically.
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor – Constraint Identification initialize decision variable factors set empty initialize relevant factors set empty initialize identified constraint set empty for all Objective TermBlocks for all Factors if Factor is “decision variable factor” set {Factor’s class expression, property} as a pair add the pair to decision variable factors set endif endfor endfor repeat for all Constraints for all Factors in Constraint if Factor is exist in decision variables set add Constraint to identified constraint set if relevant factors in the Constraint is “decision variable” set {Factor’s class expression, property} as a pair add the pair to relevant factors set endif endif endfor endfor set decision variable factors set as relevant factors set set relevant factors set empty until decision variable factors set is empty
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor – Constraint Identification minimize if factor value is not exist 1 Add factor to decision variable factors set if the factor exist in decision variable factors set if factor value is not exist 2 3 Add to relevant factors set Add to identified constraints set 4 Set as decision variable factors set, empty relevant factors set 5 Repeat until decision variable factors set is empty
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Model Constructor – Decision Variable Identification for all individuals in variable if individual has no property value the individual‘s property value is decision value endif endfor v1Consumption11 v1Consumption12 v1Consumption11.hasConsumptionAmount factor value exist Constant Decision Variable
3.Ontology-based Optimization Modeling Tool using SWCL • Architecture of Optimization Modeling Tool Ontology-based Optimization Modeling Tool Optimization Model Constructor Optimization Modeling Language Translator IBM IlogCplex Optimization Studio Optimization Model Identification OWL/ SWCL Statement Ilog Statement Decision Variable Identification Constraint Editor Constraint Identification User Interface Objective Identification Protégé 4.1 Protégé 4.1 API OWL API
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Modeling Language Translator OWL/SWCL Statement Objective Ilog Statement Constraint01 Constraint06 Constraint02 Constraint03
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Modeling Language Translator - Objective initializeVariableDeclaration String to "" initializeObjectiveTo String to "" for all Objective TermBlocks initialize Objective TermBlock String to "" for all individuals in Parameter for all factors in individual initialize Factor String to "“ if factor's variable has the value in factor's property append the value to Factor String else declare the variable with property's name appending individual's name append the variable to Factor String endif append Factor String to Objective TermBlock endfor endfor append Objective TermBlock String to ObjectiveTo String endfor
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Modeling Language Translator - Objective minimize … v1Consumption11 v1Consumption12 v1Consumption44 Termblock String v1Consumption11.hasConsumptionAmount v1Consumption11.hasConsumptionCost Factor String factor value exist Factor Value (30) Property Name + Individual Name (hasConsumptionAmountv1Consumption11)
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Modeling Language Translator - Constraints for all qualifiers initialize LHS String to "" for all LHS TermBlocks initialize LHS TermBlock String to "" if there is no Parameter for all factors initialize Factor String to "" if factor's variable has the value in factor's property append the value to Factor String else declare the variable with property's name appending individual's name append the variable to Factor String endif endfor append Factor String to LHS TermBlock String else for all individuals in Parameter for all factors in individual initialize Factor String to "" if factor's variable has the value in factor's property append the value to Factor String else declare the variable with property's name appending individual's name append the variable to Factor String endif endfor endfor endif append LHS TermBlock String to LHS String endfor endfor
3.Ontology-based Optimization Modeling Tool using SWCL • Optimization Modeling Language Translator - Constraints v=v1 v2 v3 v4 w=v1Week1 v1Week2 v1Week3 v1Week4 … v1Consumption11 v1Consumption12 v1Consumption14 Termblock String v1Consumption11.hasConsumptionAmount Factor String check declared variables, if not exist factor value exist Factor Value Property Name + Individual Name
Contents • Introduction • 2. Related Works • 3. Ontology-based Optimization Modeling Tool using SWCL • 4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • 4.1. Virtual Enterprise problem • 4.2. Constraints sharing among vendors • 4.3. Virtual Enterprise Ontology Modeling • 4.4. Optimization Modeling with Optimization Modeling Tool • 4.5. Translated Ilog code from SWCL • 4.6. Get optimal objective of VE problem • 5. Conclusion
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Virtual Enterprise Problem • Virtual Enterprise • - Virtual Enterprise (VE) is a temporary alliance of companies that shares resources to respond to business opportunities better. Obtaining an optimal production schedule for a VE’s supply chain is usually the most important factor for its success. Fig. 4. Virtual Enterprise - Product: PC - BOM (Bill of Material): PC– 2memories, 1CPU - PCdemands: 1st week: 30, 2nd week: 20, 3rd week: 35, 4th week: 40
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Virtual Enterprise Problem Fig. 8. Virtual Enterprise Problem
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Constraints sharing among vendors • Constraint-1: Producing amount should less or equal than the produce capability in that week. • Constraint-2: Demand in the week should less or equal than the sum of spending amount. • Constraint-3: The demand of CPU vendors should greater or equal to assembly company’s • producing amount. :Prodoutp produced at i-th week and comsumed at j-th week by k-th company :The maximum production capacity at i-th week of k-th company forp :Own demand at i-th week of k-th company for p :Virtual Enterprise demant at i-th week of k-th company for p
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Constraints sharing among vendors • Constraint-4: The demand of Memory vendors should greater or equal to two times of assembly • company’s producing amount. • Total Cost :Unit production cost of p-th product in k-th company :Unit inventory cost per week of p-th product in k-th company
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise int int • Virtual Enterprise Ontology Modeling hasConsumptionAmount hasConsumptionCost MemoryVendor Consumption hasSpendWeek hasConsumptionVendor hasProduceWeek subClassOf hasCapacityVendor hasCapacityWeek Vendor Capacity Week hasProduceCapability subClassOf hasDemandVendor int hasDemandWeek CPUVendor subClassOf Inverse Properties: hasConsumptionVendor↔hasConsumption hasDemandVendor↔hasDemand hasCapacityVendor↔hasCapacity hasDemandWeek↔hasDemand hasSpendWeek↔hasSpendConsumption hasProduceWeek↔hasProduceConsumption Demand hasOwnDemand hasVeDemand AssemblyVendor int int
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Constraints sharing among vendors • Constraint-1: Producing amount should less or equal than the produce capability in that • week. • Constraint-2: Demand in the week should less or equal than the sum of spending amount.
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Constraints sharing among vendors • Constraint-3: The demand of CPU vendors should greater or equal to assembly company’s • producing amount. • Constraint-4: The sum of demands of memory vendors should greater or equal to assembly • company’s producing amount.
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Objective from user • Objective: Minimize the total cost of all vendors minimize
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Optimization Modeling with Optimization Modeling Tool
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Optimization Modeling with Optimization Modeling Tool
Virtual Enterprise with Memory Vendor 1 Semantic Web MemVendor1 CPUVendor constraint constraint constraint AssemblyVendor
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Translated Ilog code from SWCL dvarint+ hasConsumptionAmountv1Consumption11; dvarint+ hasConsumptionAmountv1Consumption12; dvarint+ hasConsumptionAmountv1Consumption13; dvarint+ hasConsumptionAmountv1Consumption14; ; … … minimize 50*hasConsumptionAmountv1Consumption11+55*hasConsumptionAmountv1Consumption12+…+30*hasConsumptionAmountv4Consumption44; subject to { hasConsumptionAmountv1Consumption11+hasConsumptionAmountv1Consumption12+hasConsumptionAmountv1Consumption13+hasConsumptionAmountv1Consumption14<=90; hasConsumptionAmountv1Consumption23+hasConsumptionAmountv1Consumption24+hasConsumptionAmountv1Consumption22<=80; hasConsumptionAmountv1Consumption33+hasConsumptionAmountv1Consumption34<=90; hasConsumptionAmountv1Consumption44<=90; hasConsumptionAmountv3Consumption11+hasConsumptionAmountv3Consumption14+hasConsumptionAmountv3Consumption12+hasConsumptionAmountv3Consumption13<=70; hasConsumptionAmountv3Consumption22+hasConsumptionAmountv3Consumption23+hasConsumptionAmountv3Consumption24<=80; hasConsumptionAmountv3Consumption33+hasConsumptionAmountv3Consumption34<=75; hasConsumptionAmountv3Consumption44<=70; … … … … }
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Get optimal objective of VE problem hasConsumptionAmountv1Consumption11 = 90; hasConsumptionAmountv1Consumption12 = 0; hasConsumptionAmountv1Consumption13 = 0; hasConsumptionAmountv1Consumption14 = 0; hasConsumptionAmountv1Consumption22 = 70; hasConsumptionAmountv1Consumption23 = 10; hasConsumptionAmountv1Consumption24 = 0; hasConsumptionAmountv1Consumption33 = 90; hasConsumptionAmountv1Consumption34 = 0; hasConsumptionAmountv1Consumption44 = 80; hasConsumptionAmountv3Consumption11 = 35; hasConsumptionAmountv3Consumption12 = 0; hasConsumptionAmountv3Consumption13 = 0; hasConsumptionAmountv3Consumption14 = 0; hasConsumptionAmountv3Consumption22 = 45; hasConsumptionAmountv3Consumption23 = 0; hasConsumptionAmountv3Consumption24 = 0; hasConsumptionAmountv3Consumption33 = 45; hasConsumptionAmountv3Consumption34 = 0; hasConsumptionAmountv3Consumption44 = 50; hasConsumptionAmountv4Consumption11 = 30; hasConsumptionAmountv4Consumption12 = 5; hasConsumptionAmountv4Consumption13 = 0; hasConsumptionAmountv4Consumption14 = 0; hasConsumptionAmountv4Consumption22 = 35; hasConsumptionAmountv4Consumption23 = 0; hasConsumptionAmountv4Consumption24 = 0; hasConsumptionAmountv4Consumption33 = 45; hasConsumptionAmountv4Consumption34 = 0; hasConsumptionAmountv4Consumption44 = 40; hasVeDemandv1DemandWeek1 = 70; hasVeDemandv1DemandWeek2 = 70; hasVeDemandv1DemandWeek3 = 90; hasVeDemandv1DemandWeek4 = 80; hasVeDemandv3DemandWeek1 = 35; hasVeDemandv3DemandWeek2 = 35; hasVeDemandv3DemandWeek3 = 45; hasVeDemandv3DemandWeek4 = 40; Solution (optimal) with objective 34000
Virtual Enterprise with Memory Vendor 1,2 Semantic Web MemVendor1 CPUVendor constraint constraint MemVendor2 constraint constraint AssemblyVendor
4. Applying Ontology-based Optimization Modeling Tool to Virtual Enterprise • Translated Ilog code from SWCL dvarint+ hasConsumptionAmountv1Consumption11; dvarint+ hasConsumptionAmountv1Consumption12; dvarint+ hasConsumptionAmountv1Consumption13; dvarint+ hasConsumptionAmountv1Consumption14; ; … … minimize 50*hasConsumptionAmountv1Consumption11+55*hasConsumptionAmountv1Consumption12+…+30*hasConsumptionAmountv4Consumption44; subject to { hasConsumptionAmountv1Consumption11+hasConsumptionAmountv1Consumption12+hasConsumptionAmountv1Consumption13+hasConsumptionAmountv1Consumption14<=90; hasConsumptionAmountv1Consumption23+hasConsumptionAmountv1Consumption24+hasConsumptionAmountv1Consumption22<=80; hasConsumptionAmountv1Consumption33+hasConsumptionAmountv1Consumption34<=90; hasConsumptionAmountv1Consumption44<=90; hasConsumptionAmountv2Consumption14+hasConsumptionAmountv2Consumption13+hasConsumptionAmountv2Consumption12+hasConsumptionAmountv2Consumption11<=90; hasConsumptionAmountv2Consumption23+hasConsumptionAmountv2Consumption22+hasConsumptionAmountv2Consumption24<=100; hasConsumptionAmountv2Consumption34+hasConsumptionAmountv2Consumption33<=90; hasConsumptionAmountv2Consumption44<=85; … … … … }