Research Article

A Hybrid Programming Framework for Modeling and Solving Constraint Satisfaction and Optimization Problems

Table 3

Description of the facts, lists, and parameters for the illustrative example.

FactsKeysParameters

Facts about structure of the problem
F_product
(#id_pro, #id_wer, #)
#id_pro: problem ID
#id_wer: version of the data instances
#: product ID
F_machine
(#id_pro, #id_wer, #)
#id_pro: problem ID
#id_wer: version of the data instances
#: machine ID
F_technology
(#id_pro, #id_wer, #, #, parameters)
#id_pro: problem ID
#id_wer: version of the data instances
#: product ID
#: machine ID
: the execution time of the product on the machine
F_precedence
(#id_pro, #id_we, #, #, #)
#id_pro: problem ID
#id_wer: version of the data instances
#: product ID
#: machine ID
F_resources
(#id_pro, #id_we, #, parameters)
#id_pro: problem ID
#id_wer: version of the data instances
#: additional resource ID
: the total number of additional resources
F_allocation
(#id_pro, #id_we, #, #, #, parameters)
#id_pro: problem ID
#id_wer: version of the data instances
#: additional resource ID
#: machine ID
#: product ID
: the number of additional resources needed to execute a product on the machine
F_model
(#id_pro, #id_wer, #, parameters)
#id_pro: problem ID
#id_wer: version of the data instances
#: model ID
: line of code for model ID
F_order
(#id_pro, #id_we, #, parameters)
#id_pro: problem ID
#id_wer: version of the data instances
#: product ID
: the size of the order for product

Lists
L_precedence
(#, #, #)
#: machine ID
#: product ID
L_technology
(#, #, parameters)
#: product ID
#: machine ID
: the execution time of the product on the machine ; : if the product is executed on the machine ,   = 1; otherwise, = 0; : the size of the order for product
L_allocation
(#, #, #, parameters)
#: additional resource ID
#: machine ID
#: product ID
: the number of additional resources needed to execute a product on the machine ; : the total number of additional resources
L_model
(#, parameters)
#: model ID: line of code for model ID
L_index_
(#, #, parameters)
#: product ID
#: machine ID
: the new index after transformation
L_data_
(#, parameters)
#: the new index after transformation (combination of # and #): the execution time of the product on the machine ; : if the product is executed on the machine, ; otherwise, ; : the size of the order for product
L_precedence_
(#, #)
#: the new index after transformation (combination of # and #)