2005年 1月 1日 | 抱き合わせ商品は、再帰か HDR-DTL か | >> 目次 (作成日順) |
● QUESTION | 抱き合わせ商品は、再帰か HDR-DTL (あるいは、サブセット) か。 | |
▼ ANSWER | いずれも、成立する。 | |
2010年 1月16日 補遺 |
回帰 (recursive) は、数学的には、「帰納的に可算である」 ことをいう。すなわち、自然数の集合 A が、原始帰納的関数 g: N → N を使って、A = { g (0), g (1),・・・} と表現されるなら、A は、「帰納的に可算である」 という。「帰納的に可算である」 ということは、A の メンバー を並べる計算手順がある、ということ──ただし、メンバー は、大きさの順に並んでいなくてもいいし、同じ値がくりかえされてもよい。さらに、空集合も帰納的に可算である、とされる。 数学的な回帰を応用して、データ 構造では、以下の 2点を、再帰の前提としている。
(1) 「自己言及」 型の構造である。 したがって、再帰の典型的な構造として、「部品構成」 や 「伝票の赤黒方式」 がある──それらのほかにも、代替品の指示や、工程の構成や、コール する (calling) プログラム と コール される (called) プログラム などがあって、再帰の適用は、多い。 さて、「抱き合わせ」 セールス の対象となる商品 (2つの商品) は、再帰の構造かどうか、という点を以下の 2つの状態のなかで考えてみる。
(1) 「抱き合わせ」 セールス の商品は、事前に、構成されている (ルール 化されている)。 もし、たとえば、陳腐化のおそれがある商品を一掃するために、「抱き合わせ」 形態として、セールス を促進をしたのであれば──たとえば、陳腐化のおそれがある商品 B を、商品 A と抱き合わせて セールス したのであれば──「抱き合わせ」 商品かどうか、という点は、データ として、記録の対象にはならないかもしれない。もし、利益計画の一環として、「抱き合わせ」 セールス を実施したのであれば──たとえば、商品 B を半値にして、商品 A と抱き合わせた セールス の限界利益と、商品 A と商品 B を、それぞれ、個々に セールス した際の限界利益を比較するのであれば──、「抱き合わせ」 の構成は、記録されていなければならない。 (2) であれば、2つの商品が組みになって セールス されたのだから、{ 商品 コード (R)、商品 コード (R) } は、1つの組番号として置換してもよい。セールス した事実と、商品が セールス の際に編成する構成は、べつの意味である。もし、「抱き合わせ」 商品に対して、新たな商品 コード (疑似 コード) を使うのであれば、以下の記述となる。
売上 HDR { 売上伝票番号、売上日、・・・}. [ E ]
商品 { 商品 コード、商品名称、値段、・・・}. [ R ] ただし、上述した構造は、(DA 有段者向けの) 簡略された構造であって、たとえば、構造を観て、DTL の商品 コード のなかに、疑似 コード が記述されることは、なかなか、理解しにくい。正確には、以下の構造が正しい。
売上 HDR { 売上伝票番号、売上日、・・・}. [ E ]
商品 [ R ] 商品. 商品. 再帰 {商品 コード [ 疑似 コード ](R)、商品 コード (R) }. [ 再帰 ]
売上 HDR { 売上伝票番号、売上日、・・・}. [ E ] 商品 { 商品 コード、商品名称、値段、・・・}. [ R ]
売上 HDR { 売上伝票番号、売上日、・・・}. [ E ] 商品 { 商品 コード、商品名称、値段、・・・}. [ R ] あるいは、抱き合わせにした 2つの商品のそれぞれに対して値段を割引くかもしれない。どの商品と、どの商品が 「抱き合わせ」 セールス の対象になったのかという構成は──店の人が知っているが──、データ 構造のなかには、明示的に記述されない。もし、「抱き合わせ」 構成を、明示的に記録したいのであれば、構成を、コンピュータ のなかに、入力しなければならない。
(1) 2つの商品のあいだには、なんらかの 「主従」 関係が成立している。
(1) は、たとえば、前述したように、商品 B を半値にして、商品 A と抱き合わせて、商品 A あるいは 商品 B の販促を目的とした形態が考えられる。こういう形態であれば、「抱き合わせ」 構成は、再帰となる。 再帰では、厳正に言えば、メンバー を並べる手順がなければならない。しかし、現実的には、「商品 A に対して、商品 B は、抱き合わせの関係にある」 という言いかたと、「商品 A と商品 B を抱き合わせにする」 という言いかたには、ほとんど、相違がないのではないか。逆の言いかたをすれば、「商品 A と商品 B を抱き合わせにする」 という意味を、「商品 A に対して、商品 B は、抱き合わせ関係にある」 として理解しても良い、ということになるのではないか。とすれば、(2) も、再帰として記述しても良い、と思う。 「抱き合わせ商品」 という小さな現象であっても、データ 構造として、再帰や HDR-DTL や サブセット などの様々な構造が選択される (構造を作ることになる)──それらのなかから、適正な構造を選ぶことになる (作ることになる)。したがって、1つの デザイン・パターン を適用することはできない。 |
[ 補遺 ] (2010年 1月16日)
本 エッセー に関して、取り立てて補遺はいらないでしょう。 なお、HDR-DTL の記述に関して、本 エッセー では、null を使って 「相違の サブセット」 構成として説明していますが間違いです。当時は、いまだ、HDR-DTL の性質を掴み切れていなかった。HDR-DTL は、合成関数です (あるいは、ファンクター です)。したがって、null で記述するのではなくて、「概念的スーパーセット」 で記述するのが正しい。HDR-DTL の構成については、本 ホームページ 85ページ の 「補遺」 を参照してください。 再帰 (あるいは、回帰) は、基本的に、帰納関数で、ひとつの集合のなかの メンバー を並べることだというふうに覚えておけばいいでしょうね。いっぽう、HDR-DTL は、「多価関数 (あるいは、多値関数)」 で──あるいは、合成関数で──、DTL が 「AND 関係」 であれば、複数の値が同時に充足されると覚えておけばいいでしょう。 |
<< もどる | HOME | すすむ >> | |
▼ データ解析に関するFAQ |