Generating a finite sigma-algebra
- To: mathgroup at smc.vnet.net
- Subject: [mg103828] Generating a finite sigma-algebra
- From: Valeri Astanoff <astanoff at gmail.com>
- Date: Thu, 8 Oct 2009 07:51:02 -0400 (EDT)
Good day,
Given a set and a list of its subsets, how can one
generate *the* sigma-algebra generated by the subsets ?
The original question was posted on another CAS group
and I tried and did it with Mathematica this way :
In[1]:= sigmaAlgebra[set_List, parts_List /; Depth[parts]==3] :=
With[{}, int[subs_List]:=
Outer[Intersection,subs,subs,1] // Flatten[#,1]& // Union;
un[subs_List]:=
Outer[Union,subs,subs,1] // Flatten[#,1]& // Union;
comp[om_List, subs_List]:=
Union[subs, Complement[om,#]& /@subs] ;
FixedPoint[int[un[comp[set,#]]]&,parts]
];
sigmaAlgebra[set_List, elements_List/;Depth[elements]==2] :=
sigmaAlgebra[set, List /@ elements];
In[3]:= sigmaAlgebra[{1,2,3,4,5}, {{1,2,3,4},{1,3},{4}}]
Out[3]= {{},{2},{4},{5},{1,3},{2,4},{2,5},{4,5},
{1,2,3},{1,3,4},{1,3,5},{2,4,5},
{1,2,3,4},{1,2,3,5},{1,3,4,5},{1,2,3,4,5}}
In[4]:= sigmaAlgebra[{1,2,3,4},{2,4}]
Out[4]= {{},{2},{4},{1,3},{2,4},
{1,2,3},{1,3,4},{1,2,3,4}}
Is that way correct and optimal, and if not, what is
the best and fastest way to get the sigma-algebra ?
Thanks
--
V.Astanoff