私は最終的にあなたの要件を理解すると思います。元の質問から、あなたが満足度調査のためのクライアントを探していたことは分かっていませんでした。以下は、あなたが必要とする選択肢を作成するためのアルゴリズムでの私のスタブです。
私のSQLは錆びているので、Access table tbtUserServiceをExcelにコピーしました。
表1
CustomerID ServiceType
25000005 Service 1 - Hostel and Community Residential
25000005 Service 2 - Therapy
25000010 Service 1 - Hostel and Community Residential
25000010 Service 2 - Day options
25000010 Service 2 - Therapy
25000011 Service 3 - LAC
: :
私は、クライアントごとに1つの行を作成するために、これらのレコードをマージして与えるGへとサービスの種類と名前を変更:私は与えることをクライアントとサービスの種類によってソート
表2
CustomerID Services
25000005 AD
25000010 ACD
25000011 E
25000012 DE
25000022 AD
25000031 A
: :
私はサービスによって、そのリストをソートしてからcounte D与えるために、各組み合わせの数:
表3
Services Number Services Number Services Number Services Number
A 182 AB 24 ABC 9 ABCD 34
ABCDE 8 ABCDEF 7 ABCDEFG 1 ABCDEG 6
ABCDF 2 ABCDG 1 ABCE 5 ABCEF 4
ABCEFG 2 ABCEG 5 ABCF 1 ABCG 2
ABD 17 ABDE 7 ABDEF 3 ABE 9
ABEF 3 ABEFG 4 ABF 2 AC 185
ACD 217 ACDE 18 ACDEF 8 ACDEFG 6
ACDEG 2 ACDF 44 ACDFG 1 ACDG 6
ACE 92 ACEF 12 ACEFG 6 ACEG 5
ACF 2 ACFG 2 ACG 3 AD 254
ADE 12 ADEF 4 ADF 4 AE 43
AEF 8 AEFG 3 AEG 4 AFG 6
B 143 BC 71 BCD 11 BCDE 18
BCDEF 13 BCDEFG 19 BCDEG 11 BCDF 1
BCDG 5 BCE 163 BCEF 47 BCEFG 16
BCEG 18 BCF 1 BCFG 2 BCG 1
BD 8 BDE 60 BDEF 20 BDEFG 1
BDEG 2 BDF 1 BE 260 BEF 34
BEFG 16 BEG 13 BF 4 BFG 1
BG 2 C 43 CD 3 CDE 143
CDEF 69 CDEFG 44 CDEG 26 CDF 3
CE 489 CEF 177 CEFG 55 CEG 82
CF 8 CG 1 D 111 DE 1726
DEF 130 DEFG 28 DEG 13 DF 1
E 5840 EF 312 EFG 40 EG 38
F 17 FG 2
次の目的は、クォータを満たすように選択されなければならないどのようにこれらの組合せのそれぞれの数を決定することです。
必要クォータがアクセステーブルtblProportionsからロードされた:以前のテーブルのいずれかを構築しながら
初期テーブル4
Service Type Numbers Req
A 446
B 426
C 458
D 446
E 1290
F 452
G 452
、Iは、各サービスの使用の合計数を計算したと結果を表4に追加して、以下のように与える:
Service Type Numbers Req Total uses
A 446 1285
B 426 1118
C 458 2236
D 446 3129
E 1290 10210
F 452 1197
G 452 501
私は4番目の列Ratioを追加し、t帽子の列。図から分かるように
ファイナル表4
Service Type Numbers Req Total uses Ratio
G 452 501 0.902195609
B 426 1118 0.381037567
F 452 1197 0.377610693
A 446 1285 0.347081712
C 458 2236 0.204830054
D 446 3129 0.142537552
E 1290 10210 0.126346719
、サービスGのクライアントの90%がGのクォータを満たすように選択されなければなりません。したがって、Gの割当量は、B、Fなどの割当量よりも前に考慮する必要があります。
表3(上下に読む)では、サービスGを含む最初のエントリは、Gのクォータへの寄与として選択された1つのオカレンスがあるABCDEFGです。しかし、それはまた、A、B、C、D、E、およびFの割当てに寄与する。
選択プロセスの完全な複雑さは、サービスBを考慮することによってよりよく実証される。 24回の出現がある。サービスBの比率は38%なので、これらのうち8つをBのクォータへの寄付として選択します。これはAのクォータに対する8の貢献度ですが、他の16のオカレンスはBのクォータを超える可能性があるため、選択できません。つまり、Aのクォータ446に向かって8人のクライアントを選択しましたが、Aクォータに割り当てられるクォータの数を1285から24で減らしました。したがって、すべての選択で、選択した合計を維持して選択する必要があります。各サービスの
クォータは次のように選択することによって満たすことができる。
表5
Services Slct'd Services Slct'd Services Slct'd Services Slct'd
A 58 AB 8 ABC 3 ABCD 11
ABCDE 2 ABCDEF 2 ABCDEFG 1 ABCDEG 5
ABCDF 1 ABCDG 1 ABCE 2 ABCEF 1
ABCEFG 2 ABCEG 5 ABCF 1 ABCG 2
ABD 5 ABDE 2 ABDEF 1 ABE 3
ABEF 1 ABEFG 4 ABF 1 AC 0
ACD 0 ACDE 0 ACDEF 2 ACDEFG 5
ACDEG 2 ACDF 10 ACDFG 1 ACDG 5
ACE 0 ACEF 3 ACEFG 5 ACEG 5
ACF 1 ACFG 2 ACG 3 AD 157
ADE 0 ADEF 1 ADF 1 AE 107
AEF 2 AEFG 3 AEG 4 AFG 5
B 44 BC 22 BCD 3 BCDE 6
BCDEF 4 BCDEFG 17 BCDEG 10 BCDF 1
BCDG 4 BCE 51 BCEF 15 BCEFG 14
BCEG 16 BCF 1 BCFG 2 BCG 1
BD 2 BDE 19 BDEF 6 BDEFG 1
BDEG 2 BDF 1 BE 79 BEF 11
BEFG 14 BEG 12 BF 1 BFG 1
BG 2 C 0 CD 0 CDE 0
CDEF 15 CDEFG 40 CDEG 23 CDF 1
CE 0 CEF 5 CEFG 49 CEG 74
CF 0 CG 1 D 0 DE 0
DEF 38 DEFG 25 DEG 12 DF 1
E 402 EF 90 EFG 36 EG 34
F 5 FG 2
このテーブルのゼロの数があります。たとえば、サービスCのクォータがG、B、Fのクォータを満たしているため、AC、ACD、またはACDEは選択されていません。おそらく、すべての組み合わせの1つを選択した最初のパスがあったはずです。
最終段階は、これはすべての第A.
を約選択することにより、標準名とアルゴリズムのために使用されるものとの間の関係を達成することになる表2の182から表5のように58を選択するであろうおそらく以前に記載されているはずですが、表6
A Service 1 - Hostel and Community Residential
B Service 1 - Supported Community Living
C Service 2 - Day options
D Service 2 - Therapy
E Service 3 - LAC
F Service 4 - Family support
G Service 4 - Respite
少し以降の整理整頓が必要になり、これらの結果を作成するために使用されるコードに示されているが、それは有用であろう場合、私はこの答えにそれを追加することができます。
あなたの説明にはそこにないものを読んでいるかもしれませんが、あなたは2つの方法で 'サービスタイプ'を使用しているようです。あなたに私の解釈を教えてあげましょう。ジョンは、サービスが必要な様々な健康問題(糖尿病、てんかん、高血圧、まれな遺伝病)を持っています。地元のサービスチームには専門はありますが、どんな条件にも対応できます。選ぶことで、Johnは "Rare conditions"チームに割り当てられますが、どのチームもこれを行います。私は正しいか、あなたの説明を修正する必要がありますか?いずれにせよ、あなたが手動でこれをどうやって行うかについてのいくつかのアイデアは、私が信じるでしょう。 –
あなたはこれを見たことがありますか:[関連する可能性のある質問と回答](http://stackoverflow.com/questions/4765015/algorithm-for-fairly-assigning-tasks-to-workers-based-on-skills) –
サービスはものです宿泊施設、設備、援助施設などのように、人々は1つまたは複数のものにアクセスすることができます。私は無作為に全人口のサンプルを選び、そのサンプルから全人口に基づいてクォータに合わせる必要があります。 – vbevan