【プログラム作成】DAアルゴリズムのプログラム実装
マッチング理論における「DAアルゴリズム」のプログラムを作成、実装を行った記事です。
実装対象であるDAアルゴリズムの説明
DAアルゴリズムは、マッチング理論内で「"安定性"と"耐戦略性"を持つマッチングアルゴリズム」として知られています。マッチングアルゴ
実装の全体像
実際にアルゴリズムを構築、実装した工程を、下記に示します。一般的なウォーターフォール方式で、開発規模が小さいこともあり、詳細設計やユニットテストはコーディング内で実施したようなイメージです。
要件定義
今回作成するDAアルゴリズムシミュレーターの全体像を作成します。
今回のコンセプトとして、学校と生徒のマッチングなので、入試も意識して、生徒の席次を出力するプログラムも合わせて作成対象としました。
簡易設計
シミュレーターの構造を設計します。今回の場合、生徒のランキングを作成する機能と、DAアルゴリズムを実行する機能がありますが、これらを2つの機能に分けて作成して、合計3種類の機能とするような設計にして、それぞれの機能に入れるファイルの形式や表の書き方などを決めました。
テストケース作成
テストで作成するテストケースを作成します。
「試験的に入力するデータ」と、「期待される出力データ」の両方を用意して、テスト実施時に使えるファイルにして出力します。
コーディング
プログラムをコーディングしていきます。プログラムのコーディングには、わざわざプレーンに書くのもめんどくさいのでCopilot AIを使いました。
テスト実施
テストケースそれぞれについて実行をして、問題なく出力がされているかどうかを確認します。
もし、期待する値と異なる結果を示している場合は、問題がある部分を特定して、微修正します。
文言の修正と実装
テストケースに対して問題なく動いたことを確認して、シミュレーターに使うデータや、説明の細かい文言を書いて、公開します。
ある意味、ここが一番長く、そしてしんどかったです。