2012-01-05 12 views
0

と私は宿題のためのRを使用して加重頂点被覆問題のインスタンスを解決しようとしていると私は右のそれを得るように見えることはできません。私はROIパッケージを(ちょうど同様linprogを使用することができます)使用しています。加重頂点カバーRにおけるROIパッケージ

インスタンスは次のようになります。

Edges: 
A-B, A-C, A-G, 
B-C, B-D, B-E, B-G, 
C-E, C-F, 
D-F, 
E-G, 
F-H, F-I, 
G-H 

Weights: 
A - 10, 
B - 7, 
C - 4, 
D - 7, 
E - 12, 
F - 25, 
G - 27, 
H - 3, 
I - 9 

私のコードは次のとおりです。

#         a b c d e f g h i 
    constraints <- L_constraint(matrix(c(1, 1, 0, 0, 0, 0, 0, 0, 0, # a b 
             1, 0, 1, 0, 0, 0, 0, 0, 0, # a c 
             1, 0, 0, 0, 0, 0, 1, 0, 0, # a g 
             0, 1, 1, 0, 0, 0, 0, 0, 0, # b c 
             0, 1, 0, 1, 0, 0, 0, 0, 0, # b d 
             0, 1, 0, 0, 1, 0, 0, 0, 0, # b e 
             0, 1, 0, 0, 0, 0, 1, 0, 0, # b g 
             0, 0, 1, 0, 1, 0, 0, 0, 0, # c e 
             0, 0, 1, 0, 0, 1, 0, 0, 0, # c f 
             0, 0, 0, 1, 0, 1, 0, 0, 0, # d f 
             0, 0, 0, 0, 1, 0, 1, 0, 0, # e g 
             0, 0, 0, 0, 0, 1, 0, 1, 0, # f h 
             0, 0, 0, 0, 0, 1, 0, 0, 1, # f i 
             0, 0, 0, 0, 0, 0, 1, 1, 0, # g h 
             # end of u + v >= 1 
             1, 0, 0, 0, 0, 0, 0, 0, 0, 
             0, 1, 0, 0, 0, 0, 0, 0, 0, 
             0, 0, 1, 0, 0, 0, 0, 0, 0, 
             0, 0, 0, 1, 0, 0, 0, 0, 0, 
             0, 0, 0, 0, 1, 0, 0, 0, 0, 
             0, 0, 0, 0, 0, 1, 0, 0, 0, 
             0, 0, 0, 0, 0, 0, 1, 0, 0, 
             0, 0, 0, 0, 0, 0, 0, 1, 0, 
             0, 0, 0, 0, 0, 0, 0, 0, 1, 
             # end of u >= 0 
             1, 0, 0, 0, 0, 0, 0, 0, 0, 
             0, 1, 0, 0, 0, 0, 0, 0, 0, 
             0, 0, 1, 0, 0, 0, 0, 0, 0, 
             0, 0, 0, 1, 0, 0, 0, 0, 0, 
             0, 0, 0, 0, 1, 0, 0, 0, 0, 
             0, 0, 0, 0, 0, 1, 0, 0, 0, 
             0, 0, 0, 0, 0, 0, 1, 0, 0, 
             0, 0, 0, 0, 0, 0, 0, 1, 0, 
             0, 0, 0, 0, 0, 0, 0, 0, 1), 
             # end of u <= 1 
             ncol = 9), # matrix 
           dir = c(rep(">=", 14+9), rep("<=", 9)), 
           rhs = c(rep(1, 14), rep(0, 9), rep(1, 9))) # L_constraint 

    objective <- L_objective(c(10, 7, 4, 7, 12, 25, 27, 3, 9)) 

    problem <- OP(objective, constraints, rep("C", 9), 
        maximum = FALSE) 

    solution <- ROI_solve(problem, solver = "glpk") 

結果は私が間違ってやっているのか分からないが、それは全く同じようにしてもよいNo solution found.です何かが明らかである。それのまわりで私の頭を取得できません - 解決策は常に存在している必要があり、それはすべての頂点をとる場合でも、(。。私がeすべての変数がある> = 0.5)。

重要なのは、リポジトリからRを実行しているArch Linux(バージョン2.14)で、install.packages("...")でパッケージをインストールしたことです。

ありがとうございます!

答えて

0

オーケーは、それを解決しました。問題は、私がbyrows = TRUEをマトリックス定義に追加しなかったことでした。また、私はnrow = ...ncol = 9を変更しました。私は予想通りどうやらmatrix()機能が動作しませんでした。