Optimize_WSO: Load and Optimize Weighted Sum Optimization (WSO)

Description Usage Arguments Details Value See Also Examples

View source: R/Optimize_WSO.R

Description

Optimize_WSO creates and optimizes the Weighted Sum Optimization (WSO) in Julia environment. It requires two objective functions and their respective positive weights.
(For detailed information refer to the paper)

Usage

1
2
Optimize_WSO(First_Objective=0, Second_Objective=0, Risk_Objective=0,
                    Time_limit=1e7, Solver="SCIP", Silence= FALSE, Env= .GlobalEnv)

Arguments

First_Objective

A float parameter: defining the weight of the first objective function (First_Objective) in the optimization. If 0, it will not be included in optimization.

Second_Objective

A float parameter: defining the weight of the second objective function (Second_Objective) in the optimization. If 0, it will not be included in optimization.

Risk_Objective

A float parameter: defining the weight of the Risk objective function (Risk_Objective) in the optimization. If 0, it will not be included in optimization.

Time_limit

A double: the total time limit in seconds

Solver

A string: defining the solver to be used to solve the problem. (Default: "SCIP")

Silence

A binary parameter: if FALSE, the function will report a summary message. If TRUE, the function will be silent. (Default: FALSE)

Env

the environment where the package should create or access variables. By default the package works in the R's Global environment. (Default: .GlobalEnv)

Details

In the list that Optimize_WSO returns, [["Status"]] defines the status of the returned WSO solution.
If [["Status"]]="OPTIMAL", the WSO was solved to optimality and the Parcels' optimal status are stored in [["Result"]]. Also, the WSO optimal values of objectives will be stored in either [["First_Objective"]], [["Second_Objective"]], or [["Risk_Objective"]] , based on the input objectives.
If [["Status"]]="TIME_LIMIT", the solver was terminated because the time limit was reached. If any feasible solution was reported by the solver, it would be stored in [["Result"]]. Otherwise, [["Result"]] and objective values would be all equal to "N/A".
If [["Status"]]="INFEASIBLE", the problem is infeasible. So, no solution would be reported.

In any other case, the [["Status"]] will be the solution status that the solver has reported.

Note 1: The weights should be non negative, and two objectives should have positive weights.

Value

A list with 8 members:
[["Solution_time"]]: a numeric value; defining the time spent in the solver in seconds.
[["Status"]]: a character; defining the status of the solution.
[["Gap"]]: a numeric value; defining the relative optimality gap of the solution.
[["Result"]]: a vector of binaries; its i'th element defines if the parcel named Parcels[i] is protected or not. Comparing these values with the values of Status defined when creating the problem, the user can find which parcels are to be invested, divested, or remain the same.
[["Firs_Objective"]]: a numveric value; (if applicable) returns the WSO value of first objective.
[["Second_Objective"]]: a numveric value; (if applicable) returns the WSO value of second objective.
[["Risk_Objective"]]: a numveric value; (if applicable) returns the WSO value of risk objective.

See Also

Other Optimizer Functions: Load_Problem(), Optimize_First_Objective(), Optimize_NBP(), Optimize_Second_Objective()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## Not run: 

## to find WSO solution for First Objective and Second Objective with weights equal to 1 and 2: ##

Optimize_WSO(First_Objective=1, Second_Objective=2, Time_limit=1e7, Solver="SCIP", Silence= FALSE)

## to find WSO solution for First Objective and Risk Objective with weights equal to 1 and 2: ##

Optimize_WSO(First_Objective=1, Risk_Objective=2, Time_limit=1e7, Solver="SCIP", Silence= FALSE)

## to find WSO solution for Second Objective and Risk Objective with weights equal to 1 and 2: ##

Optimize_WSO(Second_Objective=1, Risk_Objective=2, Time_limit=1e7, Solver="SCIP", Silence= FALSE)

## End(Not run)

paymanghasemi/SiteOpt documentation built on April 8, 2021, 3:44 a.m.