「KKT」を含む日記 RSS

はてなキーワード: KKTとは

2025-02-04

線型計画法の例題

ある会社が2つの製品(XとY)を2台の機械(AとB)を使って製造しています。Xの1単位生産するには、機械Aで50分、機械Bで30分の処理時間必要です。Yの1単位生産するには、機械Aで24分、機械Bで33分の処理時間必要です。

今週の始めの時点で、在庫にはX製品が30単位、Y製品が90単位あります。今週の機械Aの利用可能な処理時間は40時間機械Bは35時間予測されています

今週のX製品需要は75単位、Y製品需要は95単位予測されています会社方針は、週末時点でのXとY製品在庫単位数の合計を最大化することです。

問題

1: 今週、各製品をどれだけ製造するかを決定する問題線形計画問題として定式化してください。

2: この線形計画問題をglpkを用いて解いてください。

回答

問題1: 線形計画問題の定式化

決定変数:

x: 今週製造するX製品単位

y: 今週製造するY製品単位

目的関数:

最大化 Z = (x + 30 - 75) + (y + 90 - 95) = x + y - 50

※週末時点での在庫単位数の合計を最大化

制約条件:

1. 機械Aの処理時間制約: 50x + 24y ≤ 2400 (40時間 = 2400分)

2. 機械Bの処理時間制約: 30x + 33y ≤ 2100 (35時間 = 2100分)

3. X製品需要制約: x ≥ 45 (需要75 - 在庫30 = 45)

4. Y製品需要制約: y ≥ 5 (需要95 - 在庫90 = 5)

5. 非負制約: x ≥ 0, y ≥ 0

問題2: GLPKを用いた解法

GLPKで解くために、以下のようなモデルファイル(例:model.mod)を作成します:

/* 決定変数 */
var x >= 45;
var y >= 5;

/* 目的関数 */
maximize Z: x + y - 50;

/* 制約条件 */
s.t. machine_A: 50*x + 24*y <= 2400;
s.t. machine_B: 30*x + 33*y <= 2100;

end;

このモデルファイル使用して、コマンドラインで以下のコマンドを実行します:

glpsol --model model.mod -o solution.txt

GLPKが問題を解いた結果は以下です。

Problem:    model
Rows:       3
Columns:    2
Non-zeros:  6
Status:     OPTIMAL
Objective:  Z = 1.25 (MAXimum)

   No.   Row name   St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 Z            B          51.25                             
     2 machine_A    NU          2400                        2400     0.0416667 
     3 machine_B    B        1556.25                        2100 

   No. Column name  St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 x            NL            45            45                    -1.08333 
     2 y            B           6.25             5               

Karush-Kuhn-Tucker optimality conditions:

KKT.PE: max.abs.err = 4.55e-13 on row 2
        max.rel.err = 9.47e-17 on row 2
        High quality

KKT.PB: max.abs.err = 0.00e+00 on row 0
        max.rel.err = 0.00e+00 on row 0
        High quality

KKT.DE: max.abs.err = 0.00e+00 on column 0
        max.rel.err = 0.00e+00 on column 0
        High quality

KKT.DB: max.abs.err = 0.00e+00 on row 0
        max.rel.err = 0.00e+00 on row 0
        High quality

End of output

以下のような最適解が得られます

x = 45 (X製品生産量)

y = 6.25 (Y製品生産量)

Z = 1.25 (週末時点での余剰在庫数)

この結果から会社は今週、X製品を45単位、Y製品を6.25単位製造するべきであることがわかります。これにより、週末時点での余剰在庫数は1.25単位となり、最大化されます

注意:実際の生産では、Y製品生産量を6単位に切り下げるか7単位に切り上げる必要があるかもしれません。

2016-04-22

KKT熊本県民テレビはどう謝罪するべきだったのか

http://www.kkt.jp/information/info_20160421.html

 21日放送の「ミヤネ屋」の中で、熊本県民テレビ(KKT)の男性アナウンサーが、益城町避難所焼き芋炊き出しをしていたボランティア男性インタビューした際「焼き芋行列にいた少女を雨の中に追いやり、 ずぶ濡れにさせた」という指摘を視聴者の方からいただきました。

 少女2人は焼き芋炊き出しを手伝っており、 列に並んではいませんでした。インタビューが始まったので自発的に退いたものです。 指摘を受けてKKTは22日、アナウンサーを再び益城町避難所派遣し、 少女とその親族に対して改めて一連の経緯を説明したところ、少女2人には「テレビ局にどかされた」という自覚はありませんでした。

 以上のことから、KKTではアナウンサー焼き芋炊き出し邪魔したり、 無理に雨の中に出したりした事実はなかったと判断していますが、 この映像視聴者の方々に不快な思いをさせたとすれば、お詫び申し上げます。 KKTは、今後も被災地の方々に寄り添う報道に努めてまいります

こんな感じでどうだろう。

 21日放送の「ミヤネ屋」の中で、熊本県民テレビ(KKT)の男性アナウンサーが、益城町避難所焼き芋炊き出しをしていたボランティア男性インタビューした際「焼き芋行列にいた少女を雨の中に追いやり、 ずぶ濡れにさせた」という指摘を視聴者の方からいただきました。

 指摘を受けてKKTは22日、アウンサーを再び益城町避難所派遣し、 当事者少女らとそのご親族に対して一連の経緯を説明し、お話を伺いました。少女らによれば、当時は焼き芋炊き出しを手伝っていて、列には並んでいなかったとのことでした。また、「テレビ局にどかされた」という自覚はなく、インタビューが始まったので自発的に退いていただいたとのことでした。

 以上のことから、KKTではアナウンサーが無理に雨の中に追いやったという事実はなかったと判断しておりますが、この映像視聴者の方々、並びに被災者の方々に不快な思いをさせたことについてはお詫び申し上げます

 KKTは、今後も被災地の方々に寄り添う報道に努めてまいります

最初段落そのままでいい。言いたいことを先に書かずに落ち着いて話は時系列に並べる。当事者からいたことはあくまで伝聞の形にする。「炊き出し邪魔した」のくだりはいらない。当事者も含めて被災者の方々にもお詫び申し上げる。お詫びに仮定を入れない。寄り添う報道は強調したいので独立させる。

 
ログイン ユーザー登録
ようこそ ゲスト さん