Skip to content

YukiThornton/kt-grouper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kt-grouper: group making tool

グループ分けを行うツールです リクエストと過去の組み合わせを考慮してグループ分けを行います

使い方

inputディレクトリに入力値(「グループ分けで必ず実現する仕様」と「可能な限り実現する要望」)を保存した状態で GrouperApplication.kt のmain関数を実行すると、outputディレクトリに出力値であるグループのリストとそれぞれのグループに対するスコアが生成されます。

スコアは「可能な限り実現する要望」をどれくらい実現できているかを示すもので、スコアの合計値が一番高いものが最終的な出力値となります。

入力値、出力値はそれぞれinput, outputディレクトリ内のファイルを参考にしてください

  • 入力値:グループ分けで必ず実現する仕様

    • input/members.csv: グループ分けしたいメンバーのリスト
      • 各行先頭のメンバーをグループ分けの対象にします (2列目以降は無視されます)
    • input/group-count.csv: 期待するグループの数
  • 入力値:可能な限り実現する要望

    • input/group-request.csv: あるメンバーと同じグループに入りたいという要望 (必ずしも実現されるわけではない)
      • 各行先頭のメンバーが、2人目以降のメンバーと同じグループに入ることを要望しています
      • ex. Alice,Bob,Charlie という行があれば、AliceがBobまたはCharlieと同じグループに入りたいと要望しています
    • input/block-request.csv: あるメンバーと同じグループは避けたい要望 (必ずしも実現されるわけではない)
      • 各行先頭のメンバーが、2人目以降のメンバーと異なるグループに入ることをリクエストしています
      • ex. Alice,Eric,Fred という行があれば、AliceはEricまたはFredと異なるグループに入りたいと要望しています
    • input/history/xxx.csv: 過去の組み合わせ
  • 出力値

    • output/lot-xxx.csv: 生成されたグループのリスト

      • 出力されるファイルの中身が以下になった場合は (Daniel, Fred, Eric)(Bob, Charlie, Alice) という2つのグループができたことを意味します

        Score=60,Daniel,Fred,Eric
        Score=-10,Bob,Charlie,Alice
        

About

Kotlin version of grouper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages