組み込みエンジニアの現場力養成演習ドリル(20)
フォークランド島を爆撃せよ! ――大西洋を横断した壮大な「バケツ・リレー」(2/4 ページ)
スタンリー空港を爆撃せよ
ブラック・バック作戦は、大西洋の赤道近くにある英国領、アセンション島のワイドアウェイク基地から、爆撃機を飛ばして6000km離れたフォークランド諸島のスタンレー空港を空爆する壮大な計画です(図1参照)。雰囲気は、「砂漠の横断パズル」に似ていますが、さらに長距離で複雑です。
この作戦では、上記の砂漠横断パズルの「探検家」役がイギリスの爆撃機、アブロ・バルカンです。航続距離が4000km程度なので、給油機に改造したホーカー・シドレー・ヴィクター(これが上記のパズルの「ポーター」役)による空中給油が必要となり、さらに、ヴィクターの航続距離も4000km程度なので、給油機にも空中給油し……と、何重にもネストする複雑な「アルゴリズム」になります。ソフトウェア開発技術者として、この「要求仕様」をどのように解決すれば現実的でしょうか? 以下の問題をもとに考えてください。
問題(制限時間3時間)
赤道直下の英国領にあるワイドアウェイク基地から、6000km先のフォークランド諸島にあるスタンレー空港を空爆したい。以下の条件の場合、爆撃機と給油機をどのように組み合わせるのが良いかのアルゴリズムをパズルではなく、現実的に考えてください。アルゴリズムの考え方の違いにより、得点が劇的に異なりますので、要注意。
①英国の威信をかけた爆撃なので、スタンレー空港を壊滅させることより、爆弾を1個でも落とすことが重要。
②爆撃機(バルカン)は退役寸前の旧式機で、航続距離が4000kmと仮定する。通常爆弾を9500kg搭載できるが、爆弾を減らしても、航続距離は伸びないとする。
③給油機(ヴィクター)も、同じく退役寸前の旧式機で、航続距離が4000kmしかないと仮定する。給油用の燃料を50m3搭載できるとする。50m3の給油を受ければ、爆撃機、給油機とも飛行距離が4000km伸びる(半分の25m3なら2000km伸びる)。
④給油機(ヴィクター)は、爆撃機(バルカン)と給油機(ヴィクター)の両方に給油できるが、バルカンは他の機に給油できない。
⑤給油機は、給油用の燃料を自分用に使えないとする。
⑥爆撃に要する時間はゼロとする。
⑦燃料切れによる不時着機を出してはならない。
解答その1:パズルとしての答え
給油機の給油の給油……と何段にもネストする複雑な要求仕様をどうすれば単純化できるか? これが、ソフトウェア開発技術者に求められる重要な能力です。以下のように段階的に考えましょう。
(1)片道が2000km以下の場合
目的地までの片道が2000km以内なら、図2のように、給油なしで爆撃が可能です。
(2)片道が2000~4000kmの場合
次に、目的地までの片道が2000kmから4000km以内なら、図3のように、爆撃機の「行き」と「帰り」で給油機が1機ずつ必要になります(給油機1と給油機2は同じでないとすると、爆撃機も含めて全部で3機)。この給油パターンは非常に単純で、混乱する要素は少ないと思います。
この図から、以下のように、いろいろなことが分かります。
(a)グラフのX軸(距離)に接する「爆撃機」と「給油機」の接点の数の合計の半分が、爆撃に必要な機数になります(上記のグラフでは6つの接点がありますので、3機で爆撃が可能です)。
(b)「行きのパターン」と「帰りのパターン」は、「爆撃」と半分の距離(この場合、4000km)を結ぶ線で線対称になっています。そのため、「行き」だけ考えれば、「帰り」は自動的に求められます。
(c)爆撃機に給油するパターンは以下の2つしかありません(給油機への給油も同様です)。この給油により、爆撃機の飛行距離が2000km伸びます(4000km伸びる場合がありますが、単純化のため、まずは2000kmとします)。
(d)片道が2000km以下の爆撃パターン(図5.1)を2000km伸ばして4000kmにするには、図5.1の①に図4の「行きの給油」を足し、図5.1の②に、図4の「帰りの給油」を足せば、可能になります(図5.2)。
(3)片道が4000~6000kmの場合
さらに2000km伸ばして、6000kmにするのが、今回のスタンレー空港の爆撃に必要な給油パターンになります。上記の「基本の2パターン」を適用すると、図5.2の①②⑤の3カ所に、それぞれ図4の「行きの給油」を、また、図5.2の③④⑥の3カ所にも、それぞれ図4の「帰りの給油」を足せば可能になります。
この「1本の矢印に3本追加する」方式だと、給油機を使い回ししない場合、必要な総機数は9機になります(爆撃機1機、給油機8機)。ただし、この方法は、「50m3全部給油してもらうと、飛行距離が4000km伸びる」ことを考慮しておらず、燃料に無駄が生じますので、十分条件であり、最適解ではありません。しかし、非常に単純で分かりやすいため、現実的なアルゴリズムとしては「アリ」だと思います。
最適解は以下の通りです。まず、図6に、「行き」のパターンを、図7に「帰り」のパターンを、両方重ねたパターンを図8に示します。
「1本の矢印に3本追加する」方式だと9機必要でしたが、図6、図7を見ると、全部で7機(爆撃機1、給油機6)で可能になります。これは、「50m3全部給油してもらうと、飛行距離が4000km伸びる」ことを考慮したもので、図8では、爆撃機が、「4000〜6000km」だけでなく、「0〜4000km」と「8000〜1万2000km」も、給油なしで飛んでいます。これが、「1本の矢印に3本追加する」方式より2機少ない理由です。
図8を見て、こう考える人がいるでしょう。「給油3と給油4は、図9のように重ねられ、給油機5と給油4を省略できる。なので、空爆に必要なのは1機少ない6機でよい」。パズルならこれが正解でしょうが、実際の作戦で、帰還する給油機と出撃する給油機の両方に2000km分ずつの燃料を給油すること(図9の「給油3」)は、3機の同期を取らねばならず、非常に複雑で面倒です。いつも書いていますが、「複雑で面倒」はバグの素となります。
ソフトウェアのライフサイクル(ソフトウェアの一生)では、他人のプログラムを読んで理解せねばならない「保守フェーズ」が全体の3分の2を越えることを考えると、「効率は良いが、非常に複雑なアルゴリズム」を採用するより、「少しぐらい効率は悪くても、誰でも理解できるアルゴリズム」が勝ります。
Copyright © ITmedia, Inc. All Rights Reserved.
組み込みエンジニアの現場力養成ドリル
このコラムでは、組み込みエンジニアが日々の開発で実際に遭遇する「小さなトラブルを」取り上げ、演習形式で解説します。
この記事の著者
新着ホワイトペーパー PR
-
製品資料
[株式会社 Green AI] AIで脱炭素計画を最適化、初年度からエネルギーコストとCO2を削減する方法 -
市場調査・トレンド
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の普及戦略が公表 政府が目指すコスト・導入量のロードマップを解説 -
市場調査・トレンド
[スマートジャパン編集部] 導入が加速する再エネ・系統向け蓄電システム コスト・収益性の現状分析 -
技術文書・技術解説
[スマートジャパン編集部] いまさら聞けない「ペロブスカイト太陽電池」の基礎知識と政策動向 -
技術文書・技術解説
[スマートジャパン編集部] 「ペロブスカイト太陽電池」の開発動向、日本の投資戦略やコスト目標の見通しは?
関連記事
こんなメディアも見られています
TechFactoryに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
特集
- マテリアルズ・インフォマティクスの動向調査
- 研究・開発職のデジタル活用調査
- 設計・解析業務におけるAI活用
- 3Dプリンタ利用動向調査
- CAD利用動向調査
- つながる工場の現状と課題
- 製造業におけるAI開発および活用の実態
- 設計・製造現場における品質管理
ホワイトペーパーランキング PR
-
1
EE Times Japan×EDN Japan 統合電子版:フィジカルAIが生み出す新たな「設計思想」――電子版2026年8月号
-
2
半導体装置メーカー 業績まとめ【2027年3月期第1四半期】
-
3
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part4)
-
4
一時は時価総額トヨタ超え キオクシア2026年度の動向
-
5
微細配線間の絶縁劣化をどう捉える? 先端パッケージ評価の最前線
-
6
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part1)
-
7
EE Times Japan×EDN Japan 統合電子版:2026年上半期の半導体業界を振り返る――電子版2026年7月号
-
8
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part3)
-
9
CADツールの見直しは本当に必要? 切り替えの理由と効果を7つの質問で検証
-
10
新入社員に読んで欲しい鉄鋼材料の基礎知識まとめ(Part2)
TechFactory SNS
インフォメーション
注目情報をチェック
TechFactoryをフォロー