# How to give a parameter list to Gurobi

**URL:** https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878
**Category:** Optimization (Mathematical)
**Tags:** gurobi
**Created:** [January 19, 2022, 5:53pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878 "2022-01-19T17:53:55Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![fksayaci](https://avatars.discourse-cdn.com/v4/letter/f/b77776/32.png) [@fksayaci](https://discourse.julialang.org/u/fksayaci)
#### Post date: [January 19, 2022, 5:53pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878/1 "2022-01-19T17:53:55Z")

</div>

Hi all,

I use Gurobi to solve an optimization problem. I might need to try different Gurobi parameters.

Currently, I write parameters and their values inside the model directly, like

`Expansion_Model = Model(optimizer_with_attributes(Gurobi.Optimizer, "MIPGap" => 0.01, "TimeLimit" => 91800, "Method" => 2))`

I do not want to do this inside the model. Instead, I want to create a list of parameters and add this to the model with a for loop, or with something similar. For instance, by using the same example above,

```julia
paramname = ["MIPGap", "TimeLimit", "Method"]
paramvalue = [0,01, 91800, 2]
Expansion_Model = Model(optimizer_with_attributes(Gurobi.Optimizer, paramname => paramvalue))

```

Or, something like

```julia
Expansion_Model = Model(optimizer_with_attributes(Gurobi.Optimizer))
for (x,y) in zip(paramname, paramvalue)
     Expansion_Model.params.add(x,y) # I just fabricate params and add functions. Not sure if we have such functions in Julia
end

```

Do we have such a flexibilty in Julia?

Thank you

---

<div class="post-metadata">

### Author: ![fksayaci](https://avatars.discourse-cdn.com/v4/letter/f/b77776/32.png) [@fksayaci](https://discourse.julialang.org/u/fksayaci)
#### Post date: [January 19, 2022, 6:35pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878/2 "2022-01-19T18:35:10Z")

</div>

I found something called setParam ([https://www.gurobi.com/documentation/9.5/refman/py\_model\_setparam.html](https://www.gurobi.com/documentation/9.5/refman/py_model_setparam.html)), but it does not work in JuMP.

---

<div class="post-metadata">

### Author: ![Henrique\_Becker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrique_becker/32/15443_2.png) [@Henrique\_Becker](https://discourse.julialang.org/u/Henrique_Becker)
#### Post date: [January 19, 2022, 6:56pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878/3 "2022-01-19T18:56:22Z")

</div>

Please, look at the `JuMP` documentation if you are using `JuMP`, more specifically: [`set_optimizer_attributes`](https://jump.dev/JuMP.jl/stable/reference/models/#JuMP.set_optimizer_attributes).

---

<div class="post-metadata">

### Author: ![fksayaci](https://avatars.discourse-cdn.com/v4/letter/f/b77776/32.png) [@fksayaci](https://discourse.julialang.org/u/fksayaci)
#### Post date: [January 19, 2022, 6:57pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878/4 "2022-01-19T18:57:23Z")

</div>

Okay, I found the solution. The following works for me:

```julia
paramname = ["MIPGap", "TimeLimit", "Method"]
paramvalue = [0,01, 91800, 2]
Expansion_Model = Model(optimizer_with_attributes(Gurobi.Optimizer))
for (x,y) in zip(paramname, paramvalue)
     set_optimizer_attribute(Expansion_Model, x, y)
end

```

---

<div class="post-metadata">

### Author: ![fksayaci](https://avatars.discourse-cdn.com/v4/letter/f/b77776/32.png) [@fksayaci](https://discourse.julialang.org/u/fksayaci)
#### Post date: [January 19, 2022, 9:25pm UTC](https://discourse.julialang.org/t/how-to-give-a-parameter-list-to-gurobi/74878/5 "2022-01-19T21:25:57Z")

</div>

Thank you so much. It looks like you answered the question at the same time that I was typing what I found. Thank you again.
