(57)【要約】【課題】個体識別情報が直接的に得られなくなった個体が複数ある場合も、それら複数の個体も含めた動物の個体管理の続行を可能とする。【解決手段】体重取得部１０１は体重情報を取得し、個体ＩＤ読み取り部１０２は個体ＩＤの取得を試みる。個体ＩＤの取得が失敗した場合、マーキング部１０３は個体ごとに異なるパターンで豚２００にマーキング２０２を施し、格納処理部１０９はマーキング２０２のパターンＩＤと対応づけて体重情報を記憶部１０６に格納する。逆に、個体ＩＤの取得が成功した場合、格納処理部１０９は個体ＩＤと対応づけて体重情報を記憶部１０６に格納する。推定部１０７は、マーキング２０２が施された豚２００がどの個体かを推定して個体ＩＤとパターンＩＤを対応づける。推定は、過去に複数の個体について個体ＩＤと対応づけられた体重情報と、パターンＩＤと対応づけられた体重情報に基づく。【選択図】図１
2011135786.tif 000002
【特許請求の範囲】
【請求項１】
動物の体重を示す体重情報を取得する第１の取得手段と、
前記動物を個体として識別する個体識別情報を取得することができたか否かを示す識別可否情報を取得する第２の取得手段と、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができなかったことを示す第１の場合、個体ごとに異なるパターンで前記動物にマーキングを施すマーキング手段と、
前記第１の場合、前記動物に施された前記マーキングの前記パターンを識別するパターン識別情報と対応づけて、前記体重情報を記憶装置に格納し、前記識別可否情報が、前記動物の前記個体識別情報を取得することができたことを示す第２の場合、前記個体識別情報と対応づけて前記体重情報を前記記憶装置に格納する格納処理手段と、
過去に複数の個体について前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記パターン識別情報と対応づけられて前記記憶装置に格納された前記体重情報に基づいて、前記マーキングが施された前記動物が前記複数の個体のうちのどの個体であるかを推定し、推定した結果にしたがって前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する推定手段
を備えることを特徴とする自動体重選別装置。
【請求項２】
前記動物を撮像した画像から前記動物に前記マーキングが施されているか否かを判定し、前記動物に前記マーキングが施されていると判定した第３の場合はさらに当該マーキングのパターンを前記画像から識別して前記パターン識別情報を取得するパターン識別手段をさらに備え、
前記マーキング手段は、前記第１の場合のうち前記第３の場合ではないときに、前記動物に前記マーキングを施し、
前記格納処理手段は、
前記第１の場合と前記第３の場合の双方に該当するときには、前記パターン識別手段により取得された前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納し、
前記第１の場合のうち前記第３の場合ではないときには、前記マーキング手段が施した前記マーキングの前記パターンを示す前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納する
ことを特徴とする請求項１に記載の自動体重選別装置。
【請求項３】
前記推定手段が、
取得することができなかったと前記識別可否情報により示されている前記個体識別情報が割り当てられた個体である複数の識別不能化個体について、過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記複数の識別不能化個体それぞれの体重変化の許容範囲とに基づいて、前記マーキングが施された前記動物の前記体重が、前記複数の識別不能化個体のうちのいずれの前記許容範囲に含まれるかを調べるスクリーニング手段を備え、
前記マーキングが施された前記動物に該当する個体の候補を、当該動物の前記体重が前記許容範囲に含まれると前記スクリーニング手段により判断された前記識別不能化個体に絞り込んで、前記動物がどの個体であるかを推定する
ことを特徴とする請求項１または２に記載の自動体重選別装置。
【請求項４】
前記スクリーニング手段は、さらに、
前記複数の識別不能化個体に対応する前記個体識別情報と、前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報との間の複数通りの対応づけの仕方について、それぞれ、
前記複数の識別不能化個体について過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの体重の変化から予測される、前記複数の識別不能化個体それぞれの予測体重と、
前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報に対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの実測体重と
の間のずれを前記複数の識別不能化個体について総合した総合的なずれを求め、
前記推定手段は、前記複数通りの対応づけの仕方の中で前記総合的なずれが相対的に小さな対応づけの仕方にしたがって、前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する
ことを特徴とする請求項３に記載の自動体重選別装置。
【請求項５】
前記推定手段が、
前記第１の場合において取得することができなかった前記個体識別情報が割り当てられた個体である識別不能化個体の近親の個体を、個体間の血統関係を示す血統情報に基づいて特定する近親特定手段と、
特定された前記近親の個体の体重の変化の傾向に、前記パターン識別情報と対応づけられて前記記憶装置に格納されている前記体重情報の変化の傾向が適合する度合を判断するマッチング手段を備え、
前記マーキングが施された前記動物に該当する個体の候補を、前記マッチング手段による判断の結果に基づいて絞り込んで、前記動物がどの個体であるかを推定する
ことを特徴とする請求項１から４のいずれか１項に記載の自動体重選別装置。
【請求項６】
コンピュータに、
動物の体重を示す体重情報を取得する第１の取得ステップと、
前記動物を個体として識別する個体識別情報を取得することができたか否かを示す識別可否情報を取得する第２の取得ステップと、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができなかったことを示す第１の場合、個体ごとに異なるパターンで前記動物にマーキングを施すようマーキング装置を制御するマーキング制御ステップと、
前記第１の場合、前記動物に施された前記マーキングの前記パターンを識別するパターン識別情報と対応づけて、前記体重情報を記憶装置に格納する第１の格納処理ステップと、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができたことを示す第２の場合、前記個体識別情報と対応づけて前記体重情報を前記記憶装置に格納する第２の格納処理ステップと、
過去に複数の個体について前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記パターン識別情報と対応づけられて前記記憶装置に格納された前記体重情報に基づいて、前記マーキングが施された前記動物が前記複数の個体のうちのどの個体であるかを推定する推定ステップと、
推定した結果にしたがって前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する対応づけステップ
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動物の個体管理に関する。
【背景技術】
【０００２】
近年、大規模農場などにおいては、Radiofrequency Identification（ＲＦＩＤ）タグなどの電子標識（電子タグともいう）とコンピュータを利用して、家畜の個体管理が行われるようになってきた。
【０００３】
また、電子標識が脱落している家畜、または、電子標識が故障している家畜が通過した場合でも、その家畜の通過を検知することができ、かつその家畜に対して所定の対応を自動的に取ることが可能な、次のような電子標識システムが提案されている。
【０００４】
電子標識システムは、牛の存在を検出する検出器と、電子標識に記憶する牛の識別情報を読み取るリーダと、検出器からの信号の受信に基づくリーダからの信号に応じて、警報装置と記録装置を起動させる制御装置を備える。この電子標識システムによれば、正常な電子標識を装着する牛と、電子標識を落とした牛、あるいは、故障した電子標識を装着する牛の通過を把握することができる。そして、電子標識を落とした牛と故障した電子標識を装着する牛に対しては、その牛の通過を知らせる警報装置と牛にマーキングをする記録装置が起動されて、該当する牛を認識または確認することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−６５６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、個体識別情報が得られなくなった個体が複数あるとき、単にそれらの個体を「個体識別情報が得られない個体」として認識することが可能なだけでは、個体識別情報が得られない複数の個体間での区別ができない。よって、従来のシステムでは、個体識別情報が得られなくなった個体が複数あると、それらの複数の個体については個体管理が続行不能となってしまう。
【０００７】
そこで本発明は、個体識別情報が直接的に得られなくなった個体が複数ある場合にも、それら複数の個体も含めた動物の個体管理の続行を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
一態様による自動体重選別装置は、第１の取得手段、第２の取得手段、マーキング手段、格納処理手段および推定手段を備える。
前記第１の取得手段は、動物の体重を示す体重情報を取得する。また、前記第２の取得手段は、前記動物を個体として識別する個体識別情報を取得することができたか否かを示す識別可否情報を取得する。
【０００９】
そして、前記マーキング手段は、前記識別可否情報が、前記動物の前記個体識別情報を取得することができなかったことを示す第１の場合、個体ごとに異なるパターンで前記動物にマーキングを施す。
【００１０】
前記格納処理手段は、前記第１の場合、前記動物に施された前記マーキングの前記パターンを識別するパターン識別情報と対応づけて、前記体重情報を記憶装置に格納する。また、前記識別可否情報が、前記動物の前記個体識別情報を取得することができたことを示す第２の場合、前記格納処理手段は、前記個体識別情報と対応づけて前記体重情報を前記記憶装置に格納する。
【００１１】
前記推定手段は、過去に複数の個体について前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記パターン識別情報と対応づけられて前記記憶装置に格納された前記体重情報に基づいて、前記マーキングが施された前記動物が前記複数の個体のうちのどの個体であるかを推定する。そして、前記推定手段は、推定した結果にしたがって前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する。
【発明の効果】
【００１２】
上記の自動体重選別装置によれば、個体識別情報を取得することができない個体が複数あるとき、それら複数の個体は、個体ごとに異なるマーキングおよびパターン識別情報を介して、間接的に個体識別情報と対応づけられる。したがって、個体識別情報を取得することができなくなってしまった複数の個体についても、個体識別情報を取得することができていたときと同じ個体識別情報による一貫した個体管理を続行することが可能である。
【図面の簡単な説明】
【００１３】
【図１】自動体重選別装置の構成図である。
【図２】体重測定処理のフローチャートである。
【図３】体重テーブルの例を示す図である。
【図４】マーキングパターンテーブルの例を示す図である。
【図５】仮対応づけ処理のフローチャートである。
【図６】対応づけテーブルの例を示す図である。
【図７】対応づけ確定処理のフローチャートである。
【図８】属性テーブルの例を示す図である。
【図９】コンピュータの構成図である。
【発明を実施するための形態】
【００１４】
以下、実施形態について、図面を参照しながら詳細に説明する。以下では実施形態についての理解を容易とするために、農場における豚の管理を主な具体例として挙げるが、下記の実施形態は、豚以外の家畜にも適用可能である。
【００１５】
なお、「家畜」とは、農場で飼育される動物に限らず、研究施設などで飼育される実験動物なども含む。つまり、「家畜」とは、人間に飼育されている動物一般のことである。また、「家畜」には家禽も含む。
【００１６】
以下では、特に断らない限り「家畜」と同じ意味で「動物」という語を用いる。下記の実施形態の適用対象の動物の具体例は、例えば、豚、牛、山羊、羊、馬、駝鳥などであるが、もちろんその他の動物に下記の実施形態が適用されてもよい。
【００１７】
さて、図１は自動体重選別装置の構成図である。以下ではまず図１を参照して自動体重選別装置の構成と動作概要を説明し、その後、図２〜８を参照して処理の流れとデータ構成をより具体的に説明し、最後に図９と様々な変形例についても説明する。
【００１８】
自動体重選別装置は、「Auto-Sorting System（ＡＳＳ）」とも呼ばれる。図１に示す本実施形態の自動体重選別装置１００は、体重取得部１０１、個体Identification（ＩＤ）読み取り部１０２、マーキング部１０３、マーキング読み取り部１０４、制御部１０５、記憶部１０６および推定部１０７を有する。
【００１９】
また、制御部１０５は内部モジュールとして動作制御部１０８と格納処理部１０９を有し、推定部１０７は内部モジュールとしてスクリーニング部１１０と兄弟特定部１１１と兄弟間マッチング部１１２を有する。記憶部１０６は、属性テーブル１１３、体重テーブル１１４、マーキングパターンテーブル１１５、対応づけテーブル１１６およびその他の不図示の各種データを格納する。
【００２０】
また、本実施形態の適用対象の動物は豚２００である。図１には１頭の豚２００のみを図示しているが、例えば、１件の豚舎で約４００頭の豚２００が飼育されていてもよい。
なお、豚２００には予め耳標２０１が取り付けられており、耳標２０１には一意のＩＤが割り当てられている。耳標２０１に割り当てられたＩＤは、動物を個体として識別する個体識別情報の具体例であり、以下、本実施形態では「個体ＩＤ」という。具体的には、本実施形態の耳標２０１はＲＦＩＤタグであり、個体ＩＤはＲＦＩＤタグ内のメモリに記録されている。
【００２１】
また、詳しくは後述するように、豚２００にはカラースプレーでマーキング２０２が施されることがある。もちろん、マーキング２０２の施されない豚２００もいる。
続いて、自動体重選別装置１００についてさらに詳しく説明する。
【００２２】
図１では省略されているが、自動体重選別装置１００は、柵や壁などの囲いと、入り口ゲートと、出口ゲートを有する。豚２００は入り口ゲートから自動体重選別装置１００の囲いの中に入り、出口ゲートから出て行くことができる。
【００２３】
体重取得部１０１は、動物の体重を示す体重情報を取得する第１の取得手段の一例であり、具体的には、自動体重選別装置１００の囲いの中に設置された体重計である。したがって、入り口ゲートから自動体重選別装置１００の囲いの中に入った豚２００は、自然と体重取得部１０１の上に乗ることになる。すると、体重取得部１０１は、豚２００の体重を測定し、体重を示す体重情報を出力する。
【００２４】
また、自動体重選別装置１００は、豚舎内の適宜の位置に設置される。例えば、豚２００の習性を考慮して、自動体重選別装置１００は豚舎内の遊び場と餌場の間に設置されてもよい。すると、豚２００は食事のたびに自動体重選別装置１００を通過することになる。
【００２５】
ところで、名前に「選別」と含むとおり、自動体重選別装置１００は、体重取得部１０１が取得した豚２００の体重に応じて出口ゲートを制御することで、豚２００を選別することができる。例えば、「体重１００キログラム（ｋｇ）以上の豚を１０頭出荷する」という条件が設定された場合、自動体重選別装置１００は、次のように動作してもよい。
【００２６】
すなわち、体重取得部１０１が計測した体重が１００ｋｇ以上のときは、自動体重選別装置１００は、出荷用通路に通じる出口ゲートを開けてもよい。逆に、体重取得部１０１が計測した体重が１００ｋｇ未満のときは、自動体重選別装置１００は、出荷用通路ではなく餌場に通じる出口ゲートを開けてもよい。そして、体重が１００ｋｇ以上の豚が１０頭通過した後は、自動体重選別装置１００は、体重によらず、餌場に通じる出口ゲートを開けてもよい。
【００２７】
以上のように自動体重選別装置１００は、体重に応じて豚２００を自動的に選別することができる。さらに、近年では、体重による自動選別機能だけではなく、豚２００の個体管理も望まれるようになりつつある。
【００２８】
豚２００の個体管理ができれば、例えば、「特定の配合飼料を与えたときに、ある母豚から生まれた子豚たちは早く成長し、別の母豚から生まれた子豚たちは成長が遅い」といった事実がもしあれば、当該事実を示す実績データを得ることも可能になる。同様に、「特定の配合飼料を与えたときに、ある母豚から生まれた子豚たちは病気をしにくく、別の母豚から生まれた子豚たちは病気をしやすい」といった事実がもしあれば、当該事実を示す実績データも得られるであろう。
【００２９】
例えば上記のような実績データは、農場の経営者にとって、「経営効率の改善のためにはどの配合飼料を購入して、どの母豚の子豚を育てるのが有利なのか」という知見をもたらす有意義なデータである。よって、１頭ずつを人手で細かく管理できない大規模農場では特に、豚２００の個体管理を自動的に行い、データの自動的な蓄積と分析を可能とすることが今後ますます重要になっていくと予測される。
【００３０】
また、子豚１頭の発生原価は、母豚の年間飼育費を当該母豚が１年に産んだ子豚の数で割った値である。したがって、もし豚２００の個体管理ができないと、当該豚２００がどの母豚の子であるかも不明となるので、豚２００の正確な発生原価も不明となり、農場は丼勘定で経営されることになる。逆に、豚２００の個体管理ができれば、正確な原価管理が可能となるので、売上原価率も正確に計算することができ、農場の経営にとって有益な会計情報が正確に得られる。
【００３１】
さらに、自動給餌機を利用すれば、与えた餌の種類と量を豚２００ごとに自動的に記録することが可能となり、発生原価以外に豚２００の飼育にかかる原価要素も豚２００ごとに個別に管理することができるようになる。したがって、農家は豚２００ごとに正確な製造原価を把握することができるようになる。
【００３２】
このように、豚２００の自動的な個体管理が可能になると、品質管理および経営管理の面において様々な効果が得られると期待される。
そこで、豚２００の個体管理のために、豚２００には個体ＩＤを記録した耳標２０１が装着される。しかし、豚２００の動きは激しく、また、豚２００はストレスがかかると他の豚２００の耳や尻尾を噛むことがある。その結果、噛まれた豚２００の耳標２０１が脱落したり故障したりすることがある。経験的には、約３％の豚２００の耳標２０１が脱落、破損または故障する、とも言われている。
【００３３】
本実施形態の目的は、たとえ耳標２０１が脱落、破損または故障し、耳標２０１から直接的に個体ＩＤを読み取ることが不可能になったとしても、豚２００の個体管理を続行することができるようにすることである。耳標２０１の脱落、破損または故障にかかわらず豚２００の個体管理を続行することができれば、上記に例示したような実績データの精度も高まり、また、正確な原価管理も可能となるので、農場の経営に資するところ大である。
【００３４】
具体的には、上記の目的は、本実施形態において以下のようにして達成される。
豚２００が自動体重選別装置１００の囲いの中に入ってくると、上記のように体重取得部１０１が豚２００の体重を計測して体重情報（つまり体重測定値）を制御部１０５に出力する。すると、制御部１０５は、体重取得部１０１からの体重情報の入力を契機として、個体ＩＤ読み取り部１０２に個体ＩＤの読み取りを行わせ、読み取りが成功したか否かに応じた制御を実行する。
【００３５】
具体的には、本実施形態では、体重情報が体重取得部１０１から制御部１０５内の格納処理部１０９へ出力される。そして、格納処理部１０９は、体重情報が入力された日時を後の処理のために記憶し、さらに、体重情報が入力されたことを動作制御部１０８に通知する。すると、動作制御部１０８は当該通知を契機として、個体ＩＤ読み取り部１０２に対し、耳標２０１から個体ＩＤを読み取るよう命じる。
【００３６】
本実施形態の個体ＩＤ読み取り部１０２は、ＲＦＩＤリーダであり、動作制御部１０８からの命令にしたがって個体ＩＤの読み取りを試みる。以上の説明から明らかなように、本実施形態の耳標２０１はパッシブ型のＲＦＩＤタグであるが、実施形態によってはアクティブ型あるいはセミパッシブ型のＲＦＩＤタグが耳標２０１として用いられてもよい。また、個体ＩＤ読み取り部１０２と耳標２０１との間の通信に使われる電磁波の周波数や変調方式は、実施形態に応じて適宜選択することができる。
【００３７】
もし、耳標２０１が故障も破損もしておらず、脱落もせずに豚２００に正常に装着されていれば、個体ＩＤ読み取り部１０２は個体ＩＤの読み取りに成功し、読み取った個体ＩＤを動作制御部１０８に出力する。個体ＩＤ読み取り部１０２は、さらに、読み取りに成功したことを示す情報を明示的に動作制御部１０８に出力してもよい。
【００３８】
逆に、例えば耳標２０１が豚２００から脱落していたり故障または破損していたりする場合は、個体ＩＤ読み取り部１０２は個体ＩＤの読み取りに失敗する。そこで、個体ＩＤ読み取り部１０２は、個体ＩＤの読み取りに失敗したことを示す情報を動作制御部１０８に出力する。
【００３９】
なお、実施形態によっては、個体ＩＤ読み取り部１０２は、個体ＩＤの読み取りに失敗したときに何も出力しなくてもよい。この場合、動作制御部１０８は、個体ＩＤの読み取りを命じたにもかかわらず個体ＩＤ読み取り部１０２から一定時間内に返答がなければ、個体ＩＤ読み取り部１０２が個体ＩＤの読み取りに失敗したと認識することができる。
【００４０】
このように、動作制御部１０８は、個体ＩＤを取得することができたか否かを示す識別可否情報を、個体ＩＤ読み取り部１０２から明示的に取得してもよいし、暗黙的に取得してもよい。つまり、動作制御部１０８は、個体ＩＤの読み取りが成功した場合には個体ＩＤ自体の通知によって、個体ＩＤの読み取りが失敗した場合はタイムアウトの発生によって、それぞれ識別可否情報を暗黙的に認識し、取得することができる。以上のようにして、本実施形態では、識別可否情報を取得する第２の取得手段を、個体ＩＤ読み取り部１０２と動作制御部１０８が協働して実現することができる。
【００４１】
そして、識別可否情報が「個体ＩＤを取得することができた」と示す場合（つまり、個体ＩＤ読み取り部１０２が個体ＩＤの読み取りに成功した場合）、動作制御部１０８は次のように動作する。すなわち、動作制御部１０８は、格納処理部１０９に対し、個体ＩＤ読み取り部１０２から入力された個体ＩＤを通知し、格納処理部１０９が体重取得部１０１から取得した体重情報を当該個体ＩＤと対応づけて体重テーブル１１４に格納するよう、命令する。
【００４２】
すると、格納処理部１０９は命令にしたがって、個体ＩＤ読み取り部１０２により豚２００の耳標２０１から読み取られて動作制御部１０８から通知された個体ＩＤと対応づけて、豚２００の体重情報を、記憶部１０６内の体重テーブル１１４に格納する。なお、体重テーブル１１４の詳細は図３とともに後述するが、本実施形態では、格納処理部１０９は、個体ＩＤと体重情報に加えてさらに、体重情報が入力された日時を体重テーブル１１４に格納する。なお、上述のとおり格納処理部１０９は体重取得部１０１から体重情報が入力された日時を記憶するが、記憶されるこの日時は、換言すれば体重の測定日時である。
【００４３】
他方、識別可否情報が「個体ＩＤを取得することができなかった」と示す場合（つまり個体ＩＤ読み取り部１０２が個体ＩＤの読み取りに失敗した場合）、耳標２０１から直接的に豚２００の個体ＩＤを得ることで豚２００の個体管理を続行することはできない。そこで本実施形態では、耳標２０１から個体ＩＤが得られない豚２００を間接的に識別するために、マーキングが利用される。
【００４４】
すなわち、本実施形態のマーキング部１０３は、動作制御部１０８からの指示に応じて豚２００に色を吹きつけてマーキング２０２を施すカラースプレーである。本実施形態のマーキング部１０３は、複数の色を吹きつけることができる。
【００４５】
動作制御部１０８からの指示に応じてマーキング部１０３は、例えば、ある豚２００には赤色のマーキング２０２のみを施し、別の豚２００には黄色のマーキングのみを施し、さらに別の豚２００には赤色と黄色双方のマーキング２０２を施すこともできる。つまり、マーキング部１０３は、個体ＩＤを取得することができない複数の豚２００に対して、個体ごとに異なるパターンでマーキング２０２を施すことができる。
【００４６】
ここで、例えば、赤色のマーキング２０２のみが施された豚２００と、黄色のマーキングのみが施された豚２００と、赤色と黄色双方のマーキング２０２が施された豚２００は、互いに視覚的に区別可能である。よって、異なるパターンのマーキング２０２が施された豚２００同士は、画像認識処理によって自動的に識別することも可能である。また、視覚的に認識可能なマーキング２０２を利用することにより、例えば飼育員などの人間にとっても、耳標２０１が脱落、破損または故障している豚２００を目視により確認することができるので、便利である。
【００４７】
そして、マーキング２０２のパターンを、読み取れなくなった個体ＩＤと対応づけることができれば、マーキング２０２のパターンに基づいて間接的に豚２００の個体ＩＤを得ることが可能となる。つまり、豚２００の個体管理を続行することが可能となる。
【００４８】
したがって、本実施形態では、耳標２０１が脱落、故障または破損した豚２００についても、一貫した個体ＩＤによる個体管理を続行することを可能とするために、マーキング２０２のパターンと個体ＩＤの対応づけを推定部１０７が推定する。推定部１０７はさらに、推定結果を検証し、必要に応じて推定結果を修正してもよい。なお、上記対応づけは、具体的には、マーキング２０２のパターンを識別するパターン識別情報（以下「パターンＩＤ」という）と個体識別情報を対応づけるエントリを対応づけテーブル１１６に追加することで達成される。
【００４９】
推定部１０７が推定を行ってマーキング２０２のパターンと個体ＩＤを対応づけると、耳標２０１が脱落、故障または破損してマーキング２０２が施された豚２００についての個体管理も続行可能となる。
【００５０】
より具体的には、識別可否情報が「個体ＩＤを取得することができなかった」と示す場合（つまり個体ＩＤ読み取り部１０２が個体ＩＤの読み取りに失敗した場合）、動作制御部１０８は次のように動作する。すなわち、動作制御部１０８は、豚２００が既にマーキング２０２を施されているのか、それとも今回新たに耳標２０１から個体ＩＤが読み取れない状態に陥ったのかを判別するために、マーキング読み取り部１０４に対し次の（ａ１）と（ａ２）の処理を行うよう命令する。
【００５１】
（ａ１）豚２００を撮像すること。
（ａ２）撮像した画像に対して画像認識処理を行って、マーキング２０２の有無を判断し、マーキング２０２が存在すると判断した場合は、さらに、撮像した画像からマーキング２０２の色も識別すること。
【００５２】
マーキング読み取り部１０４は、動作制御部１０８の命令にしたがって上記の処理を行い、処理結果を動作制御部１０８に通知する。マーキング読み取り部１０４は、具体的には１台以上のカメラと、画像認識処理を行うプロセッサにより実現される。なお、プロセッサは、例えば、後述の図９のＣＰＵ３０１のような汎用的なプロセッサでもよいし、専用の画像処理プロセッサでもよい。
【００５３】
また、例えば、マーキング２０２が豚２００の右半身に施される実施形態においては、マーキング読み取り部１０４を実現するカメラは、豚２００の右半身を撮像することができる位置に設置される。自動体重選別装置１００の囲いの中に豚２００が動き回る余地がある場合などは、カメラは複数台でもよい。つまり、カメラの設置位置および台数は、マーキング部１０３の設置位置や自動体重選別装置１００の囲いの大きさに応じて、適宜決められる。
【００５４】
動作制御部１０８は、マーキング読み取り部１０４から処理結果として、マーキング２０２の有無を示す情報と、マーキング２０２がある場合は色を示す情報を受け取る。
もし、マーキング２０２がないことをマーキング読み取り部１０４から通知されると、動作制御部１０８は、図４とともに後述するマーキングパターンテーブル１１５を検索して、未使用の新たなマーキング２０２のパターンを探す。そして、動作制御部１０８は、見つけた新たなパターンで豚２００にマーキング２０２を施すように、マーキング部１０３に命令する。
【００５５】
すると、マーキング部１０３は、動作制御部１０８の命令にしたがって、豚２００に新たなパターンでマーキング２０２を施す。例えば、赤色と黄色を組み合わせたパターンが未使用の新たなパターンとして見つかれば、マーキング部１０３は、動作制御部１０８の命令にしたがって豚２００に赤色と黄色を吹きつける。このように新たなパターンのマーキング２０２を施すことで、耳標２０１からの個体ＩＤの読み取りが不可能な豚２００についても、今後、マーキング２０２を利用した識別が可能となり、ひいては、パターンＩＤと対応づけられた個体ＩＤによる管理も可能となる。
【００５６】
また、動作制御部１０８は、見つけた新たなパターンのパターンＩＤを格納処理部１０９に通知する。すると、格納処理部１０９は通知されたパターンＩＤと対応づけて、体重取得部１０１から取得した体重情報を体重テーブル１１４に格納する。なお、耳標２０１から個体ＩＤが読み取れた場合と同様に、本実施形態の格納処理部１０９はさらに、体重を測定した日時も体重テーブル１１４に格納する。
【００５７】
もし逆に、マーキング２０２があるということと、マーキング２０２の色（１色または複数色の組み合わせ）がマーキング読み取り部１０４から通知されると、動作制御部１０８は、通知された色を検索キーにしてマーキングパターンテーブル１１５を検索する。検索によって動作制御部１０８は、豚２００に施されたマーキング２０２のパターンを識別するパターンＩＤを取得する。
【００５８】
このように、本実施形態ではマーキング読み取り部１０４と動作制御部１０８が協働することで、マーキング２０２のパターンを識別するパターン識別情報を取得するパターン識別手段が実現される。しかし、実施形態によっては、マーキング読み取り部１０４の上記プロセッサがマーキングパターンテーブル１１５を検索してパターンＩＤを取得し、取得したパターンＩＤを動作制御部１０８に出力してもよい。
【００５９】
いずれにせよ、耳標２０１の脱落、故障または破損のために既に豚２００にマーキング２０２が施されていれば、動作制御部１０８はパターンＩＤを取得することができる。すると、動作制御部１０８は、取得したパターンＩＤを格納処理部１０９に通知する。
【００６０】
そして、格納処理部１０９は、通知されたパターンＩＤと対応づけて、体重取得部１０１から取得した体重情報を体重テーブル１１４に格納する。また、本実施形態では、格納処理部１０９はさらに体重を測定した日時も体重テーブル１１４に格納する。
【００６１】
このように、マーキング２０２が新たに施されたにせよ以前から施されているにせよ、格納処理部１０９は、個体ＩＤを取得することができない豚２００（つまりマーキング２０２のある豚２００）に関しては、体重情報をパターンＩＤと対応づける。
【００６２】
推定部１０７は、パターンＩＤと個体ＩＤとの対応づけを推定し、図６とともに後述する対応づけテーブル１１６に推定結果を記録する。また、推定部１０７は、推定結果を検証して修正してもよく、修正結果を対応づけテーブル１１６に反映することもできる。なお、推定は、過去に複数の個体について個体ＩＤと対応づけられて体重テーブル１１４に格納された体重情報と、推定対象の豚２００に施されたマーキング２０２のパターンＩＤと対応づけられて体重テーブル１１４に格納された体重情報に基づく。
【００６３】
本実施形態では、具体的には、推定部１０７は、推定のための内部モジュールとしてスクリーニング部１１０を有する。また、推定部１０７は、スクリーニング部１１０による推定結果の検証と修正（すなわち推定のやり直し）のための内部モジュールとして、兄弟特定部１１１と兄弟間マッチング部１１２を有する。
【００６４】
スクリーニング部１１０が行う処理は、具体的には図５とともに後述するが、概要は次のとおりである。すなわち、スクリーニング部１１０は、明らかに一意な対応づけが可能な場合は、パターンＩＤと個体ＩＤとの対応づけを確定させ、対応づけテーブル１１６に記録する。他方、明らかに一意な対応づけをすることができるわけではない場合は、スクリーニング部１１０は、間違っている可能性の高い対応づけの仕方をふるい落とし、最も適切と推測される対応づけの仕方を、対応づけテーブル１１６に仮に記録する。なお、スクリーニング部１１０は、以上の処理のために体重テーブル１１４を参照する。
【００６５】
また、兄弟特定部１１１と兄弟間マッチング部１１２が行う処理は、具体的には図７とともに後述するが、概要は次のとおりである。すなわち、兄弟特定部１１１は、対応づけテーブル１１６と属性テーブル１１３を参照して、パターンＩＤと仮に対応づけられている個体ＩＤが割り当てられた豚２００の兄弟を特定する。なお、以下では特に断らない限り、「兄弟」は「両親のうち少なくとも一方が共通する子供」の意味で用い、本実施形態では具体的には「兄弟」とは「母豚が共通の子供」を意味するものとする。
【００６６】
兄弟間マッチング部１１２は、体重テーブル１１４を参照し、パターンＩＤにより識別される豚２００と、当該豚２００の兄弟として兄弟特定部１１１により特定された他の豚２００との間で、成長の仕方が類似するか否かを調べるため、マッチング処理を行う。その結果、もし「アンマッチ」という結果が得られた場合は、兄弟間マッチング部１１２は、スクリーニング部１１０による最初の推定が間違っていた可能性を検討する。
【００６７】
つまり、兄弟間マッチング部１１２は、パターンＩＤと個体ＩＤのより良い対応づけの仕方が可能か否かを検討する。その結果、もし「より良い対応づけの仕方が可能」という結論が得られれば、兄弟間マッチング部１１２は、得られた結論にしたがってパターンＩＤと個体ＩＤの対応づけを修正し、修正結果を対応づけテーブル１１６に記録する。
【００６８】
以上のようにして推定部１０７によりパターンＩＤと個体ＩＤが適切に対応づけられると、豚２００に施されたマーキング２０２のパターンのパターンＩＤから、間接的に当該豚２００の個体ＩＤを取得することができるようになる。したがって、耳標２０１が脱落、破損または故障した場合でも、豚２００の個体管理を続行することが可能である。
【００６９】
続いて、図２〜８を参照して、上記で説明した自動体重選別装置１００の動作の詳細および各種テーブルの具体的データ形式について説明する。
図２は、体重測定処理のフローチャートである。例えば、上記のように豚２００が食事のたびに自動体重選別装置１００を通過する場合、豚２００は１日３食なので、自動体重選別装置１００は図２の体重測定処理を１日に３回行う。
【００７０】
まず、ステップＳ１０１で、動作制御部１０８は、図２の処理を行う自動体重選別装置１００が管理するすべての豚２００について体重測定が済んだか否かを判断する。例えば、１棟の豚舎に１台の自動体重選別装置１００が設置され、当該豚舎では４００頭の豚２００が飼育されているとすると、ステップＳ１０１で動作制御部１０８は、４００頭の豚２００すべての体重測定が済んだか否かを判断する。
【００７１】
すべての豚２００の体重測定が済んでいる場合、処理はステップＳ１１１に移行する。逆に、まだ体重測定が済んでいない豚２００が存在する場合（すなわち、食事のために自動体重選別装置１００をまだ通過していない豚２００が残っている場合）、処理はステップＳ１０２に移行する。
【００７２】
ステップＳ１０２で自動体重選別装置１００は、次の１頭の豚２００の体重測定がされるまで待機する。そして、次の１頭の豚２００が自動体重選別装置１００の囲いの中に入ってきて体重取得部１０１に乗ると、体重取得部１０１が当該豚２００の体重を測定する。
【００７３】
そして、体重取得部１０１は体重情報を格納処理部１０９に出力し、格納処理部１０９は体重情報および体重情報が入力された日時を記憶する。また、体重取得部１０１から体重情報が入力されたこと格納処理部１０９が動作制御部１０８に通知する。そして処理はステップＳ１０３に移行する。
【００７４】
すると、ステップＳ１０３で動作制御部１０８は、耳標２０１からの個体ＩＤの読み取りを個体ＩＤ読み取り部１０２に命令する。そして、個体ＩＤ読み取り部１０２は個体ＩＤの読み取りを試みる。
【００７５】
その結果、上記のとおり動作制御部１０８は識別可否情報を取得することができる。また、個体ＩＤ読み取り部１０２が個体ＩＤの読み取りに成功した場合、動作制御部１０８はさらに、読み取られた個体ＩＤも取得することができる。
【００７６】
そして、次のステップＳ１０４では、個体ＩＤの読み取りが成功したか否かを、動作制御部１０８が識別可否情報から判断する。識別可否情報が読み取り成功を示す場合、処理はステップＳ１０５に移行する。他方、識別可否情報が読み取り失敗を示す場合、処理はステップＳ１０６に移行する。
【００７７】
ステップＳ１０５で動作制御部１０８は、個体ＩＤ読み取り部１０２が読み取った個体ＩＤを格納処理部１０９に通知する。すると、格納処理部１０９は、個体ＩＤ読み取り部１０２により読み取られて動作制御部１０８を介して通知された個体ＩＤと対応づけて、ステップＳ１０２で記憶した体重情報および日時の情報を、体重テーブル１１４に記録する。
【００７８】
ここで、図３を参照して、体重テーブル１１４の具体例を説明する。本実施形態の体重テーブル１１４には、「ＩＤ」、「体重測定値」および「測定日時」の３つのフィールドがある。エントリによって、個体ＩＤがＩＤフィールドに格納されることもあり、パターンＩＤがＩＤフィールドに格納されることもある。体重測定値は、豚２００の体重を示す体重情報の一例であり、キログラム（ｋｇ）単位で示される。測定日時は豚２００の体重を測定した日時を示す。
【００７９】
例えば、２００９年１月１日の朝食の時間帯に自動体重選別装置１００が図２の体重測定処理を実行しているとき、「００００１」という個体ＩＤが割り当てられた豚２００が自動体重選別装置１００の囲いの中に入ってきたとする。そして、ステップＳ１０２で体重取得部１０１が当該豚２００の体重を７時１５分４２秒に測定し、測定の結果、体重が３０．２ｋｇだったとする。また、ステップＳ１０３で個体ＩＤ読み取り部１０２が当該豚２００から「００００１」という個体ＩＤの読み取りに成功したとする。
【００８０】
すると、ステップＳ１０５で格納処理部１０９は、「００００１」という個体ＩＤと「３０．２」（ｋｇ）という体重情報と、「２００９／１／１  ７：１５：４２」という日時を対応づけたエントリを体重テーブル１１４に追加する。こうして追加されたエントリが、図３では１番目のエントリとして例示されている。
【００８１】
同様に、図３には、図２のステップＳ１０５で追加される次の（ｂ１）〜（ｂ４）のようなエントリも例示されている。
（ｂ１）「００００２」という個体ＩＤの豚２００について、２００９年１月１日の朝食時から２００９年３月２日の朝食時までの体重を示すエントリ。
【００８２】
（ｂ２）「００００３」という個体ＩＤの豚２００について、２００９年１月１日の朝食時から２００９年３月１日の夕食時までの体重を示すエントリ。
（ｂ３）「００００４」および「００００５」という個体ＩＤの豚２００について、それぞれ２００９年１月１日の朝食時からの体重を示すエントリ。
【００８３】
（ｂ４）「００００６」という個体ＩＤの豚２００について、２００９年１月１日の朝食時から２００９年３月２日の朝食時までの体重を示すエントリ。
もちろん、体重テーブル１１４はその他の個別ＩＤの豚２００についての不図示のエントリをさらに含んでいてもよい。なお、図３において「ＩＤ」フィールドの値が「Ｐ」という文字から始まるエントリについては、図２のステップＳ１０８およびＳ１１０とあわせて後述する。
【００８４】
ここで、図２の説明に戻る。以上のようにしてステップＳ１０５で動作制御部１０８が体重テーブル１１４にエントリを追加すると、処理はステップＳ１０１に戻る。
また、耳標２０１から個体ＩＤが読み取れなかった場合、ステップＳ１０６で動作制御部１０８は、マーキング読み取り部１０４に対して豚２００の撮像と撮像した画像に対する画像認識処理を行うよう命令する。そして、マーキング読み取り部１０４は、命令にしたがって、豚２００を撮像し、画像認識処理を行い、処理結果を動作制御部１０８に報告する。
【００８５】
すると、次のステップＳ１０７で、動作制御部１０８は、マーキング２０２の読み取りに成功したか否か（つまり、マーキング２０２が存在するか否か）を、マーキング読み取り部１０４からの通知にしたがって判断する。つまり、動作制御部１０８は、現在自動体重選別装置１００内にいる豚２００が、以前から個体ＩＤの読み取り不能状態に陥っていてマーキング２０２の付与も済んでいる個体なのか、それとも今回新たに個体ＩＤの読み取り不能状態に陥った個体なのかを判断する。
【００８６】
具体的には、もしステップＳ１０６において、マーキング読み取り部１０４が、マーキング２０２が存在することとマーキング２０２の色（正確には、１色または複数色の組み合わせ）を動作制御部１０８に通知していれば、処理はステップＳ１０８に移行する。逆に、ステップＳ１０６において、マーキング読み取り部１０４が、マーキング２０２が存在しないことを動作制御部１０８に通知した場合は、処理はステップＳ１０９に移行する。
【００８７】
ステップＳ１０８で動作制御部１０８は、ステップＳ１０６でマーキング読み取り部１０４から通知された色を検索キーにしてマーキングパターンテーブル１１５を検索し、豚２００に施されたマーキング２０２のパターンを識別するパターンＩＤを取得する。
【００８８】
ここで、図４を参照して、マーキングパターンテーブル１１５の例を説明する。マーキングパターンテーブル１１５には、「パターンＩＤ」、「カラーリング」および「吹きつけ日時」の３つのフィールドがある。
【００８９】
パターンＩＤは、マーキング２０２のパターンを識別するパターン識別情報の一例である。また、本実施形態では、パターンＩＤは「Ｐ」の後に２桁の数字が続く形式であり、個体ＩＤは５桁の数字である。そのため、ある値がパターンＩＤなのか、それとも個体ＩＤなのか、ということは、値自体から判別可能である。
【００９０】
カラーリングは、赤、黄、緑、青の４色から１つ以上を選択するパターンを示す。すなわち、本実施形態では、カラーリングがマーキング２０２のパターンを示す。４色から１つ以上を選択するパターンは１５（＝２４−１）通りなので、図４のマーキングパターンテーブル１１５は１５個のエントリを含む。
【００９１】
例えば、自動体重選別装置１００が管理する豚２００が上記の例のように４００頭であり、経験的に４００頭のうち約１０頭の豚２００の耳標２０１が脱落、故障または破損することが判明しているとする。この場合、「多少の余裕を見て１５通りのカラーリングがあれば十分である」という予測に基づき、マーキング部１０３が使う染料あるいは顔料の色が４色と決められ、マーキングパターンテーブル１１５には４色に対応する１５個のエントリが予め用意される。
【００９２】
もちろん、実施形態に応じて、５色以上あるいは３色以下の色が使われてもよい。また、Ｃ通りの色が利用される場合、Ｃ通りの色の中から１つ以上を選択するパターンは（２Ｃ−１）通りあるが、マーキングパターンテーブル１１５には（２Ｃ−１）個未満のエントリのみがあってもよい。例えば、６色が使われる場合、４０（＜２６−１）個のエントリのみがマーキングパターンテーブル１１５にあってもよい。
【００９３】
吹きつけ日時は、パターンＩＤで識別されるパターン（すなわち「カラーリング」フィールドに示された色のパターン）でマーキング部１０３が豚２００にマーキング２０２を施した日時を示す。なお、吹き付け日時の初期値はＮＵＬＬである。
【００９４】
例えば、図４の例では、「Ｐ０５」というパターンＩＤにより識別されるパターンは、「赤・黄」というカラーリングであり、マーキング部１０３が赤色と黄色を互いに重ならないように豚２００に吹きつけるパターンである。また、「Ｐ０５」というパターンＩＤのエントリの吹きつけ日時はＮＵＬＬであることから、「Ｐ０５」というパターンＩＤで識別されるパターンでの吹きつけはまだ行われていないことが図４には例示されていることが読み取れる。なお、上記の説明で「互いに重ならないように」と述べたのは、マーキング読み取り部１０４による画像認識の精度を高めるためである。
【００９５】
ここで、図２の説明に戻る。例えば、ステップＳ１０６でマーキング読み取り部１０４が、画像認識処理の結果として「赤」という１色のみを認識したとすると、ステップＳ１０８で動作制御部１０８は、「赤」を検索キーにしてマーキングパターンテーブル１１５を検索する。すると、カラーリングが「赤」に一致するエントリが見つかる。具体的には、見つかったエントリのパターンＩＤは「Ｐ０１」である。
【００９６】
ステップＳ１０８ではさらに、動作制御部１０８が、上記のようにして見つかったパターンＩＤを格納処理部１０９に通知する。すると格納処理部１０９は、通知されたパターンＩＤと対応づけて、ステップＳ１０２で記憶した体重情報および日時の情報を、体重テーブル１１４に格納する。
【００９７】
ここで再び図３を参照すると、例えば、ＩＤが「Ｐ０１」で体重が７１．１（ｋｇ）で、測定日時が２００９年３月３日７時１７分４９秒のエントリは、以上のようにしてステップＳ１０８で体重テーブル１１４に追加されたものである。同様に、「ＩＤ」フィールドにパターンＩＤが格納されているエントリのうち、パターンＩＤごとのグループの中で測定日時が２番目以降のエントリは、ステップＳ１０８で追加されたものである。
【００９８】
さて、再び図２の説明に戻る。以上のようにしてステップＳ１０８で格納処理部１０９が体重テーブル１１４にエントリを追加すると、処理はステップＳ１０１に戻る。
また、ステップＳ１０９で動作制御部１０８は、図４のマーキングパターンテーブル１１５を検索して、未使用の新たなマーキング２０２のパターンを探す。具体的には、動作制御部１０８は、吹き付け日時がＮＵＬＬのエントリのうち任意の１つを選択することができる。
【００９９】
そして、動作制御部１０８は、選択したエントリにおいて、吹き付け日時に現在日時を設定する。さらに、動作制御部１０８は、選択したエントリのカラーリングをマーキング部１０３に通知し、当該カラーリングが示すパターンで豚２００にマーキング２０２を施すよう命令する。
【０１００】
例えば、マーキングパターンテーブル１１５が図４に例示した状態のときにステップＳ１０９が実行されると、動作制御部１０８は、吹き付け日時がＮＵＬＬのエントリの中から、パターンＩＤが「Ｐ０４」のエントリを選択してもよい。当該エントリのカラーリングは「青」であるから、マーキング部１０３は青色１色のみを豚２００に吹きつける。こうして、今まで他の豚２００には使われていない新たなパターンによるマーキング２０２が、現在自動体重選別装置１００内にいる当該豚２００に対して施される。
【０１０１】
すると、次のステップＳ１１０で、動作制御部１０８は、ステップＳ１０９で見つけた新たなパターンのパターンＩＤを格納処理部１０９に通知する。すると、格納処理部１０９は、通知されたパターンＩＤに対応づけて、ステップＳ１０２で記憶した体重情報および日時の情報を、体重テーブル１１４に格納する。
【０１０２】
なお、ステップＳ１０９における吹きつけとステップＳ１１０は同時に行われてもよい。あるいは、ステップＳ１１０が吹きつけの前に行われてもよい。いずれにしろ、ステップＳ１０９とＳ１１０の終了後、処理はステップＳ１０１に戻る。
【０１０３】
また、ステップＳ１１１で制御部１０５は、図５に示す仮対応づけ処理を行うよう推定部１０７に命令し、推定部１０７のスクリーニング部１１０が仮対応づけ処理を行う。そして、図２の体重測定処理が終了する。
【０１０４】
図５は、仮対応づけ処理のフローチャートである。
ステップＳ２０１でスクリーニング部１１０は、今回新たに読み取り不能に陥った個体ＩＤの集合を求める。なおここで「今回新たに」とは、「現在実行中の図５の仮対応づけ処理をステップＳ１１１で呼び出した図２の体重測定処理の開始後に」という意味である。また、ステップＳ２０４などで言及する「前回」とは、「現在実行中の図５の仮対応づけ処理をステップＳ１１１で呼び出した図２の体重測定処理の１回前に実行された図２の体重測定処理の実行時」という意味である。
【０１０５】
例えば、上記のように豚２００が３食を摂るたびに図２の処理が行われる実施形態において、２００９年３月２日の朝食時に図２の処理が実行される場合を例に説明すると以下のとおりである。すなわち、「今回」とは、「２００９年３月２日の朝食時の図２の処理の実行中に」という意味であり、「前回」とは、「２００９年３月１日の夕食時の図２の処理の実行中に」という意味である。したがって、この例のステップＳ２０１でスクリーニング部１１０は、２００９年３月１日の夕食時までは読み取れていたのに２００９年３月２日の朝食時には読み取れなくなってしまった個体ＩＤの集合を求める。
【０１０６】
なお、ステップＳ２０１においてスクリーニング部１１０は、体重テーブル１１４を参照することで上記集合を得ることができる。
例えば、スクリーニング部１１０は、図５の仮対応づけ処理を終了するたびに記憶部１０６上の記憶領域を適宜更新し、直近の２回の仮対応づけ処理の終了日時（換言すれば、直近の２回の体重測定処理の終了日時）を示す情報を記憶部１０６に格納させてもよい。すると、スクリーニング部１１０は、ステップＳ２０１の実行時に、記憶部１０６から、前回と前前回の体重測定処理の終了日時を取得することができる。
【０１０７】
スクリーニング部１１０は、体重テーブル１１４を参照して、個体ＩＤごとに、下記の（ｃ１）および（ｃ２）の条件が成立するか否かを調べる。下記の（ｃ１）および（ｃ２）の条件が成立する個体ＩＤがあれば、当該個体ＩＤは今回新たに読み取り不能に陥った個体ＩＤである。
【０１０８】
（ｃ１）当該個体ＩＤに関して、前前回の体重測定処理の終了日時よりも後の日時を「測定日時」フィールドに含むエントリが存在する。
（ｃ２）しかし、当該個体ＩＤに関して、前回の体重測定処理の終了日時よりも後の日時を「測定日時」フィールドに含むエントリは存在しない。
【０１０９】
例えば、２００９年３月２日の朝食時に図２の処理が実行される場合、図３の例では、「００００３」という個体ＩＤが、今回新たに読み取り不能に陥った個体ＩＤとして検出される。同様に、２００９年３月２日の昼食時に図２の処理が実行される場合、図３の例では、「００００２」と「００００６」という個体ＩＤが、今回新たに読み取り不能に陥った個体ＩＤとして検出される。
【０１１０】
スクリーニング部１１０は、今回新たに読み取り不能に陥った個体ＩＤの集合を以上のようにしてステップＳ２０１で求めた後、次のステップＳ２０２で、求めた集合の大きさが０か、１か、２以上かを判断する。
【０１１１】
集合の大きさが０の場合、今回新たに読み取り不能に陥った個体ＩＤはないので、推定の対象が存在しない。したがって、図５の仮対応づけ処理は終了する。
また、集合の大きさが１の場合、処理はステップＳ２０３に移行し、集合の大きさが２以上の場合、処理はステップＳ２０４に移行する。
【０１１２】
ステップＳ２０３でスクリーニング部１１０は、今回新たに読み取り不能に陥った個体ＩＤを、今回新たにマーキングしたパターンのパターンＩＤと対応づける。ステップＳ２０３が実行される場合、今回新たに読み取り不能に陥った個体ＩＤは１つしかない。したがって、当然、今回新たにマーキングしたパターンも１通りしかない。
【０１１３】
そして、唯一の個体ＩＤと唯一のパターンＩＤの間の対応づけは、当然ながら１通りしかない。よって、ステップＳ２０３でスクリーニング部１１０は、疑問の余地なく一意な対応づけを確定して対応づけテーブル１１６に記録することができる。
【０１１４】
ここで、今回新たに読み取り不能に陥った唯一の個体ＩＤは、ステップＳ２０１で取得済みである。また、スクリーニング部１１０は、記憶部１０６に格納した前回の体重測定処理の終了日時よりも後の日時を「吹きつけ日時」フィールドに含むエントリを、図４のマーキングパターンテーブル１１５において検索することで、上記の唯一のパターンＩＤを得られる。
【０１１５】
したがって、ステップＳ２０３においてスクリーニング部１１０は、得られた唯一の個体ＩＤと唯一のパターンＩＤを対応づけて対応づけテーブル１１６に格納することができる。
【０１１６】
ここで、図６を参照して、対応づけテーブル１１６の例を説明する。対応づけテーブル１１６には、「パターンＩＤ」、「個体ＩＤ」、「対応づけ日時」および「対応づけ状態」の４つのフィールドがある。また、図６には、対応づけテーブル１１６の２つの時点における状態を、それぞれ参照符号「１１６ａ」と「１１６ｂ」で示してある。
【０１１７】
対応づけテーブル１１６において、パターンＩＤはマーキングのパターンを識別するＩＤであり、個体ＩＤは豚２００を個体として識別するＩＤである。また、対応づけ日時は、パターンＩＤと個体ＩＤの対応づけが行われた日時を示し、具体的には、図５のステップＳ２０３、Ｓ２０６、Ｓ２１０または後述の図７のステップＳ３１７の実行日時を示す。
【０１１８】
そして、対応づけ状態は、本実施形態では「確定」または「仮」という値をとる。なお、「確定」は、パターンＩＤと個体ＩＤとの対応づけが確定されたことを示し、「仮」は、パターンＩＤと個体ＩＤが仮に対応づけられていることを示す。
【０１１９】
例えば、２００９年３月２日の朝食時に図２の体重測定処理が行われ、図２のステップＳ１１１から図５の仮対応づけ処理が呼び出されたとする。また、２００９年３月２日の朝食時に新たに読み取り不能に陥った個体ＩＤは、図３に示す「００００３」のみであったとする。
【０１２０】
すると、スクリーニング部１１０は、図５のステップＳ２０２で集合の大きさが１であると判断し、ステップＳ２０３の処理を実行する。ここで、２００９年３月２日の朝食時に新たにマーキングしたパターンは、図４によれば、「Ｐ０１」というパターンＩＤで識別される、「赤」のカラーリングのパターンである。
【０１２１】
したがって、ステップＳ２０３でスクリーニング部１１０は、「Ｐ０１」というパターンＩＤと「００００３」という個体ＩＤを対応づけるエントリを対応づけテーブル１１６に追加する。なお、ステップＳ２０３での対応づけは、上記のとおり一意に確定可能である。したがって、スクリーニング部１１０は、追加するエントリの対応づけ状態の値を「確定」と設定する。また、スクリーニング部１１０は、ステップＳ２０３を実行しているときの現在日時を、追加するエントリの対応づけ日時として設定する。
【０１２２】
図６には、２００９年３月２日の朝食時より前には読み取り不能に陥った個体ＩＤがまったく存在しなかった場合における、２００９年３月２日の朝食時のステップＳ２０３の実行後の対応づけテーブル１１６の状態を、対応づけテーブル１１６ａとして示してある。すなわち、図６の対応づけテーブル１１６ａの例は、２００９年３月２日の朝食時のステップＳ２０３の実行時刻が８時５分１５秒であることを示している。
【０１２３】
ここで、図５の説明に戻る。上記のようにしてスクリーニング部１１０がステップＳ２０３で一意な対応づけを対応づけテーブル１１６に記録した場合、そこで図５の仮対応づけ処理も終了する。
【０１２４】
他方、スクリーニング部１１０は、ステップＳ２０２で集合の大きさが２以上であると判定した場合、ステップＳ２０４で、制約条件を満たす個体ＩＤとパターンＩＤの組み合わせを求める。ステップＳ２０４の制約条件は、間違っている可能性の高い対応づけの仕方をふるい落とすための条件であり、具体的には実施形態に応じて様々に定めることができる。
【０１２５】
例えば、制約条件は、過去の体重情報と体重変化の許容範囲に基づくものでもよい。具体的には、本実施形態の制約条件は「前回よりも今回の方が体重が重い」という条件である。もちろん、豚２００は、食事だけでなく排泄もするので、体重が単調増加するわけではない。しかし、「少なくとも前回の食事前に計測した体重よりは、今回の食事の直前に計測した体重の方が多い」と経験的に判明している場合には、「前回よりも今回の方が体重が重い」という制約条件が好適である。
【０１２６】
あるいは、実施形態によっては、下記（ｄ１）〜（ｄ４）のうちの１つ、または（ｄ１）〜（ｄ４）のうちの２つ以上の任意の組み合わせが、制約条件として利用されてもよい。
（ｄ１）今回の体重は前回の体重のＴ１％を超える。
（ｄ２）今回の体重は前回の体重のＴ２％以下である。
（ｄ３）今回の体重から前回の体重を引いた値は、Ｔ３（ｋｇ）より大きい。
（ｄ４）今回の体重から前回の体重を引いた値は、Ｔ４（ｋｇ）以下である。
【０１２７】
上記（ｄ１）〜（ｄ４）における閾値Ｔ１〜Ｔ４は、例えば、複数の豚２００の体重変化を観察した結果から、実施形態に応じた適宜の値に設定することが望ましい。なお、これら（ｄ１）〜（ｄ４）の例に限らず、閾値との比較は、実施形態により「閾値を超えるか、それとも閾値以下か」でもよいし、「閾値以上か、それとも閾値未満か」でもよく、適宜方針を定めることができる。
【０１２８】
以下、ステップＳ２０４において「前回よりも今回の方が体重が重い」という制約条件が利用される場合について、より具体的に説明する。なお、「前回よりも今回の方が体重が重い」という制約条件は、換言すれば、Ｔ１＝１００と設定された（ｄ１）の場合であるとも言えるし、Ｔ３＝０と設定された（ｄ３）の場合であるとも言える。
【０１２９】
ここで、説明の便宜上、次の（ｅ１）〜（ｅ４）のような表記を用いることにする。
（ｅ１）ある個体ＩＤ・ｐｉｇＩＤは、今回新たに読み取り不能に陥った個体ＩＤである。
（ｅ２）あるパターンＩＤ・ｍａｒｋＩＤは、今回新たにマーキングされたパターンのパターンＩＤである。
【０１３０】
（ｅ３）パターンＩＤ・ｍａｒｋＩＤに対応づけられて今回体重テーブル１１４に記録された体重を、ｗｃｕｒ（ｍａｒｋＩＤ）とする。
（ｅ４）個体ＩＤ・ｐｉｇＩＤに対応づけられて前回体重テーブル１１４に記録された体重を、ｗｐｒｅｖ（ｐｉｇＩＤ）とする。
【０１３１】
すると、「個体ＩＤ・ｐｉｇＩＤとパターンＩＤ・ｍａｒｋＩＤの組み合わせが、『前回よりも今回の方が体重が重い』という制約条件を満たす」とは、「ｗｐｒｅｖ（ｐｉｇＩＤ）＜ｗｃｕｒ（ｍａｒｋＩＤ）」という意味である。したがって、本実施形態においては、ステップＳ２０４でスクリーニング部１１０が、「ｗｐｒｅｖ（ｐｉｇＩＤ）＜ｗｃｕｒ（ｍａｒｋＩＤ）」という制約条件を満たす個体ＩＤ・ｐｉｇＩＤとパターンＩＤ・ｍａｒｋＩＤの組み合わせを求める。
【０１３２】
場合によっては、１つの個体ＩＤに対して、制約条件を満たすパターンＩＤが１つしか見つからないこともあるし、制約条件を満たすパターンＩＤが複数見つかることもある。また、例外的に、１つの個体ＩＤに対して、制約条件を満たすパターンＩＤが１つも見つからないこともありうる。別の観点から換言すれば、１つのパターンＩＤに対して、制約条件を満たす個体ＩＤは、１つだけ見つかるかもしれないし、複数見つかるかもしれないし、例外的に見つからないこともありうる。
【０１３３】
例えば、２００９年３月２日の昼食時に図２の体重測定処理が行われ、図２のステップＳ１１１から図５の仮対応づけ処理が呼び出されたとする。また、２００９年３月２日の昼食時に新たに読み取り不能に陥った個体ＩＤは、図３に示す「００００２」と「００００６」の２つであったとする。
【０１３４】
すると、スクリーニング部１１０は、図５のステップＳ２０２で集合の大きさが２であると判断し、ステップＳ２０４の処理を実行する。ここで、２００９年３月２日の昼食時に新たにマーキングしたパターンは、図４によれば、「Ｐ０２」というパターンＩＤで識別される、「黄」のカラーリングのパターンと、「Ｐ０３」というパターンＩＤで識別される、「緑」のカラーリングのパターンのパターンである。
【０１３５】
ここで、図３によれば、「００００２」という個体ＩＤに対応づけられて前回（すなわち２００９年３月２日の朝食時に）記録された体重ｗｐｒｅｖ（００００２）は７３．５（ｋｇ）である。同様に、「００００６」という個体ＩＤに対応づけられて前回記録された体重ｗｐｒｅｖ（００００６）は６６．８（ｋｇ）である。
【０１３６】
また、図３によれば、「Ｐ０２」というパターンＩＤに対応づけられて今回記録された体重ｗｃｕｒ（Ｐ０２）は、６７．３（ｋｇ）である。そして、「Ｐ０３」というパターンＩＤに対応づけられて今回記録された体重ｗｃｕｒ（Ｐ０３）は、７３．９（ｋｇ）である。
【０１３７】
以上から、ステップＳ２０４においてスクリーニング部１１０は次の（ｆ１）〜（ｆ４）のように判断する。
（ｆ１）ｗｐｒｅｖ（００００２）＜ｗｃｕｒ（Ｐ０２）ではないので、「００００２」と「Ｐ０２」の組み合わせは制約条件を満たさない。
（ｆ２）ｗｐｒｅｖ（００００２）＜ｗｃｕｒ（Ｐ０３）なので、「００００２」と「Ｐ０３」の組み合わせは制約条件を満たす。
【０１３８】
（ｆ３）ｗｐｒｅｖ（００００６）＜ｗｃｕｒ（Ｐ０２）なので、「００００６」と「Ｐ０２」の組み合わせは制約条件を満たす。
（ｆ４）ｗｐｒｅｖ（００００６）＜ｗｃｕｒ（Ｐ０３）なので、「００００６」と「Ｐ０３」の組み合わせは制約条件を満たす。
【０１３９】
つまり、ステップＳ２０１で求めた集合の大きさをＱとすると、ステップＳ２０４でスクリーニング部１１０は、Ｑ２通りの組み合わせがそれぞれ制約条件を満たすか否かを調べる。その結果、スクリーニング部１１０は、制約条件を満たさない組み合わせをふるい落とし、制約条件を満たす組み合わせを選び出す。
【０１４０】
すると、次のステップＳ２０５で、スクリーニング部１１０は、ステップＳ２０４で求めた組み合わせの中に、一意に決定可能な組み合わせがあるか否かを判定する。つまり、ある個体ＩＤに対して制約条件を満たすパターンＩＤが１つだけ存在するか、または、あるパターンＩＤに対して制約条件を満たす個体ＩＤが１つだけ存在する場合、当該個体ＩＤと当該パターンＩＤの組み合わせは、一意に決定可能な組み合わせである。
【０１４１】
例えば、上記の例では、（ｆ１）と（ｆ２）より、「００００２」という個体ＩＤに対して制約条件を満たすパターンＩＤは「Ｐ０３」のみである。よって、スクリーニング部１１０はステップＳ２０５において、「一意に決定可能な組み合わせがある」と判定する。
【０１４２】
そして、ステップＳ２０５で、「一意に決定可能な組み合わせがある」と判定された場合、処理はステップＳ２０６に移行する。他方、「一意に決定可能な組み合わせはない」と判定された場合、処理はステップＳ２０７に移行する。
【０１４３】
ステップＳ２０６でスクリーニング部１１０は、一意に決定可能な各組み合わせを、仮の対応づけとして対応づけテーブル１１６に記録する。なお、ステップＳ２０６では、ステップＳ２０５で見つかった組み合わせだけではなく、連鎖的に一意に決定される組み合わせがもしあれば、当該組み合わせも対応づけテーブル１１６に記録される。
【０１４４】
例えば、上記（ｆ１）〜（ｆ４）の例では、「００００２」という個体ＩＤに対して制約条件を満たすパターンＩＤは「Ｐ０３」のみなので、スクリーニング部１１０は、まず「００００２」と「Ｐ０３」の組み合わせを「一意に決定可能である」と判断する。すると、「Ｐ０３」というパターンＩＤと「００００６」という個体ＩＤとの組み合わせの可能性が消える。その結果、連鎖的に、「００００６」という個体ＩＤと対応づけ可能なパターンＩＤは、一意に「Ｐ０２」に限定される。
【０１４５】
スクリーニング部１１０は、上記のようにして連鎖的に一意に決定される組み合わせがあるか否かを確認する。そして、もしそのような組み合わせがあれば、スクリーニング部１１０は、当該組み合わせも対応づけテーブル１１６に記録する。
【０１４６】
例えば、（ｆ１）〜（ｆ４）の例は、上記のとおり２００９年３月２日の昼食時に図２の体重測定処理が行われた場合の例である。このとき、スクリーニング部１１０はステップＳ２０６において、図６の対応づけテーブル１１６ｂに示すように、２つのエントリを追加する。
【０１４７】
すなわち、スクリーニング部１１０は、「００００２」という個体ＩＤと「Ｐ０３」というパターンＩＤの組み合わせに対して「仮」という対応づけ状態を設定したエントリを対応づけテーブル１１６に追加する。さらに、スクリーニング部１１０は、「００００６」という個体ＩＤと「Ｐ０２」というパターンＩＤの組み合わせに対して「仮」という対応づけ状態を設定したエントリを対応づけテーブル１１６に追加する。
【０１４８】
なお、図６の例によれば、２００９年３月２日の昼食時のステップＳ２０６の実行時刻が１３時２分３０秒なので、以上のようにして追加された２つのエントリの対応づけ日時は、２００９年３月２日１３時２分３０秒と設定されている。
【０１４９】
また、本実施形態では、制約条件は絶対的な条件としてではなく、推定の手がかりの一つとして使われるので、一意に決定可能な対応づけであっても後に修正される余地がある。そのため、ステップＳ２０６では、対応づけ状態として「確定」ではなく「仮」が設定される。
【０１５０】
以上のようにして、一意に決定可能なすべての組み合わせについて、スクリーニング部１１０がステップＳ２０６において対応づけテーブル１１６へのエントリの追加を行うと、処理はステップＳ２０７へと移行する。
【０１５１】
ステップＳ２０７でスクリーニング部１１０は、今回新たにマーキングしたパターンの中で、まだ個体ＩＤと対応づけられていないものがあるか否かを判断する。そして、まだ個体ＩＤと対応づけられていないパターンＩＤが残っていれば、処理はステップＳ２０８に移行する。他方、Ｑ個のパターンＩＤのすべてがステップＳ２０６において個体ＩＤと対応づけられていれば、図５の仮対応づけ処理は終了する（ここで、ＱはステップＳ２０４の説明で定義したとおり、ステップＳ２０１で求めた集合の大きさである）。
【０１５２】
なお、ステップＳ２０５で、「一意に決定可能な組み合わせがない」と判断されて処理がステップＳ２０７に移行した場合は、当然、Ｑ個のパターンＩＤのすべてが、まだ個体ＩＤと対応づけられずに残っているので、処理は必ずステップＳ２０８へ移行する。他方、ステップＳ２０６の実行後にステップＳ２０７が実行される場合は、場合によってはＱ個の個体ＩＤとＱ個のパターンＩＤとの間の対応づけがすべてステップＳ２０６で実行済みということもありうる。
【０１５３】
さて、ステップＳ２０８以降の処理は、スクリーニング部１１０が、一意には決定することができなかった個体ＩＤとパターンＩＤとの組み合わせの中から、最も適切と推定される組み合わせを選択し、記録する処理である。
【０１５４】
具体的には、ステップＳ２０８でスクリーニング部１１０は、まだマーキングのパターンと対応づけられていない各個体について、前回までの体重増加傾向から今回の体重を予測する。ここで、ステップＳ２０８における予測について説明する便宜上、次の（ｇ１）〜（ｇ３）のような表記を用いることにする。
【０１５５】
（ｇ１）ステップＳ２０１で求めた、今回新たに読み取り不能に陥った個体ＩＤのうち、まだパターンＩＤと対応づけられていないものの集合をα＝｛ｐｉｇＩＤ１，……，ｐｉｇＩＤＵ｝とする。ステップＳ２０５〜Ｓ２０７より、当然、２≦Ｕ≦Ｑである。
【０１５６】
（ｇ２）個体ＩＤがｐｉｇＩＤｊの豚２００の、日齢がａｇｅのときの体重が、ある関数ｆｊ（ａｇｅ）を用いてモデル化されるとする（１≦ｊ≦Ｕ）。関数ｆｊ（ａｇｅ）は、実施形態に応じて任意であり、例えば、多項式、Brodyの成長曲線、Logistic曲線、Gompertzの成長曲線、Bertalanffyの成長曲線、Richardsの成長曲線などでもよい。関数ｆｊ（ａｇｅ）は、１つ以上のパラメタを含む。
【０１５７】
（ｇ３）個体ＩＤがｐｉｇＩＤｊの豚２００の日齢をａｇｅｊとする。なお、本実施形態では１日３回体重測定が行われるので、日齢ａｇｅｊは整数ではなく小数で表現されるが、豚２００の正確な出生時刻が不明な場合は、出生時刻を適宜仮定して日齢を小数で表現すればよい。また、本実施形態では、「例えば１時間程度の微小時間Δａｇｅでの体重の変化は無視して構わない程度である」と仮定している。よって、スクリーニング部１１０は、属性テーブル１１３を参照することで、例えばステップＳ２０８の実行時点での日齢を、ａｇｅｊとして算出することができる。
【０１５８】
続いて、以上の（ｇ１）〜（ｇ３）の表記を用いてステップＳ２０８の処理について説明する。ステップＳ２０８でスクリーニング部１１０は、１≦ｊ≦Ｕなる各ｊについて、日齢ａｇｅｊを算出し、関数ｆｊ（ａｇｅ）のパラメタを推定し、推定したパラメタを用いて日齢ａｇｅｊにおける体重ｆｊ（ａｇｅｊ）を算出する。
【０１５９】
詳しくは図８とともに後述するが、属性テーブル１１３には、各豚２００の個体ＩＤと対応づけて、当該豚２００の出生日または出生日時が記録されている。したがって、スクリーニング部１１０は、（ｇ３）に述べたようにして日齢ａｇｅｊを算出することができる。
【０１６０】
また、スクリーニング部１１０は、体重テーブル１１４から、個体ＩＤがｐｉｇＩＤｊであるエントリを検索する。検索の結果として得られた各エントリは、図３に示すように、体重測定値と測定日時を含む。そこで、スクリーニング部１１０は、得られた各エントリについて、当該エントリの測定日時における日齢を、属性テーブル１１３を参照して算出する。その結果、個体ＩＤがｐｉｇＩＤｊである豚２００に関して、日齢と体重のペアがいくつか得られる。
【０１６１】
すると、スクリーニング部１１０は、得られた日齢と体重のペアを使って、関数ｆｊ（ａｇｅ）のパラメタを推定する。パラメタの推定には、関数ｆｊ（ａｇｅ）として採用するモデルに応じた適宜の統計的手法が利用可能である。例えば、スクリーニング部１１０は、最小２乗法、Gauss-Newton法、あるいはLevenberg-Marquardt法などを利用して、関数ｆｊ（ａｇｅ）のパラメタを推定することができる。
【０１６２】
また、スクリーニング部１１０は、体重テーブル１１４から、個体ＩＤがｐｉｇＩＤｊである豚２００に関するすべてのエントリを得て、すべてのエントリを使って関数ｆｊ（ａｇｅ）のパラメタを推定してもよいが、一部のエントリのみを使ってもよい。例えば、スクリーニング部１１０は、個体ＩＤがｐｉｇＩＤｊである豚２００に関して、直近の５回の測定に相当するエントリのみを体重テーブル１１４から得て、５つのエントリのみを使って関数ｆｊ（ａｇｅ）のパラメタを推定してもよい。なお、この例における「５」という値は単なる例示である。
【０１６３】
そして、スクリーニング部１１０は、得られたパラメタを用いて、体重ｆｊ（ａｇｅｊ）を算出する。すなわち、スクリーニング部１１０は、個体ＩＤがｐｉｇＩＤｊである豚２００について体重テーブル１１４に記録した過去の体重から、当該豚２００の現在の体重ｆｊ（ａｇｅｊ）を予測する。
【０１６４】
以上のようにして、スクリーニング部１１０は、ステップＳ２０８においてＵ頭の豚２００それぞれの体重を予測する。
そして、次のステップＳ２０９で、スクリーニング部１１０は、まだ対応づけられていないパターンＩＤと個体ＩＤのすべての対応づけの仕方について、予測体重と今回の実測体重の差に基づいて、あてはめの良さを評価する。ここで、ステップＳ２０９における評価について説明する便宜上、次の（ｈ１）〜（ｈ３）のような表記を用いることにする。
【０１６５】
（ｈ１）今回新たにマーキングしたパターンのパターンＩＤのうち、まだ個体ＩＤと対応づけられていないものの集合をβ＝｛ｍａｒｋＩＤ１，……，ｍａｒｋＩＤＵ｝とする。
（ｈ２）上記（ｇ１）で定義した集合αからの集合βへの１対１写像はＵ！通りあるが、そのうちｋ番目（１≦ｋ≦Ｕ！）のものをｇｋと表記する。
（ｈ３）写像ｇｋによって個体ＩＤ・ｐｉｇＩＤｊと対応づけられるパターンＩＤはｇｋ（ｐｉｇＩＤｊ）である。このパターンＩＤ・ｇｋ（ｐｉｇＩＤｊ）と対応づけられて体重テーブル１１４に今回記録された体重をｗｃｕｒ（ｇｋ（ｐｉｇＩＤｊ））とする。
【０１６６】
続いて、以上の（ｈ１）〜（ｈ３）の表記を用いてステップＳ２０９の処理について説明する。ステップＳ２０９でスクリーニング部１１０は、Ｕ！通りの各写像ｇｋ（１≦ｋ≦Ｕ！）について、あてはめの良さをそれぞれ評価する。
【０１６７】
なお、本実施形態では、Ｕが比較的小さな数になるので、組み合わせ爆発は生じない。つまり、１台の自動体重選別装置１００で管理される豚２００の数と、体重測定を行う頻度が適切に決められていれば、Ｕは、組み合わせ爆発が生じない程度の小ささに抑えられる。
【０１６８】
具体的には、スクリーニング部１１０はステップＳ２０９で、ステップＳ２０８で算出した予測体重ｆｊ（ａｇｅｊ）と、実測体重ｗｃｕｒ（ｇｋ（ｐｉｇＩＤｊ））との差に基づいて、写像ｇｋにより表される対応づけの仕方についての評価値ｅｖａｌｋを算出する。評価値ｅｖａｌｋとしては、式（１）または（２）のように、Ｕ頭の豚２００の予測体重と実測体重の差の絶対値または２乗の和を用いることができる。また、実施形態に応じて、その他の式によりスクリーニング部１１０が評価値ｅｖａｌｋを算出してもよい。
【０１６９】
【数１】
2011135786.tif 000003
【０１７０】
【数２】
2011135786.tif 000004
【０１７１】
そして、スクリーニング部１１０が上記のようにして各対応づけの仕方について、あてはめの良さを評価する評価値ｅｖａｌｋ（１≦ｋ≦Ｕ！）を算出すると、処理はステップＳ２１０に移行する。
【０１７２】
ステップＳ２１０でスクリーニング部１１０は、ステップＳ２０９において最良の評価を得た組み合わせを、仮の対応づけとして対応づけテーブル１１６に記録する。
例えば、上記の式（１）または（２）により算出される評価値ｅｖａｌｋは、値が小さいほど評価が高いことを示す。説明の便宜上、ｋ＝Ｂのときに評価値ｅｖａｌｋが最小だとすると、ステップＳ２１０においてスクリーニング部１１０は、次の処理を行う。すなわち、スクリーニング部１１０は、１≦ｊ≦Ｕなる各ｊについて、パターンＩＤ・ｇＢ（ｐｉｇＩＤｊ）と、個体ＩＤ・ｐｉｇＩＤｊと、現在日時と、「仮」という対応づけ状態とを含むエントリを、対応づけテーブル１１６に追加する。
【０１７３】
こうして、最も適切と推測されるパターンＩＤと個体ＩＤとの対応づけをスクリーニング部１１０が対応づけテーブル１１６に記録すると、図５の仮対応づけ処理は終了する。
なお、以上の図５の仮対応づけ処理についていくつか補足すれば、次のとおりである。
【０１７４】
ここで、「取得することができなかった」と識別可否情報により示されている個体ＩＤが割り当てられた個体を「識別不能化個体」と呼ぶことにすると、ステップＳ２０１では、今回新たに識別不能化個体となった個体の集合が求められる。
【０１７５】
そして、スクリーニング部１１０は、マーキング２０２が施された豚２００の体重が、Ｑ頭の識別不能化個体のうちのいずれの許容範囲に含まれるかを調べる。その際、スクリーニング部１１０は、Ｑ頭の識別不能化個体について過去にそれぞれの個体ＩＤと対応づけられて体重テーブル１１４に格納された体重情報と、識別不能化個体それぞれの体重変化の許容範囲とに基づいて処理を行う。
【０１７６】
許容範囲は、ステップＳ２４０に関して例示した（ｄ１）〜（ｄ４）のように、過去に計測された体重との差もしくは比により定義されてもよい。あるいは、許容範囲は、過去複数回にわたって計測された体重から予測される予測体重との差もしくは比により定義されてもよい。
【０１７７】
例えば、実施形態によっては、スクリーニング部１１０は、ステップＳ２０４において、ステップＳ２０８と同様にして予測体重を算出し、予測体重と実測体重との差または比を求めてもよい。そして、スクリーニング部１１０はステップＳ２０４において、「前回よりも今回の方が体重が重い」という制約条件の代わりに、「求めた差または比が所定の範囲内に収まる」という制約条件を用いてもよい。
【０１７８】
どのように許容範囲を定義する制約条件が使われるにしろ、ステップＳ２０４〜Ｓ２０６は、マーキング２０２が施されたＱ頭の豚２００について、それぞれ該当する個体の候補を絞り込む処理である。つまり、ステップＳ２０４〜Ｓ２０６ではスクリーニング部１１０が、あるパターンＩＤに対応する個体の候補を、「識別不能化個体の体重変化の許容範囲に、当該パターンＩＤに対応する豚２００の実測体重が含まれる」と判断した識別不能化個体だけに絞り込む。そして、絞り込みの結果が一意に定まれば、対応づけテーブル１１６への記録がステップＳ２０６で行われる。
【０１７９】
また、ステップＳ２０８では、Ｕ頭の識別不能化個体について過去にそれぞれの個体ＩＤと対応づけられて体重テーブル１１４に格納された体重情報が示す、Ｕ頭の識別不能化個体それぞれの体重の変化から、Ｕ頭の識別不能化個体それぞれの予測体重が予測される。そして、Ｕ頭の識別不能化個体に対してそれぞれ施されたマーキング２０２のパターンを識別するパターンＩＤは、（ｈ１）の表記を使えば、ｍａｒｋＩＤ１，……，ｍａｒｋＩＤＵである。また、これらのパターンＩＤに対応づけられて体重テーブル１１４に格納された体重情報が示すのは、Ｕ頭の識別不能化個体それぞれの実測体重である。
【０１８０】
ステップＳ２０９での評価値は、上述のとおり「あてはめの良さを示す」とも言えるが、換言すれば、「予測体重と実測体重との間のずれを、Ｕ頭の識別不能化個体について総合した、総合的なずれを示す」とも言える。つまり、複数通りの対応づけの中で、総合的なずれが相対的に小さければ、あてはめの良さが相対的に優れている。よって、ステップＳ２１０の処理は、「総合的なずれが相対的に小さな対応づけの仕方にしたがってスクリーニング部１１０が対応づけテーブル１１６への書き込みを行う処理である」とも言える。
【０１８１】
ところで、図２と図５に示した処理とは別に、例えば豚２００の出荷の直前などの任意のタイミングで、自動体重選別装置１００は図７の対応づけ確定処理を実行し、パターンＩＤと個体ＩＤとの対応づけを確定する。対応づけ確定処理を実行する具体的なタイミングは、例えば、図１には不図示の入力装置（後述の図９の入力装置３０５でもよい）を介して、ユーザから自動体重選別装置１００に指示されてもよい。
【０１８２】
図７は、対応づけ確定処理のフローチャートである。対応づけ確定処理は、自動体重選別装置１００の推定部１０７により実行される。
ステップＳ３０１で推定部１０７は、母豚に関するループ変数ｍを１に初期化する。
【０１８３】
そして、次のステップＳ３０２で推定部１０７は、自動体重選別装置１００が管理する豚２００の、重複を除いた母豚の数Ｍを、ループ変数ｍが超えたか否かを判定する。母豚の数Ｍは、例えば属性テーブル１１３から推定部１０７が算出してもよい。
【０１８４】
ここで、属性テーブル１１３の例について、図８を参照して説明する。属性テーブル１１３には、「個体ＩＤ」、「母豚ＩＤ」および「出生日」の３つのフィールドがある。また、属性テーブル１１３には、自動体重選別装置１００が管理するすべての豚２００についてのエントリが含まれる。
【０１８５】
属性テーブル１１３において、個体ＩＤは豚２００を個体として識別するＩＤであり、母豚ＩＤは、個体ＩＤにより識別される豚２００の母豚を識別するＩＤである。また、出生日は、個体ＩＤにより識別される豚２００の出生日を示す。実施形態によっては、出生日の代わりに出生日時が用いられてもよい。
【０１８６】
図８の例は、具体的には次の（ｉ１）〜（ｉ４）を表している。
（ｉ１）個体ＩＤが「００００１」と「００００４」と「００００６」の豚２００は、「９００５０」という母豚ＩＤを持つ同じ母豚から同日（２００８年１０月１８日）に生まれた兄弟同士である。
【０１８７】
（ｉ２）個体ＩＤが「００００２」と「００００３」の豚２００は、「９００５５」という母豚ＩＤを持つ同じ母豚から同日（２００８年１０月２０日）に生まれた兄弟同士である。
【０１８８】
（ｉ３）個体ＩＤが「００００５」と「００００７」の豚２００は、「９００６０」という母豚ＩＤを持つ同じ母豚から同日（２００８年１０月３０日）に生まれた兄弟同士である。
【０１８９】
（ｉ４）個体ＩＤが「００００８」の豚２００は、「９００６５」という母豚ＩＤを持つ母豚から２００８年１０月２５日に生まれた。
【０１９０】
さて、ここで図７の説明に戻ると、推定部１０７は、属性テーブル１１３の「母豚ＩＤ」フィールドの値が何通りあるかを数えることで、ステップＳ３０２における母豚の数Ｍを得ることができる。つまり、母豚の数Ｍは、自動体重選別装置１００で管理されている豚２００を、兄弟ごとにグループ分けしたとき、いくつのグループに分けられるかを示す。
【０１９１】
ステップＳ３０２において、変数ｍの値が母豚の数Ｍを超えていれば、すべてのグループについて検討済みなので、処理はステップＳ３１３に移行する。逆に、変数ｍの値が母豚の数Ｍ以下であれば、まだ検討していないグループが残っているので、処理はステップＳ３０３に移行する。
【０１９２】
ステップＳ３０３で、推定部１０７の兄弟特定部１１１は、現在注目しているｍ番目のグループに関して、兄弟間マッチング部１１２がマッチングにより検証する対象の豚２００の数を求める。つまり、兄弟特定部１１１は、対応づけテーブル１１６に記録された仮の対応づけによってｍ番目の母豚の子豚として見なされている豚２００の数を求め、変数Ｎに代入する。
【０１９３】
説明の便宜上、ｍ番目の母豚の母豚ＩＤをｍｏｔｈｅｒＩＤｍとすると、兄弟特定部１１１は、ステップＳ３０３で、対応づけテーブル１１６において、次の条件（ｊ１）と（ｊ２）をともに満たすエントリを検索し、検索の結果得られたエントリの数を変数Ｎに代入する。
【０１９４】
（ｊ１）対応づけテーブル１１６における対応づけ状態の値が「仮」である。
（ｊ２）対応づけテーブル１１６における個体ＩＤの値を検索キーにして属性テーブル１１３を検索すると、検索の結果得られるエントリでの母豚ＩＤの値がｍｏｔｈｅｒＩＤｍである。
【０１９５】
例えば、ｍ番目の母豚の母豚ＩＤが「９００５０」であるとする。このとき、図８の属性テーブル１１３と図６の対応づけテーブル１１６ｂによれば、対応づけテーブル１１６ｂにおいてパターンＩＤが「Ｐ０２」のエントリのみが、条件（ｊ１）と（ｊ２）を満たす。よって、変数Ｎには１が設定される。
【０１９６】
そして、次のステップＳ３０４で推定部１０７は、Ｎ＝０であるか否かを判定する。Ｎ＝０のとき、仮の対応づけによってｍ番目の母豚の子供であると見なされている豚２００は存在しないので、次の母豚に注目するために処理はステップＳ３１２に移行する。他方、Ｎ＝０でないとき（つまりＮ＞０のとき）は、仮の対応づけによってｍ番目の母豚の子供であると見なされている豚２００と、本当にｍ番目の母豚の子供である豚２００との成長の類似度を検証するため、処理はステップＳ３０５に移行する。
【０１９７】
ステップＳ３０５では、兄弟特定部１１１と兄弟間マッチング部１１２により、ｍ番目の母豚の子豚の成長曲線が求められる。
具体的には、まず、兄弟特定部１１１がｍ番目の母豚の子豚を特定する。すなわち、兄弟特定部１１１は、ｍ番目の母豚の母豚ＩＤ・ｍｏｔｈｅｒＩＤｍを検索キーにして属性テーブル１１３を検索し、ｍ番目の母豚の子豚のエントリを得る。そして、兄弟特定部１１１は、得られたエントリから、個体ＩＤが、ステップＳ３０３で得られた対応づけテーブル１１６のＮ個のエントリの個体ＩＤのいずれかと一致するものを除外する。
【０１９８】
つまり、兄弟特定部１１１は、ｍ番目の母豚の子豚として属性テーブル１１３に記録されている豚２００のうちで、図７の対応づけ確定処理の実行時まで個体ＩＤが読み取り可能な状態が続いている豚２００を特定する。以下では説明の便宜上、このステップＳ３０５で兄弟特定部１１１が特定した豚２００の数をＲとする。
【０１９９】
そして、兄弟特定部１１１は、特定したＲ頭の豚２００の個体ＩＤを、兄弟間マッチング部１１２に通知する。
例えば、ｍ番目の母豚の母豚ＩＤが「９００５０」のとき、図８によれば上記（ｉ１）のとおり、個体ＩＤが「００００１」と「００００４」と「００００６」の豚２００が、ｍ番目の母豚の子豚として記録されている。また、上記のようにステップＳ３０３では、パターンＩＤが「Ｐ０２」で個体ＩＤが「００００６」のエントリが、対応づけテーブル１１６ｂから得られている。
【０２００】
よって、ステップＳ３０５で兄弟特定部１１１は、「００００１」と「００００４」という２つの個体ＩＤを、識別不能化個体（この例では、個体ＩＤが「００００６」の豚２００）に関する対応づけの検証用に、兄弟間マッチング部１１２に通知する。つまり、この例ではＲ＝２である。
【０２０１】
ステップＳ３０５ではさらに、兄弟間マッチング部１１２が、兄弟特定部１１１から通知された個体ＩＤで識別される豚２００の成長曲線を、体重テーブル１１４から求める。なお、ステップＳ３０５で兄弟間マッチング部１１２が行う具体的処理は、後述のステップＳ３０８のマッチング手法に応じて様々に異なっていてよいので、具体的処理についてはステップＳ３０８とあわせて後述する。
【０２０２】
ステップＳ３０５に続いて、ステップＳ３０６で兄弟間マッチング部１１２は、仮の対応づけによってｍ番目の母豚の子豚であると見なされている豚２００についてのループ変数ｎを１に初期化する。そして、処理はステップＳ３０７に移行する。
【０２０３】
ステップＳ３０７で兄弟間マッチング部１１２は、ｎ＞Ｎであるか否かを判断する。もしｎ＞Ｎであれば、ｍ番目の母豚の子豚であると見なされているすべての豚２００についての検証が済んでいるので、次の母豚に注目するため、処理はステップＳ３１２に移行する。逆に、もしｎ≦Ｎであれば、ｍ番目の母豚の子豚であると見なされているＮ頭の豚２００のうち、兄弟との比較による検証がまだ済んでいない豚２００が残っているので、処理はステップＳ３０８に移行する。
【０２０４】
ステップＳ３０８で兄弟間マッチング部１１２は、仮の対応づけによってｍ番目の母豚の子豚と見なされているＮ頭の豚２００のうち、ｎ番目の豚２００（以下、「検証対象豚」という）に注目する。そして、兄弟間マッチング部１１２は、検証対象豚の成長曲線と、ｍ番目の母豚の本当の子豚であるＲ頭の豚２００（以下、「対照豚」という）の成長曲線のマッチングを行う。
【０２０５】
ステップＳ３０８におけるマッチングの具体的アルゴリズムは実施形態に応じて適宜決めることができる。また、上記のとおりステップＳ３０８でのマッチングのアルゴリズムに応じて、ステップＳ３０５の具体的処理も異なる。ここでは、具体例として以下の（ｋ１）〜（ｋ３）を挙げるが、もちろんその他のマッチングアルゴリズムが使われてもよい。
【０２０６】
（ｋ１）兄弟間マッチング部１１２は、ステップＳ３０８において、Ｒ頭の対照豚の体重の最小値と最大値の間の範囲に検証対象豚の体重が含まれるか否かを検証してもよい。なお、この（ｋ１）の場合、兄弟間マッチング部１１２はステップＳ３０５で、単に体重テーブル１１４からＲ頭の対照豚に関するエントリを取得すればよい。
【０２０７】
より具体的には、例えば、兄弟間マッチング部１１２は次のようにして検証を行ってもよい。
ここで、説明の便宜上、検証対象豚に施されたマーキング２０２のパターンを識別するパターンＩＤをｍａｒｋＩＤとする。パターンＩＤ・ｍａｒｋＩＤと仮に対応づけられている個体ＩＤは、上記（ｈ２）およびステップＳ２１０に関して説明したＢを用いて表現すれば、ｇＢ−１（ｍａｒｋＩＤ）である。
【０２０８】
また、パターンＩＤ・ｍａｒｋＩＤと対応づけられて体重テーブル１１４に記録されている体重測定値と測定日時をそれぞれｗｈとｔｈ（ｈ＝１，２，……）とする。また、測定日時ｔｈにおける個体ＩＤ・ｇＢ−１（ｍａｒｋＩＤ）の日齢をａｇｅｈとする。日齢ａｇｅｈは、測定日時ｔｈと、属性テーブル１１３に記録されている個体ＩＤ・ｇＢ−１（ｍａｒｋＩＤ）に対応する出生日から得られる。
【０２０９】
ステップＳ３０８において、兄弟間マッチング部１１２は、検証対象豚の各体重測定値ｗｈ（ｈ＝１，２，……）について、例えば下記の式（３）が成立するか否かを検証する。
ｍｉｎ（ｗｒ，ｈ）・Ｔ５≦ｗｈ≦ｍａｘ（ｗｒ，ｈ）・Ｔ６        （３）
【０２１０】
なお、式（３）において、ｗｒ，ｈは、ｒ番目の対照豚についてａｇｅｈに最も近い日齢で測定した体重測定値であり、兄弟間マッチング部１１２が体重テーブル１１４と属性テーブル１１３を参照することで得られる。また、式（３）において、ｍｉｎ（ｗｒ，ｈ）は１≦ｒ≦Ｒにおける体重測定値ｗｒ，ｈの最小値であり、ｍａｘ（ｗｒ，ｈ）は１≦ｒ≦Ｒにおける体重測定値ｗｒ，ｈの最大値である。
【０２１１】
また、Ｔ５とＴ６はＴ５≦Ｔ６となるように適宜定められた閾値であり、例えばＴ５＝Ｔ６＝１でもよいし、Ｔ５＝０．９７、Ｔ６＝１．０３などと定められてもよい。閾値Ｔ５とＴ６の値は、予め決められていてもよいし、Ｒ頭の対照豚間での体重のばらつきに応じて兄弟間マッチング部１１２が動的にステップＳ３０８で決めてもよい。
【０２１２】
兄弟間マッチング部１１２は、検証対象豚のどの体重測定値ｗｈ（ｈ＝１，２，……）についても式（３）が成立するときに、「検証対象豚は、仮の対応づけによって兄弟と見なされているＲ頭の対照豚との間で、成長曲線がマッチする」と判断してもよい。換言すれば、兄弟間マッチング部１１２は、いずれかの体重測定値ｗｈに関して式（３）が成立しないときに、「検証対象豚は、仮の対応づけによって兄弟と見なされているＲ頭の対照豚との間で、成長曲線がマッチしない」と判断してもよい。
【０２１３】
あるいは、兄弟間マッチング部１１２は、上記のようにすべての体重測定値ｗｈ（ｈ＝１，２，……）について式（３）が成立したときのみ「マッチ」と判断するのではなくてもよい。例えば、検証対象豚のパターンＩＤ・ｍａｒｋＩＤに対応づけられて体重テーブル１１４に記録されている体重測定値がＨ個の場合、兄弟間マッチング部１１２は、適宜定められた閾値Ｔ７を使って、次のように判断してもよい。
【０２１４】
すなわち、兄弟間マッチング部１１２は、Ｈ個の体重測定値ｗｈ（ｈ＝１，２，……，Ｈ）のうち、Ｈ・Ｔ７個以上が式（３）を満たせば「マッチ」と判断してもよい。なお、閾値Ｔ７は、１に比較的近い１未満の数（例えば０．９など）である。
【０２１５】
もちろん、兄弟間マッチング部１１２は、ステップＳ３０８におけるマッチングにおいて、ｒ番目の対照豚に関して、体重測定値ｗｒ，ｈだけでなく、体重測定値ｗｒ，ｈを得た測定の直前および直後の測定における体重測定値をさらに用いることもできる。例えば、式（３）の上限と下限は、体重測定値ｗｒ，ｈを得た測定の直前および直後の測定における体重測定値から得られる値（例えば補間値など）により定義されていてもよい。
【０２１６】
（ｋ２）兄弟間マッチング部１１２は、前述のステップＳ３０５において、Ｒ頭の対照豚それぞれについて、成長曲線のパラメタを推定してもよい。そして、兄弟間マッチング部１１２は、ステップＳ３０８において、検証対象豚のパターンＩＤ・ｍａｒｋＩＤと対応づけられて体重テーブル１１４に記録されている体重測定値と測定日時から、検証対象豚の成長曲線のパラメタを推定してもよい。
【０２１７】
なお、検証対象豚の日齢は、検証対象豚のパターンＩＤ・ｍａｒｋＩＤと仮に対応づけられている個体ＩＤ・ｇＢ−１（ｍａｒｋＩＤ）と属性テーブル１１３において対応づけられている出生日から算出可能である。また、成長曲線のパラメタ推定には、具体的には図５のステップＳ２０８に関して例示した方法を利用することができるので、ここでは詳細を省略する。
【０２１８】
そして、兄弟間マッチング部１１２は、Ｒ頭の対照豚について推定したＲ組のパラメタと、検証対象豚について推定したパラメタを比較する。
ここで説明の便宜上、成長曲線を特徴づけるパラメタのうち、ｐ番目のパラメタ（ｐ＝１，２，……）について、ｒ番目の対照豚の体重情報から兄弟間マッチング部１１２が推定した値をｐｒｍｒ，ｐとする。また、上記ｐ番目のパラメタについて、検証対象豚の体重情報から兄弟間マッチング部１１２が推定した値をｐｒｍｐとする。
【０２１９】
兄弟間マッチング部１１２は、例えば、すべてのｐについて下記の式（４）が成立するか否かを検証する。そして、兄弟間マッチング部１１２は、すべてのｐについて式（４）が成立するときにのみ「検証対象豚は、仮の対応づけによって兄弟と見なされているＲ頭の対照豚との間で、成長曲線がマッチする」と判断してもよい。
ｍｉｎ（ｐｒｍｒ，ｐ）・Ｔ８≦ｐｒｍｐ≦ｍａｘ（ｐｒｍｒ，ｐ）・Ｔ９      （４）
【０２２０】
なお、式（４）において、ｍｉｎ（ｐｒｍｒ，ｐ）は１≦ｒ≦Ｒにおけるｐｒｍｒ，ｐの最小値であり、ｍａｘ（ｐｒｍｒ，ｐ）は１≦ｒ≦Ｒにおけるｐｒｍｒ，ｐの最大値である。また、Ｔ８とＴ９はＴ８≦Ｔ９となるように適宜定められた閾値であり、例えばＴ８＝Ｔ９＝１でもよいし、Ｔ８＝０．９７、Ｔ９＝１．０３などと定められてもよい。閾値Ｔ８とＴ９の値は、予め決められていてもよいし、Ｒ頭の対照豚間での体重のばらつきに応じて兄弟間マッチング部１１２が動的にステップＳ３０８で決めてもよい。
【０２２１】
（ｋ３）兄弟間マッチング部１１２は、前述のステップＳ３０５において、Ｒ頭の対照豚全体の平均的な成長曲線を求め、ステップＳ３０８では、当該平均的な成長曲線と検証対象豚の成長曲線とのマッチングを行ってもよい。
【０２２２】
つまり、ステップＳ３０５において兄弟間マッチング部１１２は、Ｒ頭の対照豚について、日齢がａｇｅのときの体重が、共通の関数ｆ（ａｇｅ）によりモデル化されると仮定し、Ｒ頭の対照豚すべての体重情報から関数ｆを特徴づけるパラメタを推定してもよい。関数ｆ（ａｇｅ）は、ステップＳ２０８に関して述べた関数ｆｊ（ａｇｅ）と同じモデルに基づく。こうしてパラメタが推定された関数ｆ（ａｇｅ）は、Ｒ頭の対照豚の全体的な成長の特徴を反映しており、換言すれば、ｍ番目の母豚の子豚の平均的な成長を表している。
【０２２３】
兄弟間マッチング部１１２は、以上のようにしてステップＳ３０５で得た関数ｆ（ａｇｅ）を用いて、Ｒ頭の対照豚の平均的な成長曲線と検証対象豚の成長曲線とのマッチングをステップＳ３０８において行うことができる。例えば、兄弟間マッチング部１１２は、Ｒ頭の対照豚の平均的な成長曲線と検証対象豚の成長曲線とのずれの度合を評価して閾値Ｔ１０と比較してもよい。そして、評価したずれの度合が閾値Ｔ１０以下のとき、兄弟間マッチング部１１２は「検証対象豚は、仮の対応づけによって兄弟と見なされているＲ頭の対照豚との間で、成長曲線がマッチする」と判断してもよい。
【０２２４】
より具体的には、例えば上記（ｋ１）に関して定義した記号ｗｈとａｇｅｈを用いて説明すると、兄弟間マッチング部１１２は下記の式（５）が成立するときにのみ「マッチ」と判断してもよい。
【数３】
2011135786.tif 000005
【０２２５】
なお、式（５）におけるＨは、上記（ｋ１）に関して定義したように、体重テーブル１１４においてＩＤとして検証対象豚のパターンＩＤ・ｍａｒｋＩＤが設定されたエントリの数である。また、閾値Ｔ１０は予め決められた値でもよいし、Ｒ頭の対照豚の体重のばらつきなどに応じて兄弟間マッチング部１１２が動的に決める値でもよい。
【０２２６】
また、Ｒ頭の対照豚の平均的な成長曲線と検証対象豚の成長曲線とのずれの度合を評価するのに、兄弟間マッチング部１１２は他の式を用いることも可能である。例えば、兄弟間マッチング部１１２は、式（５）のように差の絶対値の和を用いる代わりに、差の２乗和または差の２乗和の平方根を用いてもよい。
【０２２７】
以上のように、ステップＳ３０８のマッチングの具体的アルゴリズムは、実施形態に応じて様々である。また、上記（ｋ１）〜（ｋ３）以外のマッチングアルゴリズムが採用されてもよい。しかし、いずれにしろステップＳ３０８の実行の結果、兄弟間マッチング部１１２は、「マッチ」または「アンマッチ」という結果を得ることができる。
【０２２８】
すると、次のステップＳ３０９で、兄弟間マッチング部１１２は、ステップＳ３０８のマッチングの結果が「マッチ」と「アンマッチ」のいずれかを判断する。結果が「マッチ」のとき、処理はステップＳ３１１に移行し、結果が「アンマッチ」のとき、処理はステップＳ３１０に移行する。
【０２２９】
ステップＳ３１０で兄弟間マッチング部１１２は、検証対象豚（つまり、仮の対応づけによってｍ番目の母豚の子豚と見なされているＮ頭の豚２００のうちのｎ番目の豚２００）を「要検討の豚」として記憶する。すなわち、兄弟間マッチング部１１２は、検証対象豚のパターンＩＤ・ｍａｒｋＩＤを記憶する。
【０２３０】
そして、次のステップＳ３１１で兄弟間マッチング部１１２は、変数ｎの値を１増やす。すると、処理はステップＳ３０７に戻る。
さて、ステップＳ３０４でＮ＝０だった場合、あるいは上記のようにしてＮ頭の豚２００について兄弟間マッチング部１１２が検証対象豚として注目して処理を終えた場合、その後のステップＳ３１２では、推定部１０７が変数ｍの値を１増やす。そして、処理はステップＳ３０２に戻る。
【０２３１】
また、ステップＳ３１３で兄弟間マッチング部１１２は、「要検討の豚」として記憶した豚２００の数が０か、それとも１以上かを判定する。「要検討の豚」として記憶した豚２００の数が０のとき、仮の対応づけの適切さが確認されたので、対応づけを確定させるため、処理はステップＳ３１４に移行する。逆に、「要検討の豚」として記憶した豚２００の数が１以上のとき、対応づけをやり直すために処理はステップＳ３１５に移行する。
【０２３２】
ステップＳ３１４で兄弟間マッチング部１１２は、対応づけテーブル１１６において対応づけ状態の値が「仮」となっているすべてのエントリにおいて、対応づけ状態の値を「確定」に変更する。以上により、パターンＩＤと個体ＩＤとの対応づけはすべて確定するので、図７の対応づけ確定処理も終了する。
【０２３３】
他方、ステップＳ３１５以降の処理において兄弟間マッチング部１１２は、要検討の豚についての対応づけのやり直しを試みる。具体的には、兄弟間マッチング部１１２はステップＳ３１５において、要検討の豚の間で、仮の対応づけの入れ換えを試し、入れ換えの仕方を評価する。
【０２３４】
例えば、要検討の豚がＸ頭存在する場合は、潜在的に可能な入れ換えの仕方は（Ｘ！−１）通りである。よって、兄弟間マッチング部１１２は（Ｘ！−１）通りの入れ換えをすべて評価してもよい。
【０２３５】
例えば、要検討の豚が３頭存在し、それぞれのパターンＩＤはｍａｒｋＩＤｘ、ｍａｒｋＩＤｙ、ｍａｒｋＩＤｚであり、それぞれ個体ＩＤ・ｐｉｇＩＤｘ、ｐｉｇＩＤｙ、ｐｉｇＩＤｚに仮に対応づけられているとする。この場合、５（＝３！−１）通りの入れ換えが可能である。そのうち２つを例示すれば、例えば下記（ｌ１）と（ｌ２）のとおりである。
【０２３６】
（ｌ１）パターンＩＤ・ｍａｒｋＩＤｘ、ｍａｒｋＩＤｙ、ｍａｒｋＩＤｚにそれぞれ個体ＩＤ・ｐｉｇＩＤｙ、ｐｉｇＩＤｚ、ｐｉｇＩＤｘを対応づける、という入れ換え。
（ｌ２）パターンＩＤ・ｍａｒｋＩＤｘと個体ＩＤ・ｐｉｇＩＤｘの対応づけは変えずに、パターンＩＤ・ｍａｒｋＩＤｙとｍａｒｋＩＤｚの間で、対応する個体ＩＤを入れ換えるという入れ換え。
【０２３７】
兄弟間マッチング部１１２は、可能な入れ換えについてそれぞれ、当該入れ換えを行ったと仮定してステップＳ３０８のマッチングと同様のマッチングを行うことで、各入れ換えについて評価する。例えば、上記の（ｌ１）の入れ換えの例の場合、兄弟間マッチング部１１２は、次の（ｍ１）〜（ｍ３）のマッチングを行う。
【０２３８】
（ｍ１）パターンＩＤ・ｍａｒｋＩＤｘの豚の成長曲線と、入れ換えによってパターンＩＤ・ｍａｒｋＩＤｘと対応づけられると仮定された個体ＩＤ・ｐｉｇＩＤｙの母豚の本当の子豚たちの成長曲線とのマッチング。
【０２３９】
（ｍ２）パターンＩＤ・ｍａｒｋＩＤｙの豚の成長曲線と、入れ換えによってパターンＩＤ・ｍａｒｋＩＤｙと対応づけられると仮定された個体ＩＤ・ｐｉｇＩＤｚの母豚の本当の子豚たちの成長曲線とのマッチング。
【０２４０】
（ｍ３）パターンＩＤ・ｍａｒｋＩＤｚの豚の成長曲線と、入れ換えによってパターンＩＤ・ｍａｒｋＩＤｚと対応づけられると仮定された個体ＩＤ・ｐｉｇＩＤｘの母豚の本当の子豚たちの成長曲線とのマッチング。
【０２４１】
なお、マッチングの具体的アルゴリズムは、ステップＳ３０８に関して述べた（ｋ１）〜（ｋ３）のいずれでもよい。また、（ｋ１）〜（ｋ３）のマッチングの結果として、兄弟間マッチング部１１２は入れ換えの仕方を評価するが、評価値としては例えば、当該入れ換えによって「マッチ」と判断された「要検討の豚」の数を用いることができる。
【０２４２】
そして、次のステップＳ３１６で兄弟間マッチング部１１２は、ステップＳ３１５の評価の結果、良い評価の入れ換えの仕方が見つかったか否かを判断する。
例えば、ステップＳ３１５における評価値として、入れ換えによって「マッチ」と判断された「要検討の豚」の数が用いられる場合、ステップＳ３１３での判断に用いた元の「要検討の豚」の数よりも評価値の方が小さくなる入れ換えがあったとする。この場合、より尤もらしい対応づけを可能とする入れ換えが見つかったということなので、兄弟間マッチング部１１２は「良い評価の入れ換えの仕方が見つかった」と判断する。
【０２４３】
あるいは、兄弟間マッチング部１１２は、ステップＳ３１５において例えば（ｋ３）の方法でマッチングを行う場合には、当該入れ換えを仮定して適宜記号の意味を読み替えたときの式（５）の左辺の値を評価値として用いることもできる。また、兄弟間マッチング部１１２は、例えば（ｋ１）の方法でマッチングを行う場合には、当該入れ換えを仮定して適宜記号の意味を読み替えたときの、対照豚の体重測定値ｗｒ，ｈの中央値と、検証対象豚の体重測定値ｗｈとの差を使って、評価値を求めてもよい。なお、記号の意味の読み替えとは、具体的には「対照豚はどの母豚の子豚か」という点が変わるのに合わせた読み替えのことである。
【０２４４】
例えば以上に例示したような評価値がステップＳ３１５で利用される場合には、兄弟間マッチング部１１２は、ステップＳ３０８においてさらに、入れ換え前の仮の対応づけについても同じ定義にしたがって評価し、評価の結果を記憶しておけばよい。そして、兄弟間マッチング部１１２は、入れ換え前の仮の対応づけに対する評価値よりも良い評価を示す評価値がステップＳ３１５で得られた場合に、ステップＳ３１６において「良い評価の入れ換えの仕方が見つかった」と判断してもよい。
【０２４５】
いずれにせよ、ステップＳ３１６で兄弟間マッチング部１１２は、対応づけの仕方を入れ換えることで対応づけの尤もらしさを改善する余地があるか否かを判断する。そして、兄弟間マッチング部１１２が「良い評価の入れ換えの仕方が見つかった」と判断すると、処理はステップＳ３１７に移行する。他方、兄弟間マッチング部１１２が「良い評価の入れ換えの仕方が見つからなかった」と判断すると、処理はステップＳ３１８に移行する。
【０２４６】
ステップＳ３１７で兄弟間マッチング部１１２は、「良い評価の入れ換えの仕方」として見つかった入れ換えの仕方にしたがって、仮の対応づけを入れ換える。なお、元の仮の対応づけよりも良い評価が得られる入れ換えが複数通りある場合は、兄弟間マッチング部１１２は、その中で最善の評価が得られる入れ換えにしたがう。
【０２４７】
例えば、上記の（ｌ２）の入れ換えが、最善の入れ換えであると判明したとする。この場合、兄弟間マッチング部１１２は、対応づけテーブル１１６に対して、次の（ｎ１）と（ｎ２）の処理を行う。
【０２４８】
（ｎ１）パターンＩＤの値がｍａｒｋＩＤｙのエントリにおいて、個体ＩＤを、元のｐｉｇＩＤｙからｐｉｇＩＤｚに書き換え、対応づけ状態を「仮」から「確定」に書き換える。
【０２４９】
（ｎ２）パターンＩＤの値がｍａｒｋＩＤｚのエントリにおいて、個体ＩＤを、元のｐｉｇＩＤｚからｐｉｇＩＤｙに書き換え、対応づけ状態を「仮」から「確定」に書き換える。
【０２５０】
このように、兄弟間マッチング部１１２は、対応づけテーブル１１６におけるパターンＩＤと個体ＩＤの対応づけをステップＳ３１５で見つかった最善の入れ換えにしたがって入れ換え、対応づけ状態を書き換えることで、対応づけを改善して確定させる。そして、処理はステップＳ３１８に移行する。
【０２５１】
なお、もしパターンＩＤと個体ＩＤのペアの中に入れ換えないものがある場合は、当該ペアを示す対応づけテーブル１１６のエントリは、ステップＳ３１７で書き換えられない。例えば、上記の（ｌ２）の入れ換えにしたがう例では、パターンＩＤ・ｍａｒｋＩＤｘと個体ＩＤ・ｐｉｇＩＤｘのペアに対する入れ換えは行われないので、当該ペアの対応づけ状態は「仮」のままである。
【０２５２】
そして、ステップＳ３１８で兄弟間マッチング部１１２は、Ｘ頭の「要検討の豚」の中で、ステップＳ３１７における入れ換えを行っていない豚の数が０か、それとも１以上かを判断する。例えば、上記の（ｌ２）の入れ換えにしたがう例では、Ｘ＝３頭の「要検討の豚」の中で、パターンＩＤ・ｍａｒｋＩＤｘに対応する１頭の豚については入れ換えが行われないので、ステップＳ３１８では「１以上」と判断される。
【０２５３】
ステップＳ３１８において、ステップＳ３１７における入れ換えを行っていない豚の数が０と判断された場合、「要検討の豚」は全頭対応づけの入れ換えが行われ、入れ換えられた対応づけが確定している。よって、図７の対応づけ確定処理が終了する。
【０２５４】
他方、ステップＳ３１８において、ステップＳ３１７における入れ換えを行っていない豚の数が１以上と判断された場合、対応づけを改善することができなかった「要検討の豚」が残っている。よって、ユーザの判断を仰ぐために処理はステップＳ３１９に移行する。
【０２５５】
ステップＳ３１９で兄弟間マッチング部１１２は、「要検討の豚」のうちステップＳ３１７で仮の対応づけの入れ換えを行っていない豚の情報を出力し、ユーザに検討を促す。そして、図７の対応づけ確定処理は終了する。
【０２５６】
なお、ステップＳ３１９における情報の出力先は、ディスプレイやプリンタなどの出力装置でもよいし、図１の記憶部１０６でもよいし、自動体重選別装置１００と不図示のネットワークを介して接続されたコンピュータでもよい。また、兄弟間マッチング部１１２は、仮の対応づけの入れ換えを行っていない豚の情報として、具体的には、以下の（ｏ１）のみを出力してもよいし、さらに（ｏ２）、（ｏ３）、またはその双方を出力してもよい。
【０２５７】
（ｏ１）パターンＩＤ（例えば、上記の（ｌ２）の入れ換えにしたがう例では、ｍａｒｋＩＤｘ）。
（ｏ２）当該パターンＩＤと対応づけテーブル１１６において仮に対応づけられている個体ＩＤ（例えば、上記の（ｌ２）の入れ換えにしたがう例では、ｐｉｇＩＤｘ）。
【０２５８】
（ｏ３）当該パターンＩＤと対応づけられて体重テーブル１１４に記録されている体重測定値と測定日時。
ところで、図１の自動体重選別装置１００の各部は、専用のハードウェア装置により実現されてもよいが、自動体重選別装置１００の一部は、プログラムを実行する汎用的なコンピュータにより実現することもできる。
【０２５９】
図９は、コンピュータの構成図である。図９に示すコンピュータ３００は、図１の自動体重選別装置１００の内部に組み込まれていてもよい。
あるいは、実施形態によっては、体重計とＲＦＩＤリーダとカメラとスプレーを有する自動体重選別装置が、外部のコンピュータ３００と接続されていてもよい。その場合、外部のコンピュータ３００は、図１のマーキング読み取り部１０４の一部の機能、制御部１０５の機能および推定部１０７の機能を実現することができ、図１の記憶部１０６はコンピュータ３００の内部にあってもよい。
【０２６０】
図９のコンピュータ３００は、Central Processing Unit（ＣＰＵ）３０１、Read Only Memory（ＲＯＭ）３０２、Random Access Memory（ＲＡＭ）３０３および通信インタフェース３０４を有する。また、コンピュータ３００は、入力装置３０５、出力装置３０６、記憶装置３０７および可搬型記憶媒体３１０の駆動装置３０８を有する。そして、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、通信インタフェース３０４、入力装置３０５、出力装置３０６、記憶装置３０７および駆動装置３０８は、バス３０９により互いに接続されている。
【０２６１】
入力装置３０５は、例えば、キーボードでもよいし、マウスなどのポインティングデバイスデバイスでもよいし、その組み合わせでもよい。出力装置３０６は、例えば、液晶ディスプレイ、スピーカ、プリンタ、またはそれらの任意の組み合わせである。
【０２６２】
記憶装置３０７は、ハードディスク装置、フラッシュメモリなどの不揮発性の半導体メモリ装置、またはその組み合わせである。記憶装置３０７は、図１の記憶部１０６を実現することができる。また、可搬型記憶媒体３１０としては、Compact Disc（ＣＤ）やDigital Versatile Disk（ＤＶＤ）などの光ディスク、光磁気ディスク、磁気ディスク、フラッシュメモリなどの不揮発性の半導体メモリカードなどが利用可能である。
【０２６３】
コンピュータ３００は、図９に示すように、通信インタフェース３０４とネットワーク３１１を介して、プログラム提供者３１２や外部装置３１３と接続されていてもよい。ネットワーク３１１は、Local Area Network（ＬＡＮ）やインターネットなどの任意のネットワークであり、プログラム提供者３１２は、具体的には他のコンピュータでもよい。
【０２６４】
なお、コンピュータ３００が自動体重選別装置の外部にある場合、外部装置３１３は、例えば、自動体重選別装置が有するＲＦＩＤリーダ、カメラ、スプレーのうちいずれか１つ以上の装置であってもよい。あるいは、実施形態によっては、コンピュータ３００は、不図示の接続インタフェースを介してＲＦＩＤリーダ、カメラまたはスプレーと直接接続されていてもよい。接続インタフェースとしては、例えば、Universal Serial Bus（ＵＳＢ）などのシリアルインタフェースが利用可能である。
【０２６５】
ＣＰＵ３０１は、ＲＡＭ３０３にプログラムをロードしてＲＡＭ３０３をワークエリアとして用いながらプログラムを実行することにより、図１の制御部１０５および推定部１０７として機能することもできる。同様に、ＣＰＵ３０１は、プログラムを実行することで、マーキング読み取り部１０４における画像認識機能を実現することもできる。
【０２６６】
そして、ＣＰＵ３０１が実行する上記プログラムは、予めＲＯＭ３０２または記憶装置３０７にインストールされていてもよいし、可搬型記憶媒体３１０に格納されて提供され、駆動装置３０８により読み取られて記憶装置３０７にコピーされてもよい。あるいは、上記プログラムは、プログラム提供者３１２により提供され、ネットワーク３１１を介して記憶装置３０７にダウンロードされてもよい。
【０２６７】
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。例えば、上記に例示した各種の数値は、説明の便宜上のものであり、他の値を利用することもできる。また、上記の実施形態は、下記（ｐ１）〜（ｐ７）の観点から様々に変形することができ、これらの変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。また、実施形態による効果の違いとしては下記（ｐ８）が挙げられる。
【０２６８】
（ｐ１）データの形式に関する変形
図３、４、６および８には、テーブル形式でデータを例示したが、データ形式は実施形態に応じて任意である。例えば、属性テーブル１１３、体重テーブル１１４、マーキングパターンテーブル１１５および対応づけテーブル１１６の代わりに、eXtensible Markup Language（ＸＭＬ）データベースを利用することもできる。
【０２６９】
また、ＩＤの体系も実施形態に応じて任意である。例えば、個体ＩＤとパターンＩＤが同じ値を取りうるような実施形態においては、図３の体重テーブル１１４が、ＩＤの種別を示すフィールドをさらに含んでいてもよい。例えば、体重テーブル１１４は、「ＩＤ」フィールドに記録されているＩＤが、個体ＩＤとパターンＩＤのいずれであるかを示すフラグのフィールドを含んでいてもよい。
【０２７０】
（ｐ２）処理タイミングに関する変形
図２の処理を自動体重選別装置１００が行うタイミングは、例えば上記のように１日に３回でもよいし、「朝食時のみ」のように１日に１回でもよいし、その他の任意のタイミングでもよい。また、図２の処理開始の契機は、例えば図９の入力装置３０５などを介して明示的に自動体重選別装置１００に与えられる開始命令であってもよいし、１頭目の豚２００が食事のために自動体重選別装置１００を通過するというイベントであってもよい。
【０２７１】
そして、図７の処理を推定部１０７が行うタイミングも任意である。さらに、推定部１０７は、図７の処理を１回だけ行って対応づけを確定させる代わりに、図７と類似の処理によって仮の対応づけの仕方を適宜入れ換えることを繰り返し、最後に対応づけを確定させてもよい。
【０２７２】
また、上記実施形態では図２の処理の実行のたびに図５の処理が実行されるが、推定部１０７はパターンＩＤと個体ＩＤの仮の対応づけをまとめてバッチ的に１回だけ行ってもよい。その場合、例えば、図２の処理が終了するたびに推定部１０７が記憶部１０６に終了日時を記録し、推定部１０７は記録された終了日時ごとに図５と類似の処理を行えばよい。
【０２７３】
（ｐ３）マッチングの対象に関しての動物の種類に応じた変形
図７の対応づけ確定処理では、仮の対応づけにより母豚が共通と見なされている豚同士の間で、成長曲線のマッチングが行われる。しかし、実施形態によっては、マーキングの施された動物と成長曲線が比較される対象は、母親が同じ子供同士とは限らない。
【０２７４】
兄弟間マッチング部１１２は、上記実施形態のような、母親が共通の子供同士での比較の代わりに、父親が共通の子供同士での比較、または父母ともに共通の子供同士での比較を行ってもよい。また、兄弟間マッチング部１１２は、上記実施形態のように、性別の違いによらず兄弟姉妹を比較の対象に含める代わりに、マーキングの施された動物が雄の場合には兄弟のみ、マーキングの施された動物が雌の場合には姉妹のみを比較の対象に含めてもよい。
【０２７５】
また、マーキングの施された動物の母親、父親またはその双方について、出生後の体重変化のデータが利用可能であるならば、母親、父親またはその双方の体重情報が、マーキングの施された動物の成長曲線の比較対象として利用されてもよい。
【０２７６】
また、少なくとも母親が共通の子供同士での成長曲線のマッチングを兄弟間マッチング部１１２が行う場合に、上記の「兄弟姉妹」、「兄弟」または「姉妹」は、「同時に生まれた子供同士のみ」を意味してもよいし、「違う時期に生まれた子供同士も含めた兄弟姉妹、兄弟、または姉妹」を意味してもよい。
【０２７７】
すなわち、図１の兄弟特定部１１１は、識別不能化個体の近親の個体を個体間の血統関係を示す血統情報に基づいて特定する近親特定手段の一例にすぎず、「近親」の範囲は動物の種類に応じて様々である。そして、図８の例では、血統情報の一例として母豚ＩＤが図示されているが、「近親」と見なす範囲に応じて、血統情報は、例えば父親のＩＤを含んでもよい。また、同時に生まれた子供同士か否かを判断するための血統情報として、出生日あるいは出生日時が使われてもよい。
【０２７８】
そして、図１の兄弟間マッチング部１１２は、特定された近親の個体の体重の変化の傾向に、パターンＩＤと対応づけられて体重テーブル１１４に格納されている体重情報の変化の傾向がどの程度適合するのか、適合の度合を判断するマッチング手段の一例である。実施形態に応じてマッチング手段がどのように実現されるにしろ、マーキングが施された動物に該当する個体の候補は、マッチング手段による判断の結果に基づいて絞り込まれる。
【０２７９】
（ｐ４）適用対象の動物の種類に応じた推定に関する変形
上記実施形態では、推定部１０７が体重情報に基づいてパターンＩＤと個体ＩＤの対応づけを推定している。しかし、実施形態によっては、推定部１０７は、体重情報以外の情報をさらに用いて推定を行ってもよい。
【０２８０】
例えば、動物の種類によっては、体毛の色や模様が個体ごとに異なる場合がある。その場合、属性テーブル１１３は、各個体ＩＤに対応づけて体毛の色や模様の特徴を記録するフィールドをさらに有していてもよい。
【０２８１】
そして、推定部１０７は、マーキング読み取り部１０４が動物を撮像した画像を取得し、画像認識処理を行って体毛の色や模様を認識してもよい。すると、推定部１０７は、認識した結果を使って、パターンＩＤと個体ＩＤの間の対応づけの仕方の潜在的な候補のうち、尤もらしさの低いものをふるい落とすことができる。
【０２８２】
例えば、「Ｐ０４」というパターンＩＤのマーキング２０２が施された個体の全身の体毛が白いとする。また、読み取り不能に陥っている複数の個体ＩＤがあり、そのうち「００００７」という個体ＩＤに対応する属性テーブル１１３のエントリでは、「頭が茶色」という特徴が記録されているとする。この場合、推定部１０７は、体重情報による推定の前または後に、「『Ｐ０４』と『００００７』の対応づけは間違っている可能性が高い」という判断をして、「Ｐ０４」と「００００７」の対応づけをふるい落とすことができる。
【０２８３】
（ｐ５）複数の装置間での連携に関する変形
図９を参照して説明したように、実施形態によっては、図１に示した一部の構成要素が、自動体重選別装置とは物理的に離れて存在するコンピュータによって実現されていてもよい。その場合、１台のコンピュータ３００が、複数の自動体重選別装置の制御部１０５、記憶部１０６および推定部１０７を兼ねていてもよい。あるいは、図１のような自動体重選別装置が複数台、ネットワークを介して互いに接続されていてもよい。
【０２８４】
このように複数の自動体重選別装置が運用される実施形態においては、属性テーブル１１３、体重テーブル１１４、マーキングパターンテーブル１１５および対応づけテーブル１１６は、各自動体重選別装置を識別するＩＤのフィールドを持っていてもよい。
【０２８５】
例えば、ある農場には複数棟の畜舎があり、各畜舎に１台ずつ自動体重選別装置が配置されているかもしれない。そして、同じ母親から生まれた兄弟姉妹が別々の畜舎で飼育されていることもあるかもしれない。そのような場合でも、複数の自動体重選別装置を１台のコンピュータで集中管理することにより、あるいは、自動体重選別装置同士が通信しあうことにより、別の畜舎で飼育されている兄弟も含めて、兄弟特定部１１１は兄弟を特定することが可能となる。このように兄弟の範囲が広がれば、兄弟間マッチング部１１２はより高い信頼度で、パターンＩＤと個体ＩＤとの間の対応づけを確定することが可能となる。
【０２８６】
（ｐ６）タグの種類に関する変形
ＲＦＩＤタグの耳標の代わりに、動物の体内に埋め込まれたトランスポンダが使われてもよい。動物の種類によっては、例えばボーラス（bolus）型のトランスポンダを動物に飲み込ませて耳標の代わりとすることもできる。トランスポンダの故障により、直接個体ＩＤが読み取れなくなったとしても、上記の実施形態によれば個体管理を続行することができる。
【０２８７】
また、耳標２０１の形状は任意であり、耳以外の部位に装着される電子タグが耳標２０１の代わりに利用されてもよい。
あるいは、１次元もしくは２次元のバーコード、記号、文字、またはその組み合わせが書かれた非電子式タグが、図１の耳標２０１の代わりに用いられてもよい。その場合、電磁波により耳標２０１から個体ＩＤを読み取る図１の個体ＩＤ読み取り部１０２の代わりに、例えば、カメラと図９のＣＰＵ３０１によって個体ＩＤが取得されてもよい。
【０２８８】
つまり、カメラが非電子式タグを撮像し、ＣＰＵ３０１は、撮像された画像に対して画像認識処理を行う。それにより、ＣＰＵ３０１は、非電子式タグに書かれた内容（つまり、１次元もしくは２次元のバーコード、記号、文字、またはその組み合わせなど）を認識し、認識した内容から個体ＩＤを得てもよい。
【０２８９】
また、タグの種類あるいは動物の種類によっては、例えば飼育員が、マーキングが施された動物を目視判断により判別し、新たなタグを動物に装着しなおしてもよい。新たなタグには、新たなＩＤが付与されていてもよいし、元の個体ＩＤとマーキングのパターンＩＤとの対応づけが確定済みならば、新たなタグには元の個体ＩＤが付与されていてもよい。
【０２９０】
（ｐ７）マーキングのパターンに関する変形
図４に例示したように、上記実施形態では、マーキング２０２のパターンは色の組み合わせで定義される。しかし、実施形態によっては、マーキング２０２のパターンは、色、形状、模様、文字、記号、またはそれらの任意の組み合わせにより定義されてもよい。例えば、マーキング２０２のパターンは、円形、三角形、四角形、直線、×印などの形状の違いにより定義されてもよいし、縦縞模様、横縞模様、水玉模様、市松模様などの模様の違いにより定義されてもよい。
【０２９１】
（ｐ８）動物の種類に応じた効果の違い
動物の種類によっては（あるいは、動物の商品としてのブランドによっては）、食品トレーサビリティの観点から個体管理が求められるかもしれない。その場合も、耳標の脱落、破損または故障にかかわらず動物の個体管理を続行することができれば、農場などの経営に良い影響がある。
【０２９２】
つまり、飼育している動物がトレース不能な状態に陥ると、せっかく育てた動物を殺処分にしたり、非ブランド商品として低価格で出荷したりせざるを得ない事態となるかもしれない。しかし、個体管理を続行することができれば、トレーサビリティを保つことができるので、そのような事態は防げる。よって、経営上の悪影響を防ぐことができる。
【０２９３】
このように、個体管理が望まれる理由は対象の動物によって様々だが、上記実施形態によれば、いずれにしろ、耳標の脱落、破損または故障にかかわらず動物の個体管理を続行することができる。
【０２９４】
最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。
（付記１）
動物の体重を示す体重情報を取得する第１の取得手段と、
前記動物を個体として識別する個体識別情報を取得することができたか否かを示す識別可否情報を取得する第２の取得手段と、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができなかったことを示す第１の場合、個体ごとに異なるパターンで前記動物にマーキングを施すマーキング手段と、
前記第１の場合、前記動物に施された前記マーキングの前記パターンを識別するパターン識別情報と対応づけて、前記体重情報を記憶装置に格納し、前記識別可否情報が、前記動物の前記個体識別情報を取得することができたことを示す第２の場合、前記個体識別情報と対応づけて前記体重情報を前記記憶装置に格納する格納処理手段と、
過去に複数の個体について前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記パターン識別情報と対応づけられて前記記憶装置に格納された前記体重情報に基づいて、前記マーキングが施された前記動物が前記複数の個体のうちのどの個体であるかを推定し、推定した結果にしたがって前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する推定手段
を備えることを特徴とする自動体重選別装置。
（付記２）
前記動物を撮像した画像から前記動物に前記マーキングが施されているか否かを判定し、前記動物に前記マーキングが施されていると判定した第３の場合はさらに当該マーキングのパターンを前記画像から識別して前記パターン識別情報を取得するパターン識別手段をさらに備え、
前記マーキング手段は、前記第１の場合のうち前記第３の場合ではないときに、前記動物に前記マーキングを施し、
前記格納処理手段は、
前記第１の場合と前記第３の場合の双方に該当するときには、前記パターン識別手段により取得された前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納し、
前記第１の場合のうち前記第３の場合ではないときには、前記マーキング手段が施した前記マーキングの前記パターンを示す前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納する
ことを特徴とする付記１に記載の自動体重選別装置。
（付記３）
前記推定手段が、
取得することができなかったと前記識別可否情報により示されている前記個体識別情報が割り当てられた個体である複数の識別不能化個体について、過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記複数の識別不能化個体それぞれの体重変化の許容範囲とに基づいて、前記マーキングが施された前記動物の前記体重が、前記複数の識別不能化個体のうちのいずれの前記許容範囲に含まれるかを調べるスクリーニング手段を備え、
前記マーキングが施された前記動物に該当する個体の候補を、当該動物の前記体重が前記許容範囲に含まれると前記スクリーニング手段により判断された前記識別不能化個体に絞り込んで、前記動物がどの個体であるかを推定する
ことを特徴とする付記１または２に記載の自動体重選別装置。
（付記４）
前記許容範囲は、
過去に計測された体重との差もしくは比により定義されるか、または
過去複数回にわたって計測された体重から予測される予測体重との差もしくは比により定義される
ことを特徴とする付記３に記載の自動体重選別装置。
（付記５）
前記スクリーニング手段は、さらに、
前記複数の識別不能化個体に対応する前記個体識別情報と、前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報との間の複数通りの対応づけの仕方について、それぞれ、
前記複数の識別不能化個体について過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの体重の変化から予測される、前記複数の識別不能化個体それぞれの予測体重と、
前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報に対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの実測体重と
の間のずれを前記複数の識別不能化個体について総合した総合的なずれを求め、
前記推定手段は、前記複数通りの対応づけの仕方の中で前記総合的なずれが相対的に小さな対応づけの仕方にしたがって、前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する
ことを特徴とする付記３または４に記載の自動体重選別装置。
（付記６）
前記推定手段が、
前記第１の場合において取得することができなかった前記個体識別情報が割り当てられた個体である識別不能化個体の近親の個体を、個体間の血統関係を示す血統情報に基づいて特定する近親特定手段と、
特定された前記近親の個体の体重の変化の傾向に、前記パターン識別情報と対応づけられて前記記憶装置に格納されている前記体重情報の変化の傾向が適合する度合を判断するマッチング手段を備え、
前記マーキングが施された前記動物に該当する個体の候補を、前記マッチング手段による判断の結果に基づいて絞り込んで、前記動物がどの個体であるかを推定する
ことを特徴とする付記１から５のいずれか１項に記載の自動体重選別装置。
（付記７）
コンピュータに、
動物の体重を示す体重情報を取得する第１の取得ステップと、
前記動物を個体として識別する個体識別情報を取得することができたか否かを示す識別可否情報を取得する第２の取得ステップと、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができなかったことを示す第１の場合、個体ごとに異なるパターンで前記動物にマーキングを施すようマーキング装置を制御するマーキング制御ステップと、
前記第１の場合、前記動物に施された前記マーキングの前記パターンを識別するパターン識別情報と対応づけて、前記体重情報を記憶装置に格納する第１の格納処理ステップと、
前記識別可否情報が、前記動物の前記個体識別情報を取得することができたことを示す第２の場合、前記個体識別情報と対応づけて前記体重情報を前記記憶装置に格納する第２の格納処理ステップと、
過去に複数の個体について前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記パターン識別情報と対応づけられて前記記憶装置に格納された前記体重情報に基づいて、前記マーキングが施された前記動物が前記複数の個体のうちのどの個体であるかを推定する推定ステップと、
推定した結果にしたがって前記個体識別情報と前記パターン識別情報を対応づけて前記記憶装置に格納する対応づけステップ
を実行させるプログラム。
（付記８）
前記動物を撮像した画像から前記動物に前記マーキングが施されているか否かを判定する判定ステップと、
前記動物に前記マーキングが施されていると判定した第３の場合はさらに当該マーキングのパターンを前記画像から識別して前記パターン識別情報を取得する第３の取得ステップを前記コンピュータにさらに実行させ、
前記第１の場合のうち前記第３の場合ではないときに前記マーキング制御ステップを前記コンピュータに実行させ、
前記第１の格納処理ステップにおいては、前記コンピュータに、
前記第１の場合と前記第３の場合の双方に該当するときには、前記第３の取得ステップで取得された前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納させ、
前記第１の場合のうち前記第３の場合ではないときには、前記マーキング手段が施した前記マーキングの前記パターンを示す前記パターン識別情報に対応づけて前記体重情報を前記記憶装置に格納させる
ことを特徴とする付記７に記載のプログラム。
（付記９）
前記推定ステップが、
取得することができなかったと前記識別可否情報により示されている前記個体識別情報が割り当てられた個体である複数の識別不能化個体について、過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報と、前記複数の識別不能化個体それぞれの体重変化の許容範囲とに基づいて、前記マーキングが施された前記動物の前記体重が、前記複数の識別不能化個体のうちのいずれの前記許容範囲に含まれるかを調べるスクリーニングステップと、
前記マーキングが施された前記動物に該当する個体の候補を、当該動物の前記体重が前記許容範囲に含まれると前記スクリーニングステップにおいて判断された前記識別不能化個体に絞り込んで、前記動物がどの個体であるかを推定する第１の絞り込みステップ
を含むことを特徴とする付記７または８に記載のプログラム。
（付記１０）
前記許容範囲は、
過去に計測された体重との差もしくは比により定義されるか、または
過去複数回にわたって計測された体重から予測される予測体重との差もしくは比により定義される
ことを特徴とする付記９に記載のプログラム。
（付記１１）
前記スクリーニングステップは、
前記複数の識別不能化個体に対応する前記個体識別情報と、前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報との間の複数通りの対応づけの仕方について、それぞれ、
前記複数の識別不能化個体について過去にそれぞれの前記個体識別情報と対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの体重の変化から予測される、前記複数の識別不能化個体それぞれの予測体重と、
前記複数の識別不能化個体に対してそれぞれ施された前記マーキングの前記パターンを識別するパターン識別情報に対応づけられて前記記憶装置に格納された前記体重情報が示す、前記複数の識別不能化個体それぞれの実測体重と
の間のずれを前記複数の識別不能化個体について総合した総合的なずれを求める算出ステップを含み、
前記対応づけステップでは、前記複数通りの対応づけの仕方の中で前記総合的なずれが相対的に小さな対応づけの仕方にしたがって、前記個体識別情報と前記パターン識別情報が対応づけられる
ことを特徴とする付記９または１０に記載のプログラム。
（付記１２）
前記推定ステップが、
前記第１の場合において取得することができなかった前記個体識別情報が割り当てられた個体である識別不能化個体の近親の個体を、個体間の血統関係を示す血統情報に基づいて特定する近親特定ステップと、
特定された前記近親の個体の体重の変化の傾向に、前記パターン識別情報と対応づけられて前記記憶装置に格納されている前記体重情報の変化の傾向が適合する度合を判断するマッチングステップと、
前記マーキングが施された前記動物に該当する個体の候補を、前記マッチングステップにおける判断の結果に基づいて絞り込んで、前記動物がどの個体であるかを推定する第２の絞り込みステップ
を含むことを特徴とする付記７から１１のいずれか１項に記載のプログラム。
【符号の説明】
【０２９５】
１００  自動体重選別装置
１０１  体重取得部
１０２  個体ＩＤ読み取り部
１０３  マーキング部
１０４  マーキング読み取り部
１０５  制御部
１０６  記憶部
１０７  推定部
１０８  動作制御部
１０９  格納処理部
１１０  スクリーニング部
１１１  兄弟特定部
１１２  兄弟間マッチング部
１１３  属性テーブル
１１４  体重テーブル
１１５  マーキングパターンテーブル
１１６、１１６ａ、１１６ｂ  対応づけテーブル
２００  豚
２０１  耳標
２０２  マーキング
３００  コンピュータ
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  通信インタフェース
３０５  入力装置
３０６  出力装置
３０７  記憶装置
３０８  駆動装置
３０９  バス
３１０  可搬型記憶媒体
３１１  ネットワーク
３１２  プログラム提供者
３１３  外部装置
【図１】
2011135786.tif 000006
【図２】
2011135786.tif 000007
【図３】
2011135786.tif 000008
【図４】
2011135786.tif 000009
【図５】
2011135786.tif 000010
【図６】
2011135786.tif 000011
【図７】
2011135786.tif 000012
【図８】
2011135786.tif 000013
【図９】
2011135786.tif 000014