LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
test_qrf_noblo_mmi.m
1%% QRF BAS test from code release
2%function [UUB,ULB,ID]=runquadraticfcrbas(MAP,N,P,F,MM)
3addpath C:\Users\csg\Dropbox\experiments\09_mapqnfc\
4mapstr='exp';
5P=[0,1; 1,0];
6%MAPs={map_exponential(1); map_exponential(1)};
7MAPs={map_rand(2); map_exponential(1)};
8M = length(MAPs);
9N=3; %(F1+1)
10F1=2; F=[min([N,F1]),N,N,N];
11[XN,QNctmc,UNctmc,EN,p,p1,p1c,p2,MAPQN,MM]=mapqnfc_ezsolve_bas(MAPs,N,P,ones(size(MAPs,1),N),F);
12QNctmc, UNctmc
13M=length(MAPs);
14for i=1:M
15 K(i)=size(MAPs{i}{1},1);
16end
17r = zeros(M);
18for i=1:M
19 for j=1:M
20 r(i,j)=P(i,j);
21 end
22end
23for i=1:M
24 for h=1:size(MAPs{i}{1},1)
25 for k=1:size(MAPs{i}{1},1)
26 mu(i,h,k)=MAPs{i}{2}(h,k);
27 end
28 end
29end
30for i=1:M
31 for h=1:size(MAPs{i}{1},1)
32 for k=1:size(MAPs{i}{1},1)
33 if h==k
34 v(i,k,h)=0;
35 else
36 v(i,k,h)=MAPs{i}{1}(h,k);
37 end
38 end
39 end
40end
41MR=size(MM,1);
42for m=1:size(MM,1)
43 for j=1:M
44 BB(m,j)=any(find(MM(m,:)==j));
45 end
46end
47ZZ=[];
48for m=1:size(MM,1)
49 ZZ(m)=nnz(MM(m,:));
50end
51ZM=max(ZZ);
52MM1=[];
53for m=1:size(MM,1)
54 if nnz(MM(m,:)) == max(ZZ)-1
55 for j=1:M
56 M1 = MM(m,:);
57 M1(end) = j;
58 m1=matchrow(MM,M1);
59 MM1(m,j)=m1;
60 end
61 end
62end
63%%
64% [UNqrf,QNqrf] = qrf_bas_mmi(1,M,MR,MM,MM1,ZZ,ZM,BB,K,F,N,mu,v,r);
65% UNex=UNctmc(:)'
66% UNap=UNqrf
67% QNex=QNctmc(:)'
68% QNap=QNqrf/sum(QNqrf)*N
69% [UNqrf,QNqrf] = qrf_bas_mem(1,M,MR,MM,MM1,ZZ,ZM,BB,K,F,N,mu,v,r);
70% UNex=UNctmc(:)'
71% UNap=UNqrf
72% QNex=QNctmc(:)'
73% QNap=QNqrf/sum(QNqrf)*N
74[UNqrf,QNqrf] = qrf_bas_mmi_simple(1,M,MR,BB,K,F,N,mu,v,r);
75UNex=sum(UNctmc,2)'
76UNap=UNqrf
77QNex=sum(QNctmc,2)'
78QNap=QNqrf/sum(QNqrf)*N