(57)【要約】      （修正有）【課題】適切な学級編成を短時間で行うことができる装置を提供する。【解決手段】生徒を識別する生徒識別子と、生徒の成績を含む１以上の属性値とを有する２以上の生徒情報を格納し得る生徒情報格納部１１と、各学級内において満たす必要がある条件である１以上の学級内条件を格納し得る学級内条件格納部１２と、学級間において満たす必要がある条件である１以上の学級間条件を格納し得る学級間条件格納部１３と、１以上の学級内条件と１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定部１６と、学級決定部１６が決定した各生徒の学級を識別する学級識別子を、各生徒と対応付けて蓄積する学級識別子蓄積部１７とを具備する。【選択図】図１
2012103842.tif 000002
【特許請求の範囲】
【請求項１】
生徒を識別する生徒識別子と、当該生徒の成績を含む１以上の属性値とを有する２以上の生徒情報を格納し得る生徒情報格納部と、
各学級内において満たす必要がある条件である１以上の学級内条件を格納し得る学級内条件格納部と、
学級間において満たす必要がある条件である１以上の学級間条件を格納し得る学級間条件格納部と、
前記１以上の学級内条件と前記１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定部と、
前記学級決定部が決定した各生徒の学級を識別する学級識別子を、前記各生徒と対応付けて蓄積する学級識別子蓄積部とを具備する学級編成装置。
【請求項２】
生徒間の条件である１以上の生徒間条件を格納し得る生徒間条件格納部をさらに具備し、
前記学級決定部は、
前記１以上の学級内条件と前記１以上の学級間条件と前記１以上の生徒間条件とを満たすように、２以上の各生徒の学級を決定する請求項１記載の学級編成装置。
【請求項３】
前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の条件は、優先順位を有し、
前記学級決定部は、
前記優先順位に従って、条件を適用し、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件を満たすように、２以上の各生徒の学級を決定する請求項１または請求項２記載の学級編成装置。
【請求項４】
前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の条件は、必須の条件または必須ではない条件のいずれかであり、
前記学級決定部は、
前記必須の条件は、必ず満たすように、２以上の各生徒の学級を決定する請求項１から請求項３いずれか記載の学級編成装置。
【請求項５】
前記１以上の学級内条件は、
各学級の全体人数に関する条件である全体人数条件、男女比に関する条件である男女比条件のうちの１以上の条件である請求項１から請求項４いずれか記載の学級編成装置。
【請求項６】
前記１以上の学級間条件は、
生徒の属性値の学級間のばらつきが閾値以内であるという条件である属性値ばらつき条件、特定の属性を有する生徒が学級間にちらばるという条件である属性非集中条件のうちの１以上の条件である請求項１から請求項５いずれか記載の学級編成装置。
【請求項７】
前記１以上の生徒間条件は、
一の生徒と他の生徒とを別学級にする別学級条件、一の生徒と他の生徒とを同一学級にする同一学級条件のうちの１以上の条件である請求項１から請求項６いずれか記載の学級編成装置。
【請求項８】
前記１以上の学級内条件のうちの一の学級内条件は、
各学級の全体人数に関する条件である全体人数条件であり、
前記１以上の学級間条件のうちの一の学級間条件は、
学級内の全員の生徒の成績の学級間のばらつきが閾値以内であるという条件である成績のばらつき条件であり、
前記学級決定部は、
各生徒情報をエージェントとして、
前記成績のばらつき条件を満たすように、かつ前記全体人数条件を満たすように、各エージェントの学級を仮決定する仮決定手段と、
各エージェントに対して、学級ごとに、他のエージェントが当該学級に存在する仮定で、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の各条件を順次適用し、当該エージェントが存在する場合のスコアを算出するスコア算出手段と、
前記スコア算出手段が算出したスコアが最も高い学級に、各エージェントを移動させる学級変更手段と、
前記学級変更手段によりエージェントの学級移動が所定の条件を満たすほど、移動が少なくなるまで、前記スコア算出手段および前記学級変更手段の処理を繰り返し行わせる制御手段とを具備する請求項１から請求項７いずれか記載の学級編成装置。
【請求項９】
記憶媒体に、
生徒を識別する生徒識別子と、当該生徒の成績を含む１以上の属性値とを有する２以上の生徒情報と、
各学級内において満たす必要がある条件である１以上の学級内条件と、
学級間において満たす必要がある条件である１以上の学級間条件とを格納しており、
学級決定部、および学級識別子蓄積部とにより実現される学級編成方法であって、
前記学級決定部が、前記１以上の学級内条件と前記１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定ステップと、
前記学級識別子蓄積部が、前記学級決定ステップで決定された各生徒の学級を識別する学級識別子を、前記各生徒識別子と対応付けて蓄積する学級識別子蓄積ステップとを具備する学級編成方法。
【請求項１０】
記憶媒体に、
生徒を識別する生徒識別子と、当該生徒の成績を含む１以上の属性値とを有する２以上の生徒情報と、
各学級内において満たす必要がある条件である１以上の学級内条件と、
学級間において満たす必要がある条件である１以上の学級間条件とを格納しており、
コンピュータを、
前記１以上の学級内条件と前記１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定部と、
前記学級決定部が決定した各生徒の学級を識別する学級識別子を、前記各生徒識別子と対応付けて蓄積する学級識別子蓄積部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、1以上の条件を満たすように、自動的に学級編成を行う学級編成装置等に関するものである。
【背景技術】
【０００２】
従来、例えば、小学校や中学校や高等学校等における学級編成は、生徒の学業や相性などを考慮して、１以上の教師の手作業により行われていた。
【０００３】
また、従来、多数の選択科目が存在する際におけるクラス編成の受講者割り当てを支援する選択科目クラス編成支援システムがあった（特許文献１参照）。本システムは、ユーザが入力した多様な嗜好及び事業者側の教育効果に関する基準等の条件を制約とし、それらの制約に基づき、複数の選択科目が存在する際におけるクラス編成の受講者割り当てを支援するシステムである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−８５６５５号公報（第１頁、第１図等）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の学級編成において、手作業で行っていたため、効率が悪く、適切な学級編成を行うことは困難であった。
【０００６】
また、特許文献１における選択科目クラス編成支援システムは、科目の選択を支援するためのシステムであり、学級内条件や学級間条件や生徒間条件を考慮していないため、小学校や中学校や高等学校等における学級編成を適切に行うことができない。
【課題を解決するための手段】
【０００７】
本第一の発明の学級編成装置は、生徒を識別する生徒識別子と、生徒の成績を含む１以上の属性値とを有する２以上の生徒情報を格納し得る生徒情報格納部と、各学級内において満たす必要がある条件である１以上の学級内条件を格納し得る学級内条件格納部と、学級間において満たす必要がある条件である１以上の学級間条件を格納し得る学級間条件格納部と、１以上の学級内条件と１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定部と、学級決定部が決定した各生徒の学級を識別する学級識別子を、各生徒と対応付けて蓄積する学級識別子蓄積部とを具備する学級編成装置である。
【０００８】
かかる構成により、適切な学級編成を短時間で行うことができる。
【０００９】
また、本第二の発明の学級編成装置は、第一の発明に対して、生徒間の条件である１以上の生徒間条件を格納し得る生徒間条件格納部をさらに具備し、学級決定部は、１以上の学級内条件と１以上の学級間条件と１以上の生徒間条件とを満たすように、２以上の各生徒の学級を決定する学級編成装置である。
【００１０】
かかる構成により、さらに適切な学級編成を短時間で行うことができる。
【００１１】
また、本第三の発明の学級編成装置は、第一または第二の発明に対して、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件のうちの１以上の条件は、優先順位を有し、学級決定部は、優先順位に従って、条件を適用し、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件を満たすように、２以上の各生徒の学級を決定する学級編成装置である。
【００１２】
かかる構成により、さらに適切な学級編成を短時間で行うことができる。
【００１３】
また、本第四の発明の学級編成装置は、第一から第三いずれかの発明に対して、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件のうちの１以上の条件は、必須の条件または必須ではない条件のいずれかであり、学級決定部は、必須の条件は、必ず満たすように、２以上の各生徒の学級を決定する学級編成装置である。
【００１４】
かかる構成により、さらに適切な学級編成を短時間で行うことができる。
【００１５】
また、本第五の発明の学級編成装置は、第一から第四いずれかの発明に対して、１以上の学級内条件は、各学級の全体人数に関する条件である全体人数条件、男女比に関する条件である男女比条件のうちの１以上の条件である学級編成装置である。
【００１６】
かかる構成により、適切な学級編成を短時間で行うことができる。
【００１７】
また、本第六の発明の学級編成装置は、第一から第五いずれかの発明に対して、１以上の学級間条件は、生徒の属性値の学級間のばらつきが閾値以内であるという条件である属性値ばらつき条件、特定の属性を有する生徒が学級間にちらばるという条件である属性非集中条件のうちの１以上の条件である学級編成装置である。
【００１８】
かかる構成により、適切な学級編成を短時間で行うことができる。
【００１９】
また、本第七の発明の学級編成装置は、第一から第六いずれかの発明に対して、１以上の生徒間条件は、一の生徒と他の生徒とを別学級にする別学級条件、一の生徒と他の生徒とを同一学級にする同一学級条件のうちの１以上の条件である学級編成装置である。
【００２０】
かかる構成により、適切な学級編成を短時間で行うことができる。
【００２１】
また、本第八の発明の学級編成装置は、第一から第七いずれかの発明に対して、１以上の学級内条件のうちの一の学級内条件は、各学級の全体人数に関する条件である全体人数条件であり、１以上の学級間条件のうちの一の学級間条件は、学級内の全員の生徒の成績の学級間のばらつきが閾値以内であるという条件である成績のばらつき条件であり、学級決定部は、各生徒情報をエージェントとして、成績のばらつき条件を満たすように、かつ全体人数条件を満たすように、各エージェントの学級を仮決定する仮決定手段と、各エージェントに対して、学級ごとに、他のエージェントが学級に存在する仮定で、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件のうちの１以上の各条件を順次適用し、エージェントが存在する場合のスコアを算出するスコア算出手段と、スコア算出手段が算出したスコアが所定の条件を満たすほど高い学級に、各エージェントを移動させる学級変更手段と、学級変更手段によりエージェントの学級移動が所定の条件を満たすほど、移動が少なくなるまで、スコア算出手段および学級変更手段の処理を繰り返し行わせる制御手段とを具備する学級編成装置である。
かかる構成により、適切な学級編成を短時間で行うことができる。
【発明の効果】
【００２２】
本発明による学級編成装置によれば、適切な学級編成を短時間で行うことができる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１における学級編成装置のブロック図
【図２】同各生徒の学級を仮決定した場合の結果の例を示す図
【図３】同学級編成装置の動作について説明するフローチャート
【図４】同仮決定処理の動作について説明するフローチャート
【図５】同各クラスのスコア算出処理について説明するフローチャート
【図６】同学級編成の他のアルゴリズムについて説明するフローチャート
【図７】同学級編成の他のアルゴリズムについて説明するフローチャート
【図８】同生徒情報管理表を示す図
【図９】同学級内条件管理表を示す図
【図１０】同学級間条件管理表を示す図
【図１１】同生徒間条件管理表を示す図
【図１２】同コンピュータシステムの概観図
【図１３】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００２４】
以下、学級編成装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００２５】
本実施の形態において、１以上の学級内の条件、１以上の学級間の条件、および１以上の生徒間の条件を満たすように、自動的に学級編成を行う学級編成装置について説明する。
【００２６】
また、本実施の形態において、条件に優先順位がある場合、必須の条件および必須でない条件が存在する場合についても説明する。
【００２７】
さらに、本実施の形態において、マルチエージェントを用いた学級編成装置について説明する。
【００２８】
図１は、本実施の形態における学級編成装置１のブロック図である。学級編成装置１は、生徒情報格納部１１、学級内条件格納部１２、学級間条件格納部１３、生徒間条件格納部１４、受付部１５、学級決定部１６、学級識別子蓄積部１７、および出力部１８を具備する。
【００２９】
学級決定部１６は、仮決定手段１６１、スコア算出手段１６２、学級変更手段１６３、および制御手段１６４を具備する。
【００３０】
生徒情報格納部１１は、２以上の生徒情報を格納し得る。生徒情報は、生徒を識別する生徒識別子と、１以上の属性値とを有する。１以上の属性値は、生徒の成績を含む。生徒識別子は、例えば、生徒の氏名、生徒を特定するＩＤなどである。属性値とは、例えば、学業成績（全般的な成績であり、単に成績ともいう）、科目別の成績、性別、リーダー性の有無、個別指導の必要性の有無、運動能力（運動能力のレベルを示す情報など）、運動が得意か苦手かを示す情報、学力不振か否かを示す情報、問題行動を起こしやすいか否かを示す情報、交友関係に関する情報（交友関係が活発化否かを示す情報など）、ピアノが弾けるか否かを示す情報、旧学級の学級識別子、保護者がPTA役員か否かを示す情報、母子家庭または父子家庭か否かを示す情報、準要保護または要保護家庭か否かを示す情報、通学団を識別する情報、誕生月、一人っ子であるか否かを示す情報、兄弟姉妹の中での位置（長男、次男、三男など）、いじめられっ子か否かを示す情報、いじめっ子か否かを示す情報、左利きか否かを示す情報、問題のある保護者であるか否かを示す情報、給食費等を滞納しがちな家庭であるか否かを示す情報などであり、生徒に関する情報であれば何でも良い。なお、生徒情報または生徒情報の一部を、適宜、エージェントということとする。
【００３１】
学級内条件格納部１２は、１以上の学級内条件を格納し得る。学級内条件とは、各学級内において満たす必要がある条件である。学級内条件は、例えば、各学級の全体人数に関する条件である全体人数条件、学級内の男女比に関する条件である男女比条件、男子、女子の数に関する条件である性別人数条件などである。全体人数条件は、例えば、「３０＜＝１学級の人数＜＝４０」である。男女比条件は、例えば、「０．９＜＝男女比＜＝１．１」である。性別人数条件は、例えば、「１５＜＝男子の数＜＝２３  かつ  １５＜＝女子の数＜＝２０」である。なお、学級は、適宜、クラスとも言う。また、各学級内条件に対応付けて、当該条件を満たした場合または条件を満たさない場合のスコアが格納されていても良い。また、スコアは、条件を満たした度合いにより、２以上のスコアが格納されていても良い。また、スコアは、条件を満たさない度合いにより、２以上のスコアが格納されていても良い。例えば、男女比条件は、例えば、「０．９＜＝男女比＜１．０の場合または１＜男女比＜＝１．１の場合は「１」、男女比＝１の場合は「２」」などである。また、各学級内条件に対応付けて、優先順位を示す情報または／および必須の条件か否かを示す情報が格納されていても良い。優先順位は、通常、学級内条件、学級間条件、および生徒間条件すべての中での優先順位であるが、学級内条件等の各カテゴリー内の条件の中での優先順位でも良い。
【００３２】
学級間条件格納部１３は、１以上の学級間条件を格納し得る。学級間条件とは、学級間において満たす必要がある条件である。学級間条件は、例えば、生徒の属性値の学級間のばらつきが閾値以内であるという条件である属性値ばらつき条件、特定の属性を有する生徒が学級間にちらばるという条件である属性非集中条件などである。さらに具体的には、属性値ばらつき条件は、例えば、２以上の学級間の生徒の学業成績のばらつきが一定以下であることである。属性非集中条件は、例えば、リーダー性のある生徒のばらつきが一定以上であることである。ここで、ばらつきとは、例えば、分散や標準偏差や平均値との差など、ばらついていること、またはばらついていないことを示す指標であれば何でも良い。なお、各学級間条件に対応付けて、当該条件を満たした場合または条件を満たさない場合のスコアが格納されていても良い。また、スコアは、条件を満たした度合いにより、２以上のスコアが格納されていても良い。また、スコアは、条件を満たさない度合いにより、２以上のスコアが格納されていても良い。例えば、属性非集中条件は、例えば、「０＜＝リーダー性のある生徒数の分散＜０．５の場合「２」、０．５＜＝リーダー性のある生徒数の分散＜１．０の場合は「１」」などである。また、各学級間条件に対応付けて、優先順位を示す情報または／および必須の条件か否かを示す情報が格納されていても良い。
【００３３】
生徒間条件格納部１４は、１以上の生徒間条件を格納し得る。生徒間条件は、生徒間の条件である。生徒間条件は、例えば、一の生徒と他の生徒とを別学級にする別学級条件、一の生徒と他の生徒とを同一学級にする同一学級条件などである。別学級条件は、例えば、Ａ君とＢ君は同じクラスにしない、という条件である。同一学級条件は、例えば、ＣさんとＤさんは同じクラスにする、という条件である。なお、各生徒間条件に対応付けて、当該条件を満たした場合または条件を満たさない場合のスコアが格納されていても良い。また、スコアは、条件を満たした度合いにより、２以上のスコアが格納されていても良い。また、スコアは、条件を満たさない度合いにより、２以上のスコアが格納されていても良い。また、各生徒間条件に対応付けて、優先順位を示す情報または／および必須の条件か否かを示す情報が格納されていても良い。
【００３４】
受付部１５は、ユーザからの指示やデータを受け付ける。指示とは、例えば、学級編成を開始する学級編成指示や、蓄積された学級編成の情報（例えば、各生徒の氏名と学級識別子など）を出力する出力指示などである。指示やデータの入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部１５は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００３５】
学級決定部１６は、１以上の学級内条件と１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する。また、学級決定部１６は、１以上の学級内条件と１以上の学級間条件と１以上の生徒間条件とを満たすように、２以上の各生徒の学級を決定しても良い。学級決定部１６は、優先順位に従って、条件を適用し、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件を満たすように、２以上の各生徒の学級を決定しても良い。学級決定部１６は、必須の条件は、必ず満たすように、２以上の各生徒の学級を決定することは好適である。さらに、学級決定部１６は、必須の条件は必ず満たすように、かつ、必須でない条件は、優先順位に従って、条件を適用し、優先順位の高い方の条件を極力満たすように２以上の各生徒の学級を決定することは好適である。
【００３６】
さらに具体的には、学級決定部１６は、例えば、仮決定手段１６１、スコア算出手段１６２、学級変更手段１６３、および制御手段１６４により、２以上の各生徒の学級を決定することは好適である。なお、学級決定部１６が行う学級編成処理のアルゴリズムは、種々考えられる。
【００３７】
仮決定手段１６１は、成績のばらつき条件を満たすように、かつ全体人数条件を満たすように、各エージェントの学級を仮決定する。仮決定手段１６１は、単に、全体人数条件を満たすように、各エージェントの学級を仮決定しても良い。つまり、仮決定とは、全てのエージェントに対して、所属する学級を決める最初の処理である。なお、ここでは、エージェントは生徒情報である。そして、成績のばらつき条件を満たすとは、各学級内の全生徒の成績（総合的な成績）の平均値が概ね一定となるように各エージェントの学級を決定することである。仮決定手段１６１は、例えば、エージェントを成績順に並べ、各学級の成績が概ね一定となるように各エージェントの学級を決定する。さらに具体的には、学級の数が５（1組から５組）である場合、図２に示すように、1組には学年順位「１」「１０」「１１」等の生徒が割り当てられ、２組には学年順位「２」「９」「１２」等の生徒が割り当てられる。つまり、仮決定手段１６１は、例えば、エージェントを成績順にソートした後、一位のものから順に1組から５組に配置し、次には、その逆に５組から１組に配置する。そして、1組から５組への順の配置、５組から１組への順の配置を交互に繰り返して、すべての生徒のクラスを決定する。
【００３８】
スコア算出手段１６２は、すべてのエージェントに対して、１以上の条件を順次適用し、エージェントが各学級に存在する場合のスコアを、学級ごとに算出する。なお、１以上の条件とは、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件である。かかる場合、スコアを算出しているエージェント（着目しているエージェント）以外のエージェントについては、最新の学級に存在するとして、スコア算出手段１６２は、スコアを算出する。スコア算出手段１６２は、着目しているエージェントが各学級に存在する場合に、各条件を満たすか否かを判断し、条件を満たす場合または条件を満たさない場合に、当該条件に対応付けられているスコアを加算または減算等して、各学級に存在する場合のスコアを算出する。
【００３９】
つまり、スコア算出手段１６２は、仮決定手段１６１が各エージェントの学級を仮決定した状況において、学級ごとに、エージェントが存在する場合のスコアを算出する。このスコアは、概念的には、各生徒の各クラスでの居心地の良さを示すスコアである、とも言える。また、スコア算出手段１６２は、通常、最新の各学級の状態において、学級ごとに、エージェントが存在する場合のスコアを算出する。
【００４０】
学級変更手段１６３は、スコア算出手段１６２が算出したスコアが所定の条件を満たすほど高い学級に、各エージェントを移動させる。エージェントの移動とは、エージェントに対応する生徒の学級を変更することである。さらに具体的には、エージェントの移動とは、通常、エージェントに対応する生徒情報に対応する学級識別子を変更することである。ここで、スコアが所定の条件を満たすほど高い学級とは、スコアが最も高い学級や、スコアが閾値以上の１以上の学級のうちのいずれか等である。
【００４１】
制御手段１６４は、学級変更手段１６３によりエージェントの学級移動が所定の条件を満たすほど、移動が少なくなるまで、スコア算出手段１６２および学級変更手段１６３の処理を繰り返し行わせる。所定の条件とは、例えば、「前回の条件適用において、学級の移動の割合が３％以内であること」などである。また、制御手段１６４は、学級編成指示が受け付けられてから所定時間以上経過している場合、学級編成の処理を終了しても良い。
【００４２】
学級識別子蓄積部１７は、学級決定部１６が決定した各生徒の学級を識別する学級識別子を、各生徒（各生徒情報）と対応付けて蓄積する。蓄積する記憶領域は、生徒情報格納部１１でも良いし、図示しない記録媒体でも良い。
【００４３】
出力部１８は、受付部１５が出力指示を受け付けた場合、各生徒の学級識別子を出力する。出力部１８は、通常、生徒識別子と学級識別子とを対応付けて出力する。かかる場合の出力態様は問わない。ここで、出力とは、通常、ディスプレイへの表示であるが、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置（例えば、表示装置）への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【００４４】
生徒情報格納部１１、学級内条件格納部１２、学級間条件格納部１３、生徒間条件格納部１４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４５】
生徒情報格納部１１等に生徒情報等が記憶される過程は問わない。例えば、記録媒体を介して生徒情報等が生徒情報格納部１１等で記憶されるようになってもよく、通信回線等を介して送信された生徒情報等が生徒情報格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された生徒情報等が生徒情報格納部１１等で記憶されるようになってもよい。
【００４６】
学級決定部１６、仮決定手段１６１、スコア算出手段１６２、学級変更手段１６３、制御手段１６４、および学級識別子蓄積部１７は、通常、ＭＰＵやメモリ等から実現され得る。学級決定部１６等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４７】
出力部１８は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部１８は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００４８】
次に、学級編成装置１の動作について、図３のフローチャートを用いて説明する。
【００４９】
（ステップＳ３０１）受付部１５は、学級編成指示を受け付けたか否かを判断する。学級編成指示を受け付ければステップＳ３０２に行き、学級編成指示を受け付けなければステップＳ３１２に行く。
【００５０】
（ステップＳ３０２）学級決定部１６の仮決定手段１６１は、仮決定処理を行う。仮決定処理とは、各エージェントの学級を最初に仮決定する処理である。仮決定処理について、図４のフローチャートを用いて説明する。
【００５１】
（ステップＳ３０３）スコア算出手段１６２は、初期化処理を行う。初期化処理とは、ここでは、カウンタｉに１を代入し、変数「移動数」に０を代入する処理である。変数「移動数」は、全エージェントに対して、１以上の条件を適用した場合に、学級を移動したエージェントの数である。
【００５２】
（ステップＳ３０４）スコア算出手段１６２は、ｉ番目のエージェントが存在するか否かを判断する。ｉ番目のエージェントが存在すればステップＳ３０５に行き、存在しなければステップＳ３１０に行く。
【００５３】
（ステップＳ３０５）スコア算出手段１６２は、ｉ番目のエージェントが各クラスに存在する場合のスコアを算出する。各クラスのスコアを算出する処理について、図５のフローチャートを用いて説明する。
【００５４】
（ステップＳ３０６）学級変更手段１６３は、ステップＳ３０５で算出されたスコアのうちの最大スコアに対応するクラスの学級識別子を取得する。また、学級変更手段１６３は、ｉ番目のエージェントが現在、所属するクラスの学級識別子を取得する。そして、学級変更手段１６３は、２つの学級識別子を比較し、ステップＳ３０５で算出されたスコアのうちの最大スコアに対応するクラスと、ｉ番目のエージェントが現在、所属するクラスとが同一か否か（２つの学級識別子が同一か否か）を判断する。同一であればステップＳ３０９に行き、同一でなければステップＳ３０７に行く。
【００５５】
（ステップＳ３０７）学級変更手段１６３は、ｉ番目のエージェントが属するクラスを、ステップＳ３０５で算出されたスコアのうちの最大スコアに対応するクラスに変更する。つまり、学級変更手段１６３は、ｉ番目のエージェント（生徒情報）に対応する学級識別子を、最大スコアに対応するクラスの学級識別子に書き換える。
【００５６】
（ステップＳ３０８）学級変更手段１６３は、変数「移動数」を１、インクリメントする。
【００５７】
（ステップＳ３０９）スコア算出手段１６２は、カウンタｉを１、インクリメントする。ステップＳ３０４に戻る。
【００５８】
（ステップＳ３１０）制御手段１６４は、変数「移動数」が所定の条件を満たすほど、エージェントの移動が少ないか否かを判断する。所定の条件を満たすほどエージェントの移動が少ないと判断した場合はステップＳ３１１に行き、移動が多いと判断した場合はステップＳ３０３に戻る。ここで、「所定の条件」とは、例えば、「移動数＝０」や「移動数＜＝１０」や「移動数＜全エージェントの１％」などである。
【００５９】
（ステップＳ３１１）学級識別子蓄積部１７は、学級決定部１６が決定した各生徒のクラスを識別する学級識別子を、各生徒（各生徒情報）と対応付けて蓄積する。なお、ステップＳ３０７において、最終的な状態で、各生徒の学級識別子が蓄積されている場合、本ステップは不要である。ステップＳ３０１に戻る。
【００６０】
（ステップＳ３１２）受付部１５は、出力指示を受け付けたか否かを判断する。出力指示を受け付ければステップＳ３１３に行き、出力指示を受け付けなければステップＳ３０１に行く。
【００６１】
（ステップＳ３１３）出力部１８は、生徒情報に対応付けて蓄積されている各生徒の学級識別子を出力する。なお、出力部１８は、通常、生徒識別子と学級識別子とを対応付けて出力する。ステップＳ３０１に戻る。
【００６２】
なお、図３のフローチャートにおいて、学級決定部１６は、各エージェントの学級を仮決定した後、スコアを算出し、当該スコアを用いてエージェントが所属する学級を移動し、条件を満たすほどエージェントの移動が落ち着くまで処理を繰り返したが、他のアルゴリズムにより、各エージェントの学級を決定しても良い。つまり、学級決定部１６は、１以上の学級内条件と１以上の学級間条件、または１以上の学級内条件と１以上の学級間条件と１以上の生徒間条件を満たすように各エージェントの学級を決定すれば良い。なお、条件を満たすとは、極力条件を満たす、という意味である。つまり、２以上の条件を与えた場合、相反する条件が存在した場合は、当該相反するすべての条件は満たし得ないことは言うまでもない。
【００６３】
また、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００６４】
次に、ステップＳ３０２の仮決定処理について、図４のフローチャートを用いて説明する。
【００６５】
（ステップＳ４０１）仮決定手段１６１は、生徒情報格納部１１内のエージェントを、エージェント内の属性値「成績」をキーとして、降順にソートする。なお、属性値「成績」をキーとしてソートすることは、一例であることを言うまでもない。
【００６６】
（ステップＳ４０２）仮決定手段１６１は、初期化処理を行う。初期化処理とは、ここでは、カウンタｉに１を代入し、変数「クラス識別子」に１を代入し、変数「順序」に値「昇順」を代入する処理である。変数「順序」は、値「昇順」または「降順」のいずれかをとり得る。変数「順序」は、ソートされたエージェントの学級識別子を決定する場合に、学級識別子をエージェントに付与する際の手順を示す。
【００６７】
（ステップＳ４０３）仮決定手段１６１は、ｉ番目のエージェントが存在するか否かを判断する。ｉ番目のエージェントが存在すればステップＳ４０４に行き、存在しなければ上位処理にリターンする。
【００６８】
（ステップＳ４０４）仮決定手段１６１は、ｉ番目のエージェントが所属するクラス識別子を、変数「クラス識別子」の値とする。
【００６９】
（ステップＳ４０５）仮決定手段１６１は、変数「順序」が値「昇順」であるか否かを判断する。変数「順序」が値「昇順」であればステップＳ４０６に行き、値「降順」であればステップＳ４１０に行く。
【００７０】
（ステップＳ４０６）仮決定手段１６１は、変数「クラス識別子」の値が、クラス識別子の最大値（ｎ）であるか否かを判断する。変数「クラス識別子」の値が、クラス識別子の最大値（ｎ）であればステップＳ４０７に行き、最大値（ｎ）でなければステップＳ４０９に行く。なお、学級識別子が「１」「２」「３」「４」「５」のいずれかを採り得る場合、最大値（ｎ）は「５」である。
【００７１】
（ステップＳ４０７）仮決定手段１６１は、変数「順序」の値を「降順」に変更する。
【００７２】
（ステップＳ４０８）仮決定手段１６１は、カウンタｉを１、インクリメントする。ステップＳ４０３に戻る。
【００７３】
（ステップＳ４０９）仮決定手段１６１は、変数「クラス識別子」の値を１、インクリメントする。ステップＳ４０８に行く。
【００７４】
（ステップＳ４１０）仮決定手段１６１は、変数「クラス識別子」の値が、クラス識別子の最小値（１）であるか否かを判断する。変数「クラス識別子」の値が、クラス識別子の最小値（１）であればステップＳ４１１に行き、最小値（１）でなければステップＳ４１２に行く。
【００７５】
（ステップＳ４１１）仮決定手段１６１は、変数「順序」の値を「昇順」に変更する。ステップＳ４０８に行く。
【００７６】
（ステップＳ４１２）仮決定手段１６１は、変数「クラス識別子」の値を１、デクリメントする。ステップＳ４０８に行く。
【００７７】
なお、図４のフローチャートにおいて、クラス識別子を「１」から「ｎ」としたが、例えば、「Ａ」から「Ｈ」など、記号であれば何でも良い。なお、通常、かかる記号は、順序性を有する。
また、図４のフローチャートにおいて、全児童を男子と女子に分け、それぞれを属性値（例えば、成績）でソートし、上記のフローチャートを適用し、各クラスの男子の成績が均等になるように、かつ、各クラスの女子の成績が均等になるように、仮決定処理を行うことは好適である。
【００７８】
次に、ステップＳ４０５のスコア算出処理について、図５のフローチャートを用いて説明する。ここで、各学級内条件、各学級間条件、および各生徒間条件に対応付けて、当該条件を満たした場合または条件を満たさない場合のスコアが格納されている、とする。
【００７９】
（ステップＳ５０１）スコア算出手段１６２は、初期化処理を行う。初期化処理とは、ここでは、カウンタｉに１を代入し、変数「スコア」に０を代入する処理である。変数「スコア」は、テンポラリのスコアを格納する変数である。
【００８０】
（ステップＳ５０２）スコア算出手段１６２は、ｉ番目のクラスが存在するか否かを判断する。ｉ番目のクラスが存在すればステップＳ５０３に行き、存在しなければ上位処理にリターンする。
【００８１】
（ステップＳ５０３）スコア算出手段１６２は、カウンタｊに１を代入する。
【００８２】
（ステップＳ５０４）スコア算出手段１６２は、学級内条件格納部１２、学級間条件格納部１３、または生徒間条件格納部１４に、ｊ番目の条件が格納されているか否かを判断する。ｊ番目の条件が格納されていればステップＳ５０５に行き、ｊ番目の条件が格納されていなければステップＳ５１０に行く。なお、各条件が優先順位を有する場合、条件は、優先順位に従って、ソートされていることは好適である。また、各条件が、必須であるか否かを示す情報を有する場合、必須の条件から適用されることは好適である。
【００８３】
（ステップＳ５０５）スコア算出手段１６２は、ｊ番目の条件を読み出す。
【００８４】
（ステップＳ５０６）スコア算出手段１６２は、ｉ番目のクラスに、当該エージェント（図３のｉ番目のエージェント）が存在すると仮定した場合、ｊ番目の条件を満たすか否かを判断する。ｊ番目の条件を満たせばステップＳ５０７に行き、ｊ番目の条件を満たさなければステップＳ５０８に行く。
【００８５】
（ステップＳ５０７）スコア算出手段１６２は、ｊ番目の条件を満たした場合のスコアであり、ｊ番目の条件に対応するスコアを読み出し、当該スコアを用いて、変数「スコア」を更新する。なお、ｊ番目の条件を満たした場合のスコアが格納されていない場合は、変数「スコア」は更新されない。
【００８６】
（ステップＳ５０８）スコア算出手段１６２は、ｊ番目の条件を満たさない場合のスコアであり、ｊ番目の条件に対応するスコアを読み出し、当該スコアを用いて、変数「スコア」を更新する。なお、ｊ番目の条件を満たさない場合のスコアが格納されていない場合は、変数「スコア」は更新されない。
【００８７】
（ステップＳ５０９）スコア算出手段１６２は、カウンタｊを１、インクリメントする。ステップＳ５０４に戻る。
【００８８】
（ステップＳ５１０）スコア算出手段１６２は、ｉ番目のクラスに対応する学級識別子に対応付けて、変数「スコア」の値を一時蓄積する。
【００８９】
（ステップＳ５１１）スコア算出手段１６２は、カウンタｉを１、インクリメントする。
【００９０】
（ステップＳ５１２）スコア算出手段１６２は、変数「スコア」に「０」を代入する。ステップＳ５０２に戻る。
【００９１】
次に、学級編成の他のアルゴリズムについて、図６、図７のフローチャートを用いて説明する。図３における学級編成の処理は、ステップＳ３０２からステップＳ３１１である。
【００９２】
（ステップＳ６０１）学級決定部１６は、生徒情報格納部１１から性別「男子」を有するすべての生徒情報を読み出す。
【００９３】
（ステップＳ６０２）学級決定部１６は、ステップＳ６０１で読み出した男子の生徒情報に対して、図４の仮決定処理を行う。
【００９４】
（ステップＳ６０３）学級決定部１６は、生徒情報格納部１１から性別「女子」を有するすべての生徒情報を読み出す。
【００９５】
（ステップＳ６０４）学級決定部１６は、ステップＳ６０３で読み出した女子の生徒情報に対して、図４の仮決定処理を行う。
【００９６】
（ステップＳ６０５）学級決定部１６は、１学級の人数差が１人以下になるように、男子の任意のグループと、女子の任意のグループとを結びつけ、一つの学級にする。例えば、学級決定部１６は、男子のグループの中から人数が多い順にグループを決定する。そして、学級決定部１６は、女子のグループの中から人数が少ない順にグループを決定する。次に、順次決定した男子グループの生徒情報と、女子グループの生徒情報に、同一の学級識別子を付与する。
【００９７】
（ステップＳ６０６）学級決定部１６は、学級間条件格納部１３に格納されている１以上の学級間条件を読み出す。
【００９８】
（ステップＳ６０７）学級決定部１６は、カウンタｉに１を代入する。
【００９９】
（ステップＳ６０８）学級決定部１６は、ｉ番目の学級間条件が存在するか否かを判断する。ｉ番目の学級間条件が存在すればステップＳ６０９に行き、存在しなければステップＳ６１５に行く。
【０１００】
（ステップＳ６０９）学級決定部１６は、現在の各学級に所属する生徒の生徒情報が、ｉ番目の学級間条件を満たすか否かを判断する。ｉ番目の学級間条件を満たす場合はステップＳ６１４に行き、ｉ番目の学級間条件を満たさない場合はステップＳ６１０に行く。
【０１０１】
（ステップＳ６１０）学級決定部１６は、着目する属性値が最大のクラスと、着目する属性値が最小のクラスを決定する。例えば、ｉ番目の学級間条件が「生徒の学業成績のばらつきが一定以下」である場合、まず、学級決定部１６は、各クラスの属性値「学業成績」の平均値を算出する。そして、学級決定部１６は、クラスの属性値「学業成績」の平均値が最大のクラスの学級識別子と、クラスの属性値「学業成績」の平均値が最小のクラスの学級識別子を取得する。また、例えば、ｉ番目の学級間条件が「リーダー性のある生徒数のばらつきが一定以下（「リーダー性のある生徒のばらつきが一定以上」と同意義である。）」である場合、まず、学級決定部１６は、各クラスにおける属性値「リーダー性あり」の合計値（リーダー性のある生徒数）を算出する。そして、学級決定部１６は、属性値「リーダー性あり」の合計値が最大のクラスの学級識別子と、属性値「リーダー性あり」の合計値が最小のクラスの学級識別子を取得する。
【０１０２】
（ステップＳ６１１）学級決定部１６は、ステップＳ６１０で決定した属性値が最大のクラスの生徒の生徒情報の中で、着目する属性値が最大値である生徒を決定する。例えば、ｉ番目の学級間条件が「生徒の学業成績のばらつきが一定以下」である場合、学級決定部１６は、ステップＳ６１０で決定した属性値が最大のクラスの中で、学業成績が最大（一番）の生徒を決定する。つまり、学級決定部１６は、ステップＳ６１０で取得した学級識別子と対になる生徒情報の中で、最大の学業成績を有する生徒情報を取得する。また、例えば、ｉ番目の学級間条件が「リーダー性のある生徒数のばらつきが一定以下」である場合、ステップＳ６１０で取得した属性値が最大のクラス（「リーダー性あり」の属性値を有する生徒が最も多いクラス）の学級識別子と対になる生徒情報の中で、「リーダー性あり」の属性値を有する生徒情報を任意に一つ取得する。
【０１０３】
（ステップＳ６１２）学級決定部１６は、ステップＳ６１０で決定した属性値が最小のクラスの生徒の中で、着目する属性値が所定値より小さく、ステップＳ６１１で取得した生徒の属性値群（着目する属性値を除く属性値群）と条件を満たす程、類似している属性値群を有する生徒を決定する。つまり、学級決定部１６は、ステップＳ６１０で決定した属性値が最小のクラスの生徒の生徒情報の中で、着目する属性値が所定値より小さく、ステップＳ６１１で取得した生徒情報が有する他の１以上の属性値（着目する属性値を除く属性値群）である属性値ベクトルと条件を満たす程、類似している属性値ベクトルを有する生徒を決定する。なお、２つの属性値ベクトルの類似度を算出する方法は、例えば、２つのベクトルのコサイン値が所定値以内であることである。ただし、２つの属性値ベクトルの類似度を算出するアルゴリズムは問わない。例えば、ｉ番目の学級間条件が「生徒の学業成績のばらつきが一定以下」である場合、学級決定部１６は、ステップＳ６１０で決定した属性値が最小のクラスの生徒の中で、学業成績が閾値より低く、かつステップＳ６１１で取得した生徒の学業成績以外の属性値群（属性値ベクトル）と類似度が所定の値より大きい属性値群（属性値ベクトル）を有する生徒情報を取得する。
また、例えば、ｉ番目の学級間条件が「リーダー性のある生徒数のばらつきが一定以下」である場合、学級決定部１６は、ステップＳ６１０で決定した属性値が最小のクラスの生徒の生徒情報であり、「リーダー性なし」の属性値を有する生徒情報の中で、ステップＳ６１１で取得した生徒の「リーダー性」以外の属性値群（属性値ベクトル）と類似度が所定の値より大きい属性値群（属性値ベクトル）を有する生徒情報を取得する。
【０１０４】
（ステップＳ６１３）学級決定部１６は、ステップＳ６１１で決定した生徒のクラスと、ステップＳ６１２で決定した生徒のクラスとを入れ替える。つまり、学級決定部１６は、ステップＳ６１１で取得した生徒情報に対応する学級識別子を、ステップＳ６１２で取得した生徒情報に対応する学級識別子に書き換え、ステップＳ６１２で取得した生徒情報に対応する学級識別子を、ステップＳ６１１で取得した生徒情報に対応する学級識別子に書き換える。ステップＳ６０９に戻る。
【０１０５】
（ステップＳ６１４）学級決定部１６は、カウンタｉを１、インクリメントする。ステップＳ６０８に戻る。
【０１０６】
（ステップＳ６１５）学級決定部１６は、生徒間条件格納部１４に格納されている１以上の生徒間条件を読み出す。
【０１０７】
（ステップＳ６１６）学級決定部１６は、学級決定部１６は、カウンタｉに１を代入する。
【０１０８】
（ステップＳ６１７）学級決定部１６は、ｉ番目の生徒間条件が存在するか否かを判断する。ｉ番目の生徒間条件が存在すればステップＳ６１８に行き、存在しなければステップＳ６２８に行く。
【０１０９】
（ステップＳ６１８）学級決定部１６は、現在の各学級に所属する生徒の生徒情報が、ｉ番目の生徒間条件を満たすか否かを判断する。ｉ番目の生徒間条件を満たす場合はステップＳ６２７に行き、ｉ番目の学級間条件を満たさない場合はステップＳ６１８に行く。
【０１１０】
（ステップＳ６１９）学級決定部１６は、ｉ番目の生徒間条件に含まれる生徒の生徒情報を取得する。かかる生徒情報は、着目する生徒情報である。なお、ステップＳ６１８で、通常、着目する２つの生徒情報を取得している。その場合、本ステップでは、ステップＳ６１８で取得した２つの生徒情報を持ってくるだけ、または何もしない（ＮＯＰである）。
【０１１１】
（ステップＳ６２０）学級決定部１６は、ｉ番目の生徒間条件が、２人の生徒が同一クラスに属さない、という条件であるか否かを判断する。かかる条件であればステップＳ６２１に行き、かかる条件でなければステップＳ６２３に行く。ステップＳ６２３に行く場合、ｉ番目の生徒間条件は、２人の生徒が同一クラスに属する、という条件である。なお、３以上の生徒が同一クラスに属さないという条件は、２人の生徒が同一クラスに属さないという条件が複数存在する、として扱うことができる。また、３以上の生徒が同一クラスに属するという条件についても、同様に、２人の生徒が同一クラスに属するという条件が複数存在する、として扱うことができる。
【０１１２】
（ステップＳ６２１）学級決定部１６は、２人の生徒のうちの一方の生徒と属性値群と類似度が最も大きい属性値群を有する他クラスの生徒を決定する。つまり、学級決定部１６は、２人の生徒のうちの一方の生徒の属性値群を取得する。そして、学級決定部１６は、一方の生徒の属性値群と、他クラスの生徒の生徒情報が有する属性値群との類似度を算出し、当該類似度が最大の他クラスの生徒の生徒情報を取得する。
【０１１３】
（ステップＳ６２２）学級決定部１６は、２人の生徒のうちの他方の生徒と属性値群と類似度が最も大きい属性値群を有する他クラスの生徒を決定する。つまり、学級決定部１６は、２人の生徒のうちの他方の生徒の属性値群を取得する。そして、学級決定部１６は、他方の生徒の属性値群と、他クラスの生徒の生徒情報が有する属性値群との類似度を算出し、当該類似度が最大の他クラスの生徒の生徒情報を取得する。ステップＳ６２５に行く。
【０１１４】
（ステップＳ６２３）学級決定部１６は、２人の生徒のうちの一方の生徒と属性値群と類似度が最も大きい属性値群を有する他方の生徒と同一クラスの生徒を決定する（他方の生徒は除く）。つまり、学級決定部１６は、２人の生徒のうちの一方の生徒の属性値群を取得する。そして、学級決定部１６は、一方の生徒の属性値群と、他方の生徒と同一クラスの各生徒（他方の生徒は除く）の生徒情報が有する属性値群との類似度を算出し、当該類似度が最大の生徒の生徒情報を取得する。
【０１１５】
（ステップＳ６２４）学級決定部１６は、２人の生徒のうちの他方の生徒の属性値群と類似度が最も大きい属性値群を有する一方の生徒と同一クラスの生徒を決定する（一方の生徒は除く）。つまり、学級決定部１６は、２人の生徒のうちの他方の生徒の属性値群を取得する。そして、学級決定部１６は、他方の生徒の属性値群と、一方の生徒と同一クラスの各生徒（一方の生徒は除く）の生徒情報が有する属性値群との類似度を算出し、当該類似度が最大の生徒の生徒情報を取得する。
【０１１６】
（ステップＳ６２５）学級決定部１６は、算出した２つの類似度のうち大きな類似度に対応する２人の生徒を決定する。つまり、学級決定部１６は、ステップＳ６２１およびステップＳ６２２で算出した類似度のうち、大きい方の類似度の算出元になった２つの各属性値群を有する２つの生徒情報を取得する。または、学級決定部１６は、ステップＳ６２３およびステップＳ６２４で算出した類似度のうち、大きい方の類似度の算出元になった２つの各属性値群を有する２つの生徒情報を取得する。
【０１１７】
（ステップＳ６２６）学級決定部１６は、ステップＳ６２６で取得した２つの生徒情報に対応する学級識別子を入れ替える。ステップＳ６２７に行く。
【０１１８】
（ステップＳ６２７）学級決定部１６は、カウンタｉを１、インクリメントする。ステップＳ６１７に行く。
【０１１９】
（ステップＳ６２８）学級決定部１６は、ステップＳ６０６からステップＳ６２７の一連の動作の中で、クラスの入れ替えが発生したか否かを判断する。入れ替えが発生していればステップＳ６０６に戻り、入れ替えが発生していなければ処理を終了する。
【０１２０】
なお、図６、図７のフローチャートにおいて、タイムアウトにより処理を終了しても良い。つまり、図６、図７のフローチャートにおいて、例えば、相反する条件が存在する場合、処理が終了しないので、タイムアウトにより処理を終了しても良い。
【０１２１】
また、図３、または図６、７で説明した学級編成のアルゴリズムは、アルゴリズムの例であることは言うまでもない。学級編成装置１は、学級内条件と学級間条件、または学級内条件と学級間条件と生徒間条件を満たすように学級編成を行えば良い。なお、相反する条件が存在する場合、学級編成装置１は、すべての条件を満たすように学級編成を行えないことは言うまでもない。ただし、学級編成装置１は、必須の条件は、必ず満たすように学級編成を行うことは好適である。また、学級編成装置１は、条件に優先順位に従って、条件を適用し、優先順位が高い条件ほど、満たすように学級編成を行うことは好適である。
【０１２２】
以下、本実施の形態における学級編成装置１の具体的な動作について説明する。なお、以下の具体例において説明するアルゴリズムは、学級編成のアルゴリズムの一例である。
【０１２３】
今、学級編成装置１の生徒情報格納部１１は、図８に示す生徒情報管理表を保持している。生徒情報管理表は、「ＩＤ」「生徒情報」を有する２以上（通常、多数）のレコードを有する。「生徒情報」は「生徒識別子」「属性値群」を有する。「属性値群」は、２以上の属性値を有する。属性は「性別」「成績」「リーダー性の有無」「個別指導の必要性の有無」などである。
【０１２４】
また、学級内条件格納部１２は、図９に示す学級内条件管理表を保持している。学級内条件管理表は、「ＩＤ」「学級内条件」「スコア」「必須フラグ」「優先順位」を有する。また、学級間条件格納部１３は、図１０に示す学級間条件管理表を保持している。学級間条件管理表は、「ＩＤ」「学級間条件」「スコア」「必須フラグ」「優先順位」を有する。さらに、生徒間条件格納部１４は、図１１に示す生徒間条件管理表を保持している。生徒間条件管理表は、「ＩＤ」「生徒間条件」「スコア」「必須フラグ」「優先順位」を有する。なお、ここでは、「スコア」の値は、対応する条件が満たされる場合に加算されるスコアである。また、「必須フラグ」は、対応する条件が必須の条件であることを示す。さらに、「優先順位」は、条件の適用の優先順位である。「優先順位」の値が「０」である条件は、必須の条件であり、優先順位には無関係であることを示す。
【０１２５】
なお、図９から図１１において、レコードに、「スコア」「必須フラグ」「優先順位」が存在せず、条件のみでも良い。また、図１０のＮ、Ｍ、Ｘ、Ｙは、数値である。ＮとＸは、例えば「０」である。Ｍは、例えば、「７」である。Ｙは、例えば、「０．５」である。
【０１２６】
かかる状況において、ユーザが学級編成指示を入力した、とする。すると、受付部１５は、学級編成指示を受け付ける。
【０１２７】
次に、学級決定部１６の仮決定手段１６１は、例えば、図４のフローチャートに従って、生徒情報管理表内のエージェント（レコード）を、成績の順に、降順にソートする。ここで、仮決定手段１６１は、男女別に、エージェント（レコード）を、成績の順に、降順にソートする、とする。
【０１２８】
次に、仮決定手段１６１は、１学級の人数差が１人以下になるように、男子の任意のグループと、女子の任意のグループとを結びつけ、一つの学級にする。
【０１２９】
次に、学級決定部１６は、図９から図１１のうちの必須フラグが「１」の条件を読み出す。そして、上記のアルゴリズムにより、必須フラグが「１」の条件を満たすように、各生徒のクラスを変更していく。
【０１３０】
次に、上記のアルゴリズムにより、学級決定部１６は、図９から図１１のうちの優先順位が「１」の条件から順に読み出し、条件に合致するように各生徒のクラスを変更していく。かかる場合、上述したように、各生徒のクラスを移動する場合、スコアが最も高くなるクラスに移動する。
【０１３１】
そして、学級決定部１６は、生徒のクラスの移動が所定の条件を満たすまで（例えば、移動がなくなるまで）上記の処理を繰り返し、所定の条件を満たした段階で、処理を終了する。
【０１３２】
以上、本実施の形態によれば、適切な学級編成を短時間で行うことができる。
【０１３３】
また、本実施の形態によれば、優先順位に従って条件を適用し、２以上の条件を満たすように２以上の各生徒の学級を決定できる。また、本実施の形態によれば、必須の条件は必ず満たすように２以上の各生徒の学級を決定できる。
【０１３４】
また、本実施の形態によれば、各生徒情報をエージェントとして、成績のばらつき条件を満たすように、かつ全体人数条件を満たすように、各エージェントの学級を仮決定する仮決定手段と、各エージェントに対して、学級ごとに、他のエージェントが学級に存在する仮定で、１以上の学級内条件および１以上の学級間条件、または１以上の学級内条件および１以上の学級間条件および１以上の生徒間条件のうちの１以上の各条件を順次適用し、エージェントが存在する場合のスコアを算出するスコア算出手段と、スコア算出手段が算出したスコアが所定の条件を満たすほど高い学級に、各エージェントを移動させる学級変更手段と、学級変更手段によりエージェントの学級移動が所定の条件を満たすほど、移動が少なくなるまで、スコア算出手段および学級変更手段の処理を繰り返し行わせる制御手段とを具備する学級編成装置により、より適切な学級編成を短時間で行うことができる。
【０１３５】
なお、本実施の形態において、条件の種類は、学級内条件と学級間条件と生徒間条件とが存在したが、学級内条件と学級間条件のみでも良い。
【０１３６】
また、本実施の形態において、学級内条件、学級間条件、および生徒間条件は、それぞれ生徒情報格納部１１、学級内条件格納部１２、学級間条件格納部１３に格納されていたが、プログラム中に分散して存在していても良い。
【０１３７】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における学級編成装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、生徒を識別する生徒識別子と、当該生徒の成績を含む１以上の属性値とを有する２以上の生徒情報と、各学級内において満たす必要がある条件である１以上の学級内条件と、学級間において満たす必要がある条件である１以上の学級間条件とを格納しており、コンピュータを、前記１以上の学級内条件と前記１以上の学級間条件とを満たすように、２以上の各生徒の学級を決定する学級決定部と、前記学級決定部が決定した各生徒の学級を識別する学級識別子を、前記各生徒識別子と対応付けて蓄積する学級識別子蓄積部として機能させるためのプログラムである。
【０１３８】
また、記憶媒体に、生徒間の条件である１以上の生徒間条件をさらに格納しており、上記プログラムにおいて、前記学級決定部は、前記１以上の学級内条件と前記１以上の学級間条件と前記１以上の生徒間条件とを満たすように、２以上の各生徒の学級を決定するものとして、コンピュータを機能させることは好適である。
【０１３９】
また、上記プログラムにおいて、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の条件は、優先順位を有し、前記学級決定部は、前記優先順位に従って、条件を適用し、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件を満たすように、２以上の各生徒の学級を決定するものとして、コンピュータを機能させることは好適である。
【０１４０】
また、上記プログラムにおいて、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の条件は、必須の条件または必須ではない条件のいずれかであり、前記学級決定部は、前記必須の条件は、必ず満たすように、２以上の各生徒の学級を決定するものとして、コンピュータを機能させることは好適である。
【０１４１】
また、上記プログラムにおいて、前記１以上の学級内条件のうちの一の学級内条件は、各学級の全体人数に関する条件である全体人数条件であり、前記１以上の学級間条件のうちの一の学級間条件は、学級内の全員の生徒の成績の学級間のばらつきが閾値以内であるという条件である成績のばらつき条件であり、前記学級決定部は、各生徒情報をエージェントとして、前記成績のばらつき条件を満たすように、かつ前記全体人数条件を満たすように、各エージェントの学級を仮決定する仮決定手段と、各エージェントに対して、学級ごとに、他のエージェントが当該学級に存在する仮定で、前記１以上の学級内条件および前記１以上の学級間条件、または前記１以上の学級内条件および前記１以上の学級間条件および前記１以上の生徒間条件のうちの１以上の各条件を順次適用し、当該エージェントが存在する場合のスコアを算出するスコア算出手段と、前記スコア算出手段が算出したスコアが所定の条件を満たすほど高い学級に、各エージェントを移動させる学級変更手段と、前記学級変更手段によりエージェントの学級移動が所定の条件を満たすほど、移動が少なくなるまで、前記スコア算出手段および前記学級変更手段の処理を繰り返し行わせる制御手段とを具備するものとして、コンピュータを機能させることは好適である。
【０１４２】
また、図１２は、本明細書で述べたプログラムを実行して、上述した実施の形態の学級編成装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１２は、このコンピュータシステム３４０の概観図であり、図１３は、コンピュータシステム３４０の内部構成を示す図である。
【０１４３】
図１２において、コンピュータシステム３４０は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２を含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４とを含む。
【０１４４】
図１３において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＭＰＵ３４１３と、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３４１５とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１４５】
コンピュータシステム３４０に、上述した実施の形態の学級編成装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０１４６】
プログラムは、コンピュータ３４１に、上述した実施の形態の学級編成装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０１４７】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１４８】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１４９】
以上のように、本発明にかかる学級編成装置は、適切な学級編成を短時間で行うことができる。という効果を有し、学級編成装置等として有用である。
【符号の説明】
【０１５０】
１  学級編成装置
１１  生徒情報格納部
１２  学級内条件格納部
１３  学級間条件格納部
１４  生徒間条件格納部
１５  受付部
１６  学級決定部
１７  学級識別子蓄積部
１８  出力部
１６１  仮決定手段
１６２  スコア算出手段
１６３  学級変更手段
１６４  制御手段
【図１】
2012103842.tif 000003
【図２】
2012103842.tif 000004
【図３】
2012103842.tif 000005
【図４】
2012103842.tif 000006
【図５】
2012103842.tif 000007
【図６】
2012103842.tif 000008
【図７】
2012103842.tif 000009
【図８】
2012103842.tif 000010
【図９】
2012103842.tif 000011
【図１０】
2012103842.tif 000012
【図１１】
2012103842.tif 000013
【図１２】
2012103842.tif 000014
【図１３】
2012103842.tif 000015