Julia에서 제약 조건 값 또는 JuMP 모델의 결과를 인쇄하는 방법

Vondoe79

Julia v1.4.1을 사용하고 있으며 https://www.juliaopt.org/JuMP.jl/stable/solutions/#JuMP 에있는 문서의 지침에 따라 아래 모델의 제약 조건 값을 인쇄 / 액세스하려고했습니다. .value 이지만 계속 오류가 발생합니다. 이 작업에 도움을 주셔서 대단히 감사합니다.

미리 감사드립니다.

using JuMP, Gurobi

## Define model Object & Parameters:----------#
m = Model(optimizer_with_attributes(Gurobi.Optimizer, "FeasibilityTol"=>1e-6, "MIPGap"=>3e-4, "IntFeasTol"=>1e-9, "TimeLimit"=>18000, "IterationLimit"=>500))

V = 5

dist =
[999    8   4   9   9
8   999 6   7   10
4   6   999 5   6
9   7   5   999 4
9   10  6   4   999]

cost = 
[999    58  59  55  56
57  999 54  60  54
59  59  999 57  57
58  56  56  999 60
55  58  54  57  999]

death =
[9  1   1   1   1
1   9   1   1   1
1   1   9   1   1
1   1   1   9   1
1   1   1   1   9]

## define Variables:------------#
@variable(m, x[i=1:V,j=1:V], Bin) #decision binary variable
@variable(m, 0.0<=Q<=1.0) #mini_max variable

#3 Assign weights:________________________________#
w = Pair{Tuple{Int64,Int64},Float64}[]
for i=1:V, j=1:V
        push!( w ,  (i,j) =>  i != j ? 0.3 : 0.7)
end

## define Objective function:---------------#
@objective(m, Min, Q) #variable for the min_max weighted percentage deviation from the target values for the goals.

### MOLP/MOMP/Goal/target:________________________________#
for (key, value) in w
    @constraints(m, begin
    (value*(sum(dist[i,j]*x[i,j] for i=1:V, j=1:V )-29)/29) <= Q
    (value*(sum(cost[i,j]*x[i,j] for i=1:V, j=1:V )-277)/277) <= Q
    (value*(sum(death[i,j]*x[i,j] for i=1:V, j=1:V )-5)/5) <= Q
    end)
end

##printing model results;
print(m)
status = JuMP.optimize!(m)
println("Objective value: ------> ", JuMP.objective_value(m))

다음은 제약 조건 및 관련 오류 메시지의 값을 인쇄하려는 여러 가지 방법입니다.

julia> JuMP.value(DIST)
ERROR: `JuMP.value` is not defined for collections of JuMP types. Use Julia's broadcast syntax instead: `JuMP.value.(x)`.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] value(::Array{VariableRef,1}) at C:\Users\Doe67\.julia\packages\JuMP\MnJQc\src\variables.jl:962
 [3] top-level scope at REPL[37]:1

julia> JuMP.value.(DIST)
ERROR: OptimizeNotCalled()
Stacktrace:
 [1] _moi_get_result(::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}, ::MathOptInterface.VariablePrimal, ::Vararg{Any,N} where N) at C:\Users\Doe67\.julia\packages\JuMP\MnJQc\src\JuMP.jl:811
 [2] get(::Model, ::MathOptInterface.VariablePrimal, ::VariableRef) at C:\Users\Doe67\.julia\packages\JuMP\MnJQc\src\JuMP.jl:843
 [3] value(::VariableRef; result::Int64) at C:\Users\Doe67\.julia\packages\JuMP\MnJQc\src\variables.jl:767
 [4] value at C:\Users\Doe679\.julia\packages\JuMP\MnJQc\src\variables.jl:767 [inlined]
 [5] _broadcast_getindex_evalf at .\broadcast.jl:631 [inlined]
 [6] _broadcast_getindex at .\broadcast.jl:604 [inlined]
 [7] getindex at .\broadcast.jl:564 [inlined]
 [8] macro expansion at .\broadcast.jl:910 [inlined]
 [9] macro expansion at .\simdloop.jl:77 [inlined]
 [10] copyto! at .\broadcast.jl:909 [inlined]
 [11] copyto! at .\broadcast.jl:864 [inlined]
 [12] copy at .\broadcast.jl:840 [inlined]
 [13] materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(value),Tuple{Array{VariableRef,1}}}) at .\broadcast.jl:820
 [14] top-level scope at REPL[38]:1

julia> value(DIST)
ERROR: `JuMP.value` is not defined for collections of JuMP types. Use Julia's broadcast syntax instead: `JuMP.value.(x)`.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] value(::Array{VariableRef,1}) at C:\Users\Doe67\.julia\packages\JuMP\MnJQc\src\variables.jl:962
 [3] top-level scope at REPL[39]:1

Vondoe79

나는이 정보를 향후 유사한 필요 및 / 또는 문제가있을 수있는 모든 사람과 공유하고 싶었습니다. @blegat와 @ miles.lubin이 -https : //discourse.julialang.org/t/how-to-print-the-values-of-constraints/40040/11에서 제공 한 지침은이 문제를 해결하는 데 매우 도움이되었습니다. . 아래 수정 사항을 참조하십시오. 감사

### Constraints MOLP/MOMP/Goal/target:________________________________#
f(i, j) = i != j ? 0.3 : 0.7

DIST = @constraint(m, (sum(f(i,j)*dist[i,j]*x[i,j] for i=1:V, j=1:V) - 29)/29 <= Q)
COST = @constraint(m, (sum(f(i,j)*cost[i,j]*x[i,j] for i=1:V, j=1:V) - 277)/277 <= Q)
DEATH = @constraint(m, (sum(f(i,j)*death[i,j]*x[i,j] for i=1:V, j=1:V) - 2)/2 <= Q)

##printing model results:________________________________#
print(m)
status = JuMP.optimize!(m)
println("Objective value: ---> ", JuMP.objective_value(m))
println("Distance goal_target constraint: ---> ", JuMP.value(DIST))
println("Cost goal_target constraint: ---> ", JuMP.value(COST))
println("Expected Death goal_target constraint: ---> ", JuMP.value(DEATH))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

인덱스 값에 조건부 JuMP 표현식을 정의하는 방법

분류에서Dev

"THEN"에서 "IF"조건의 소스 코드를 인쇄하는 방법

분류에서Dev

GAE ndb에서 고유 제약 조건을 모델링하는 방법

분류에서Dev

Pivot Runner : 새 모델에 필요한 제약 조건과 일치하는 기존 제약 조건 강제 삭제

분류에서Dev

조건에 따라 최소값과 최대 값을 인쇄하는 방법-dplyR

분류에서Dev

Ortools에서 제약 조건을 정의하여 고유 값의 제한을 설정하는 방법

분류에서Dev

SCIP C ++ 인터페이스에서 MILP의 제약 조건 행렬에서 계수 값을 얻는 방법

분류에서Dev

MATLAB에서 제약 조건 정의 함수에 인수를 전달하는 방법은 무엇입니까?

분류에서Dev

표모 모델에서 숫자로 제약 조건을 조회하는 방법은 무엇입니까?

분류에서Dev

jQuery : 조건이 작동하지만 모든 if 조건에서 결과를 확인하는 방법

분류에서Dev

var bottom 제약 조건에 승수를 적용하는 방법

분류에서Dev

상속 후 추상 모델의 모델 속성에 대한 고유 제약 조건을 제거하는 방법은 무엇입니까?

분류에서Dev

postgreSQL-조인 모델 결과에 대한 조건을 갖는 방법

분류에서Dev

jQuery에서 익명 함수의 여러 조건 또는 결과를 쿼리하는 방법

분류에서Dev

Julia (JuMP) : 여러 조건부 값이있는 표시기 제약 (부울 표현식이 가능합니까?)

분류에서Dev

시퀀스 및 맵과 관련된 제약 조건에 대한 모델을 얻기 위해 Z3를 사용하는 방법이 있습니까?

분류에서Dev

큰 문제에 대해 펄프에서 특정 제약 조건을 인쇄하는 방법

분류에서Dev

한 번에 여러 조건의 결과를 얻는 방법

분류에서Dev

Spark Scala의 조건에 따라 결과를 얻는 방법

분류에서Dev

제약 조건이 실제로 SQL Server에서 CHECK를 사용하는지 확인하는 방법

분류에서Dev

다른 제약 조건에서 참조하는 모든 제약 조건 찾기

분류에서Dev

Swift에서 "UIAlertController의 ActionSheet에 충돌 제약 조건이 있습니다"오류를 수정하는 방법

분류에서Dev

제약 조건을 사용하여 서로에 대해 두 개의 뷰를 추가하는 방법

분류에서Dev

Oracle에서 HAVING과 AND를 하나의 조건으로 결합하는 방법

분류에서Dev

모든 null 값 또는 모든 고유 값이있는 고유 제약 조건

분류에서Dev

PostgreSQL에서 제약 조건 정의를 변경하는 방법은 무엇입니까?

분류에서Dev

ConstraintLayout에서 제약 조건 경계와 함께 TextView를 회전하는 방법

분류에서Dev

SQLite에서 'UNIQUE 제약 조건 실패'예외를 처리하는 방법

분류에서Dev

MDX-MIN 집계에서 0 값을 건너 뛰는 방법과 결과의 일부를 제외하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    인덱스 값에 조건부 JuMP 표현식을 정의하는 방법

  2. 2

    "THEN"에서 "IF"조건의 소스 코드를 인쇄하는 방법

  3. 3

    GAE ndb에서 고유 제약 조건을 모델링하는 방법

  4. 4

    Pivot Runner : 새 모델에 필요한 제약 조건과 일치하는 기존 제약 조건 강제 삭제

  5. 5

    조건에 따라 최소값과 최대 값을 인쇄하는 방법-dplyR

  6. 6

    Ortools에서 제약 조건을 정의하여 고유 값의 제한을 설정하는 방법

  7. 7

    SCIP C ++ 인터페이스에서 MILP의 제약 조건 행렬에서 계수 값을 얻는 방법

  8. 8

    MATLAB에서 제약 조건 정의 함수에 인수를 전달하는 방법은 무엇입니까?

  9. 9

    표모 모델에서 숫자로 제약 조건을 조회하는 방법은 무엇입니까?

  10. 10

    jQuery : 조건이 작동하지만 모든 if 조건에서 결과를 확인하는 방법

  11. 11

    var bottom 제약 조건에 승수를 적용하는 방법

  12. 12

    상속 후 추상 모델의 모델 속성에 대한 고유 제약 조건을 제거하는 방법은 무엇입니까?

  13. 13

    postgreSQL-조인 모델 결과에 대한 조건을 갖는 방법

  14. 14

    jQuery에서 익명 함수의 여러 조건 또는 결과를 쿼리하는 방법

  15. 15

    Julia (JuMP) : 여러 조건부 값이있는 표시기 제약 (부울 표현식이 가능합니까?)

  16. 16

    시퀀스 및 맵과 관련된 제약 조건에 대한 모델을 얻기 위해 Z3를 사용하는 방법이 있습니까?

  17. 17

    큰 문제에 대해 펄프에서 특정 제약 조건을 인쇄하는 방법

  18. 18

    한 번에 여러 조건의 결과를 얻는 방법

  19. 19

    Spark Scala의 조건에 따라 결과를 얻는 방법

  20. 20

    제약 조건이 실제로 SQL Server에서 CHECK를 사용하는지 확인하는 방법

  21. 21

    다른 제약 조건에서 참조하는 모든 제약 조건 찾기

  22. 22

    Swift에서 "UIAlertController의 ActionSheet에 충돌 제약 조건이 있습니다"오류를 수정하는 방법

  23. 23

    제약 조건을 사용하여 서로에 대해 두 개의 뷰를 추가하는 방법

  24. 24

    Oracle에서 HAVING과 AND를 하나의 조건으로 결합하는 방법

  25. 25

    모든 null 값 또는 모든 고유 값이있는 고유 제약 조건

  26. 26

    PostgreSQL에서 제약 조건 정의를 변경하는 방법은 무엇입니까?

  27. 27

    ConstraintLayout에서 제약 조건 경계와 함께 TextView를 회전하는 방법

  28. 28

    SQLite에서 'UNIQUE 제약 조건 실패'예외를 처리하는 방법

  29. 29

    MDX-MIN 집계에서 0 값을 건너 뛰는 방법과 결과의 일부를 제외하는 방법은 무엇입니까?

뜨겁다태그

보관