にんべんきんべんに

@サンディエゴ

CALENDAR
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< March 2024 >>
IN THIS PAGE
RECENT COMMENT
  • テストの採点は、アメリカでは甘い減点式で、日本は厳しい加点式
    イ (03/04)
  • テストの採点は、アメリカでは甘い減点式で、日本は厳しい加点式
    匿名 (03/04)
  • アメリカでウォシュレットを取り付ける方法
    jenocky (01/16)
  • アメリカでウォシュレットを取り付ける方法
    Yuzo Takanashi (07/09)
  • 米系航空会社が、運航の効率化を図るため、羽田デトロイト便の運航休止を予定していたのだが、その開始が3日間前倒しで突然開始された上、その空港カウンターでの日本人への応対が悲惨だった話。アメリカでの交渉ごとは難しい。。
    イ (03/25)
  • 米系航空会社が、運航の効率化を図るため、羽田デトロイト便の運航休止を予定していたのだが、その開始が3日間前倒しで突然開始された上、その空港カウンターでの日本人への応対が悲惨だった話。アメリカでの交渉ごとは難しい。。
    Sば (03/25)
  • 米系航空会社が、運航の効率化を図るため、羽田デトロイト便の運航休止を予定していたのだが、その開始が3日間前倒しで突然開始された上、その空港カウンターでの日本人への応対が悲惨だった話。アメリカでの交渉ごとは難しい。。
    イ (03/24)
  • 米系航空会社が、運航の効率化を図るため、羽田デトロイト便の運航休止を予定していたのだが、その開始が3日間前倒しで突然開始された上、その空港カウンターでの日本人への応対が悲惨だった話。アメリカでの交渉ごとは難しい。。
    Sば (03/23)
  • 日本人ディベーターの英語ディベートに正しい英語を求めるべきなんか?
    イ (12/14)
  • 日本人ディベーターの英語ディベートに正しい英語を求めるべきなんか?
    Takenaka@NAFA顧問理事(おっさんOB) (12/14)
RECENT TRACKBACK
LINKS
ARCHIVES
PROFILE
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - |
エクセルのソルバーでIF文は使ってはいけない(なるたけ)
ということが算数の授業で出てきた。

ソルバーって素晴らしいツール。
変数のセルを指定して、目的のセルを最大化したり、
ある値に近づけたりすることができる。

現実的な話では
23 X + 17 Y = 29
31 X + 11 Y = 13
とか、面倒な連立方程式を解くことにも使える。

このとき、方程式はインプットする条件文として出てくるんだけど、
この条件文は何でも良いと言うわけじゃないんですな。

基本、線形な感じが推奨される。
最低でも座標空間で表現できる何かしらの曲線。

ここにIF文は、あんまりやっては行けないことだという話。
確かにその通りで、IF文使って実際に色々試してみると、変数の数が
少ないときは何とか答えが出るんだけど、変数の数が多くなってくると
正しい答えに行き着かない。

結局ソルバーがなんで解けるかっていうと、座標空間での表現ができるから
しらみつぶしでない方法でも効率的に答えを探せるという話なんだと。

なので、IF文で示されるものをいかに線形っぽく変換するか
というのが重要なわけ。授業ではその例の幾つかを挙げて
終了だったのだけど、ちょっとここで一般化してみたくなった。

ここでゴールは 「X >= 3 ⇒ Y <= 2」を線形的に表現すること。
X、Yともに10以下の【整数】としましょう。

このとき肝になってくるのが、Binary:0か1っていう変数


<メソッド1>
まず、 「X >= 4 ⇒ B = 0」みたいな、右側がbinaryのパターン

1.左から=を取り払う
 X > 3 ⇒ B = 0

2.左を>0の形式に直す
 X - 3 > 0 ⇒ B = 0

3.右を「B=1」か「1-B=1」にする
 X - 3 > 0 ⇒ 1 - B = 1

4.「>0」、「=1」を取っ払い、真ん中に「<=」を置く
 X - 3 <= 1 - B

5.このとき、左の最大値(あるいはそれより大きい数字)をMとする
 M = MAX (X-3) = 7

6.そのMは右側に掛けておく
 X - 3 <= 7(1 - B)

こたえ:
 X + 7B <= 10


<メソッド2>
次に「B = 0 ⇒ Y >= 4」みたいな、左側がbinaryのパターン

0.対偶を取る
 Y < 4 ⇒ B = 1

これでメソッド1になる。


<メソッド3>
最後に「X >= 3 ⇒ Y <= 2」みたいなbinary無しのパターン

−1.「B=1」をかまして既知のメソッド二つに分ける
 X >= 3 ⇒ B = 1 <メソッド1>
 B = 1 ⇒ Y <= 2 <メソッド2>

0.メソッド2は対偶を取る
 X >= 3 ⇒ B = 1 <メソッド1>
 Y > 2 ⇒ B = 0 <メソッド1>

これでメソッド1になる。このまま続けると

1.左から=を取り払う
 X > 2 ⇒ B = 1
 Y > 2 ⇒ B = 0

2.左を>0の形式に直す
 X - 2 > 0 ⇒ B = 1
 Y - 2 > 0 ⇒ B = 0

3.右を「B=1」か「1-B=1」にする
 X - 2 > 0 ⇒ B = 1
 Y - 2 > 0 ⇒ 1-B = 1

4.「>0」、「=1」を取っ払い、真ん中に「<=」を置く
 X - 2 <= B
 Y - 2 <= 1-B

5.このとき、左の最大値(あるいはそれより大きい数字)をMとする
 M1 = MAX(X-2) = 8
 M2 = MAX(Y-2) = 8

6.そのMは右側に掛けておく
 X - 2 <= 8B
 Y - 2 <= 8(1-B)

こたえ:
 X - 8B <= 2
 Y + 8B <= 10
| - | 10:32 | comments(0) | trackbacks(1) |
スポンサーサイト
| - | 10:32 | - | - |









トラックバック機能は終了しました。
★音速パソコン教室 Office2007講座3点セット+特典12個
■ 今日のお題: 音速パソコン教室 Office2007講座3点セット+特典12...
| 無知の知 | 2009/12/10 6:59 PM |
このページの先頭へ