Optimize_NBP | R Documentation |
Optimize_NBP
creates and optimizes the Nash Bargaining Problem (NBP) in Julia environment.
It requires two objective functions to be considered as two players.
(For detailed information refer to the paper)
Optimize_NBP(First_Objective=0, Second_Objective=0, Risk_Objective=0,
Time_limit=1e7, Solver="SCIP", Silence= FALSE, Env= .GlobalEnv)
First_Objective |
A binary parameter: If 1, the first objective function ( |
Second_Objective |
A binary parameter: If 1, the second objective function ( |
Risk_Objective |
A binary parameter: If 1, the Risk objective function ( |
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 |
Env |
the environment where the package should create or access variables. By default the package works in the R's Global environment. (Default: .GlobalEnv) |
To create NBP, the nadir values of both objectives are required, which entails 4 optimization problems.
If Optimize_NBP
terminates with a Warning
, then there have been a problem in the process of finding the Nadir points, and
the function has terminated before even going to the NBP optimization. The corresponding found solution and status will be returned as a list.
Furhter, the Warning
will report in what step the function was terminated.
If Optimize_NBP
finishes with no Warning
, then the Nadir points were found successfully, and the NBP was created.
Then, in the list that Optimize_NBP
returns, [["Status"]]
defines the status of the returned NBP solution.
If [["Status"]]="OPTIMAL"
, the NBP was solved to optimality and the Parcels' optimal status are stored in [["Result"]]
.
Also, the NBP 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"
, then there has been a problem in the solver. In this stage, the feasibility and boundedness of the problem
is certain, and therefore, any status of this kind is showing an underlying problem. Contact the Developer.
In any other case, the [["Status"]]
will be the solution status that the solver has reported.
Note 1: If only First Objective and Second Objective are considered, Optimize_NBP
needs to solve a total of 5 optimization problems to find the NBP solution:
Four Linear Problem (LP), and one Second Order Cone Program (SOCP).
Note 2: If Risk objective is considered along with one of First objective or Second Objective, Optimize_NBP
needs to solve 3 optimization problems to find the NBP solution:
One Linear Problem (LP), one Quadratic Problem (QP), and one Second Order Cone Program (SOCP).
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 NBP value of first objective.
[["Second_Objective"]]
: a numveric value; (if applicable) returns the NBP value of second objective.
[["Risk_Objective"]]
: a numveric value; (if applicable) returns the NBP value of risk objective.
[["Ideal"]]
: a list with two members returning the ideal values of the input objectives found in the process of creating the NBP.
[["Nadir"]]
: a list with two members returning the nadir values of the input objectives found in the process of creating the NBP.
Other Optimizer Functions:
Load_Problem()
,
Optimize_First_Objective()
,
Optimize_Second_Objective()
,
Optimize_WSO()
## Not run:
## to find NBP solution for First Objective and Second Objective: ##
Optimize_NBP(First_Objective=1, Second_Objective=1, Time_limit=1e7, Solver="SCIP", Silence= FALSE)
## to find NBP solution for First Objective and Risk Objective: ##
Optimize_NBP(First_Objective=1, Risk_Objective=1, Time_limit=1e7, Solver="SCIP", Silence= FALSE)
## to find NBP solution for Second Objective and Risk Objective: ##
Optimize_NBP(Second_Objective=1, Risk_Objective=1, Time_limit=1e7, Solver="SCIP", Silence= FALSE)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.