1971 · 東京理科大学 · 経営工学 · KADAI 29

在庫管理シミュレーション

父が大学生だった1971年に、IBM 1130 というコンピュータで動かした FORTRAN のプログラム。印刷された紙だけが残っていたものを復元し、スマホで動くようにしました。

作成4I-3101 TERAMURA SEIJI 計算機IBM 1130 · 16K 言語FORTRAN IV
ラインプリンタで連続紙に印字されたFORTRANのプログラムリスト。PAGE 1、KADAI 29、ZAIKO-KANRI-SIMULATION-2、TERAMURA SEIJI の文字が見える
55年残っていたプログラムリスト。カードの束は残っておらず、この紙だけが手がかりでした。

1971年、プログラムはこう動いた

当時のコンピュータには画面がなく、結果は紙で返ってきました。各手順をタップすると、写真と説明が開きます。

紙に手で書くコーディング用紙に鉛筆で1行ずつ

専用のコーディング用紙に、鉛筆でプログラムを1行ずつ書きます。間違いがあると何時間も無駄になるので、紙の上で何度も確かめました。

パンチカードに打つ1行=1枚。カードの束がファイル
このプログラムの1行 CALL GAUSS(IX,5.,30.,V) を打ったカードを、穴の位置まで当時の規則どおりに描いた図です。

キーパンチという機械で、1行を1枚のカードに打ち込みます。文字は穴の位置で表されます。このプログラムは約130枚の束になり、この束が今でいうプログラムのファイルでした。

カードの束を読み込ませる計算機センターで順番待ち
IBM 1442 カード読み取り装置。上部にカードを入れる口があり、下部は赤い扉
IBM 1442 カード読み取り機。写真:Mike Ross(CC BY-SA 3.0)

束を計算機センターに持って行き、順番が来たら読み取り機にかけます。1分間に約300枚の速さです。束の先頭と最後には「ここからFORTRAN」「ここで実行」といった指示用のカードを付けておきます。

コンピュータが計算する画面はなく、終われば中身は消える
IBM 1130 の操作卓。キーボードと、ランプが並んだ表示パネル、タイプライター
IBM 1130 の操作卓。ランプで機械の状態はわかりますが、結果を表示する画面はありません。写真:Martin Skøtt(CC BY-SA 2.0)

読み込んだプログラムを機械語に変換(コンパイル)して、すぐに実行します。メモリは32KBしかなく、自分の仕事が終われば中身は消えて次の人の仕事が始まります。コンピュータの中に結果を残しておく場所はありませんでした。

結果は紙に印刷される毎分80行。紙が「画面」で「保存ファイル」
IBM 1132 ラインプリンタ。上部が青、下部が灰色の大きな箱型の装置
IBM 1132 プリンタ。写真:Matt Sharpe(CC BY-SA 2.0)

計算結果はプリンタで連続紙に印字されます。速さは1分間に80行。画面のない時代、この紙が今でいう「画面」であり「保存ファイル」でもありました。このプログラムも、1日分を計算するたびにその日の行を1行印字する作りになっています。

動かしてみる

ある店の商品1つについて、300日分の在庫の動きと費用を計算します。条件はそのままでも、変えて試してもかまいません。

何を計算しているの?在庫の持ちすぎと品切れのバランス

在庫を多く持てば保管費がかさみ、少なくすれば品切れが起きます。そのちょうどいいところを探すための計算です。

  • 毎日の注文数は、平均30個・ばらつき5個の乱数で決まります。
  • 4日ごとに在庫を調べ、届く予定の分も含めた在庫が発注点以下なら、補充点まで発注します。
  • 発注した品物は、8割の確率で2日後、2割の確率で翌日に届きます。
  • 品切れした分は翌日以降に持ち越して届けます。
  • 保管費・発注費・調査費・不足費を合計して総費用を出します。
条件を変える発注点・補充点・調査間隔・乱数の種など

はじめは元のプログラムと同じ条件です。数字を変えて印刷すると、総費用がどう変わるか試せます。

需要と費用の設定

結果は「印刷」して見る

当時のコンピュータには画面がなく、計算の結果はプリンタで紙に打ち出されて、はじめて読むことができました。下のボタンを押すと、IBM 1132 プリンタが1分間に80行の速さで結果を印字していく様子を、当時のまま再現します。全部で約4分かかります。

印刷結果

横にスクロールできます。赤い行は品切れが起きた日です。

もっと知る

1971年にこの計算をした意味高度成長の終わり、在庫を減らす時代へ

1971年は高度経済成長の終わりごろです。8月にはニクソン・ショックが起き、作れば売れる時代から、ムダな在庫を減らす時代へと移り始めていました。

これから企業が本気で向き合う課題だった

持ちすぎず、切らさない。在庫の量をどう決めるかは、2年後の石油危機を経て日本中の工場や店が取り組むテーマになっていきます。経営工学は、その答えを数字で出すための新しい学問でした。

数式だけでは解きにくい問題を、計算機で解いた

注文数も届く日数も毎日変わり、在庫は4日ごとにしか確認できない。こうした条件では手計算で最適な答えを出すのは困難です。乱数で仮想の300日を動かす「シミュレーション」は当時の最先端の方法で、高価なコンピュータがなければできませんでした。

世界の研究の最前線とつながっていた

参考文献には、在庫理論の出発点とされるアロー、ハリス、マーシャックの論文(1951年)が挙がっています。アローは翌1972年にノーベル経済学賞を受賞しました。

自動データプロセシングの到来で、報告書記録方式を使う産業が増大する傾向にある。
当時のレポート(29ページ)より

報告書記録方式とは、品物が出入りするたびに記録して在庫を常に把握するやり方です。この予測は、1980年代にコンビニのPOSレジで現実になりました。

IBM 1130 とは1965年発表、大学に広まった小型機
博物館に展示されたIBM 1130一式。赤と灰色の机型の本体を中心に、カード読み取り機やディスク装置が並んでいる
IBM 1130 の一式(シュトゥットガルトのコンピュータ博物館)。写真:Wolfgang Stief(CC BY 2.0)

IBM が1965年に発表した、科学技術計算向けの小型コンピュータです。月695ドルから借りられる「IBMで初めて月1,000ドルを切るコンピュータ」として売り出され、大学や研究所に広く導入されました。生産台数は約1万台と推定されています。

この大学の構成
メモリ16K語(32KB)、ディスク、カード読み取り機、1132プリンタ、プロッタ、タイプライター
1語の大きさ
16ビット
保存装置
取り外し式ディスク1枚で約1MB。大勢で共用
小数の計算
専用の回路はなく、ソフトで処理
今のスマホと比べると同じ計算の速さを、この端末で測ります
この端末でこの課題を計算した時間(実測) …

IBM 1130 では、計算だけで十数秒、プリンタの印字まで含めると7分前後かかったと考えられます。

IBM 1130(この大学の構成)今のスマホ(一例)
メモリ32KB(16K語)8GB約26万倍
保存容量約1MB(ディスク1枚)256GB約26万倍
計算の速さ整数の足し算が1秒に約12万回1秒に数百億回以上
この課題の計算十数秒(推定)…
結果の表示プリンタで毎分80行、約4分一瞬
プログラムの保存パンチカード約130枚の束ファイルにして約4KB
価格約4.1万ドル(ディスク付き、1965年)。1ドル360円で約1,490万円十数万円
大きさ机ほどの装置が数台手のひら

スマホの欄は一般的な機種の目安です。IBM 1130 の計算時間は仕様からの推定です。

どうやって復元したか写真から書き起こし、乱数まで再現
  1. 父が保管していたプログラムリストを、スマホで撮影しました。
  2. 写真から、AI(Claude)と一緒に FORTRAN のソースを1行ずつ書き起こしました。
  3. プログラムが呼び出す IBM の乱数ルーチン RANDU と GAUSS を、説明書の通りに再現しました。16ビットの計算機で数字が桁あふれして折り返す動きまで同じにしています。
  4. 現代の FORTRAN コンパイラ(gfortran)にかけたところ、プログラム本体を書き換えずに最後まで動きました。
  5. 計算を JavaScript に移し、gfortran の出力331行とすべて一致することを確かめて、このページにしました。
  6. 当時の実行結果のページが見つかれば、1971年の IBM 1130 と同じ答えが出るかを照合する予定です。
当時の参考文献父のレポートに挙げられていた4点
  • G. Hadley, T. M. Whitin Analysis of Inventory Systems, Prentice-Hall, 1963在庫理論の定番の教科書
  • K. J. Arrow, T. Harris, J. Marschak "Optimal Inventory Policy", Econometrica 19, 1951, pp. 250–272計量経済学会のページ・在庫理論の出発点とされる論文
  • K. J. Arrow, S. Karlin, H. Scarf Studies in the Mathematical Theory of Inventory and Production, Stanford University Press, 1958
  • T. M. Whitin The Theory of Inventory Management, Princeton University Press, 1953
元のプログラム(FORTRAN IV)復元したソース全文
本物の IBM 1130 環境で試す方へSIMH 用のジョブデッキと照合用の出力

SIMH は、昔のコンピュータを今のパソコンの中でまるごと再現するソフトです。IBM 1130 も、当時の管理プログラムや FORTRAN コンパイラごと動かせます。このページの計算は今の小数計算で再現しているため、本物の 1130 の計算方式で同じ答えになるかは、SIMH で確かめるのが一番確実です。

写真について撮影者とライセンス

IBM 1130 の写真は Wikimedia Commons から、各ライセンスに従って縮小・切り抜きして使っています。