Skip to content

Commit 360e126

Browse files
author
griffan
committed
resume randome initialization of alpha
1 parent da4e656 commit 360e126

File tree

1 file changed

+44
-16
lines changed

1 file changed

+44
-16
lines changed

ContaminationEstimator.cpp

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ int ContaminationEstimator::OptimizeLLK(const std::string &OutputPrefix) {
3131
if (isPCFixed) {
3232
std::cout << "Estimation from OptimizeHomoFixedPC:" << std::endl;
3333
fout<< "Estimation from OptimizeHomoFixedPC:" << std::endl;
34-
for (auto alphaTrial: candidateAlphaSet) {
35-
alpha = alphaTrial;//all the initializations in this function are for AmoebaMinimizer simplex
36-
if(OptimizeHomoFixedPC(myMinimizer)) break;
37-
}
34+
// for (auto alphaTrial: candidateAlphaSet) {
35+
// alpha = alphaTrial;//all the initializations in this function are for AmoebaMinimizer simplex
36+
// if(OptimizeHomoFixedPC(myMinimizer)) break;
37+
// }
38+
alpha = fabs(static_cast <double> (rand()) / static_cast <double> (RAND_MAX));//all the initializations in this function are for AmoebaMinimizer simplex
39+
OptimizeHomoFixedPC(myMinimizer);
3840
} else if (isAlphaFixed) {
3941
std::cout << "Estimation from OptimizeHomoFixedAlpha:" << std::endl;
4042
fout<< "Estimation from OptimizeHomoFixedAlpha:" << std::endl;
@@ -43,25 +45,37 @@ int ContaminationEstimator::OptimizeLLK(const std::string &OutputPrefix) {
4345
}
4446
OptimizeHomoFixedAlpha(myMinimizer);
4547
} else {
46-
for (auto alphaTrial: candidateAlphaSet) {
48+
// for (auto alphaTrial: candidateAlphaSet) {
49+
// for (int k = 0; k < PC[0].size(); ++k) {
50+
// PC[0][k] = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
51+
// }
52+
// alpha = alphaTrial;
53+
// std::cout << "Estimation from OptimizeHomo:" << std::endl;
54+
// fout << "Estimation from OptimizeHomo:" << std::endl;
55+
// if(OptimizeHomo(myMinimizer)) break;
56+
// }
57+
4758
for (int k = 0; k < PC[0].size(); ++k) {
4859
PC[0][k] = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
4960
}
50-
alpha = alphaTrial;
61+
alpha = fabs(static_cast <double> (rand()) / static_cast <double> (RAND_MAX));
5162
std::cout << "Estimation from OptimizeHomo:" << std::endl;
5263
fout << "Estimation from OptimizeHomo:" << std::endl;
53-
if(OptimizeHomo(myMinimizer)) break;
54-
}
64+
OptimizeHomo(myMinimizer);
65+
5566
}
5667
} else//contamination source from different population
5768
{
5869
if (isPCFixed) {
5970
std::cout << "Estimation from OptimizeHeterFixedPC:" << std::endl;
6071
fout<< "Estimation from OptimizeHeterFixedPC:" << std::endl;
61-
for (auto alphaTrial: candidateAlphaSet) {
62-
alpha = alphaTrial;
63-
if(OptimizeHeterFixedPC(myMinimizer)) break;
64-
}
72+
// for (auto alphaTrial: candidateAlphaSet) {
73+
// alpha = alphaTrial;
74+
// if(OptimizeHeterFixedPC(myMinimizer)) break;
75+
// }
76+
alpha = fabs(static_cast <double> (rand()) / static_cast <double> (RAND_MAX));
77+
OptimizeHeterFixedPC(myMinimizer);
78+
6579
} else if (isAlphaFixed) {
6680
for (int k = 0; k < numPC; ++k) {
6781
PC[0][k] = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
@@ -78,20 +92,34 @@ int ContaminationEstimator::OptimizeLLK(const std::string &OutputPrefix) {
7892
isHeter = true;
7993
OptimizeHeterFixedAlpha(myMinimizer);
8094
} else {
81-
for (auto alphaTrial: candidateAlphaSet) {
95+
// for (auto alphaTrial: candidateAlphaSet) {
96+
// for (int k = 0; k < numPC; ++k) {
97+
// PC[0][k] = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
98+
// }
99+
// alpha = alphaTrial;
100+
// std::cout << "Estimation from OptimizeHeter:" << std::endl;
101+
// fout << "Estimation from OptimizeHeter:" << std::endl;
102+
// isHeter = false;
103+
// OptimizeHomo(myMinimizer);
104+
// PC[1] = PC[0];
105+
// fn.globalPC2 = fn.globalPC;
106+
// isHeter = true;
107+
// if (OptimizeHeter(myMinimizer)) break;
108+
// }
109+
82110
for (int k = 0; k < numPC; ++k) {
83111
PC[0][k] = static_cast <double> (rand()) / static_cast <double> (RAND_MAX);
84112
}
85-
alpha = alphaTrial;
113+
alpha = fabs(static_cast <double> (rand()) / static_cast <double> (RAND_MAX));
86114
std::cout << "Estimation from OptimizeHeter:" << std::endl;
87115
fout << "Estimation from OptimizeHeter:" << std::endl;
88116
isHeter = false;
89117
OptimizeHomo(myMinimizer);
90118
PC[1] = PC[0];
91119
fn.globalPC2 = fn.globalPC;
92120
isHeter = true;
93-
if (OptimizeHeter(myMinimizer)) break;
94-
}
121+
OptimizeHeter(myMinimizer);
122+
95123
}
96124
if(fn.globalAlpha >= 0.5)
97125
{

0 commit comments

Comments
 (0)