LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
spaceClosedMultiCS.m
1function SS = spaceClosedMultiCS(M, N, chains)
2% SS = SPACECLOSEDMULTICS(M, N, CHAINS)
3
4% Copyright (c) 2012-2026, Imperial College London
5% All rights reserved.
6
7% State space for closed multiclass CQN with class-switching
8
9C = size(chains,1);
10chainInitPos = cell(1,C);
11for c=1:C
12 inchain=find(chains(c,:));
13 chainInitPos{c} = multichoose(length(inchain),sum(N(inchain)));
14end
15SS = [];
16chainInitPosLen = cellfun(@(c) size(c,1),chainInitPos)-1;
17v = pprod(chainInitPosLen);
18while v>=0
19 subN = [];
20 for c=1:C
21 subN((end+1):(end+size(chainInitPos{c},2))) = chainInitPos{c}(v(c)+1,:);
22 end
23 SS = [SS; State.spaceClosedMulti(M, subN)];
24 v = pprod(v,chainInitPosLen);
25end
26end