root/applications/robust/main.cpp @ 1300

Revision 1300, 5.5 kB (checked in by sindj, 14 years ago)

Dalsi update merge polyhedronu. Rozhodovani o prislusnosti k podmince predelano z urcovani podle souradnic na urcovani podle materskych podminek (nedodelano - je treba dodelat progresovani podminek).JS

Line 
1
2/*!
3\file
4\brief Robust
5\author Vasek Smidl
6
7 */
8
9#include "robustlib.h"
10#include <vector>
11#include <iostream>
12#include <fstream>
13
14using namespace itpp;
15//using namespace bdm;
16
17const int emlig_size = 2;
18
19
20int main ( int argc, char* argv[] ) {
21       
22        /*
23        vector<vector<vector<string>>> string_lists;
24        string_lists.push_back(vector<vector<string>>());
25        string_lists.push_back(vector<vector<string>>());
26        string_lists.push_back(vector<vector<string>>());
27
28        char* file_strings[3] = {"c:\\ar_normal.txt", "c:\\ar_student.txt", "c:\\ar_cauchy.txt"};
29       
30
31        for(int i = 0;i<3;i++)
32        {       
33                ifstream myfile(file_strings[i]);
34                if (myfile.is_open())
35                {
36                        while ( myfile.good() )
37                        {
38                                string line;
39                                getline(myfile,line);
40                               
41                                vector<string> parsed_line;
42                                while(line.find(',') != string::npos)
43                                {
44                                        int loc = line.find(',');
45                                        parsed_line.push_back(line.substr(0,loc));
46                                        line.erase(0,loc+1);                                   
47                                }                               
48
49                                string_lists[i].push_back(parsed_line);
50                        }
51                        myfile.close();
52                }
53        }
54
55        for(int j = 0;j<string_lists.size();j++)
56        {
57                /*
58                for(int i = 0;i<string_lists[j].size()-1;i++)
59                {
60                        vector<vec> conditions;
61                        emlig* emliga = new emlig(2);
62                        for(int k = 1;k<string_lists[j][i].size();k++)
63                        {
64                                vec condition;
65                                //condition.ins(0,1);                           
66                                condition.ins(0,string_lists[j][i][k]);                         
67                                conditions.push_back(condition);
68
69                                //cout << "orig:" << condition << endl;
70
71                                if(conditions.size()>1)
72                                {               
73                                        conditions[k-2].ins(0,string_lists[j][i][k]);
74                                       
75                                }
76
77                                if(conditions.size()>2)
78                                {
79                                        conditions[k-3].ins(0,string_lists[j][i][k]);
80
81                                        //cout << "modi:" << conditions[k-3] << endl;
82
83                                        emliga->add_condition(conditions[k-3]);
84
85                                       
86                                        //if(k>5)
87                                        //{
88                                        //      cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
89                                        //}
90                                       
91                                }                               
92                               
93                        }
94
95                        //emliga->step_me(0);
96                        ofstream myfile;
97                        myfile.open("c:\\robust_ar1.txt",ios::app);
98                        myfile << emliga->minimal_vertex->get_coordinates()[0] << ";";
99                        myfile.close();
100
101                        myfile.open("c:\\robust_ar2.txt",ios::app);
102                        myfile << emliga->minimal_vertex->get_coordinates()[1] << ";";
103                        myfile.close();
104
105                        cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
106                        cout << "Step: " << i << endl;
107                }
108
109                cout << "One experiment finished." << endl;
110
111                ofstream myfile;
112                myfile.open("c:\\robust_ar1.txt",ios::app);
113                myfile << endl;
114                myfile.close();
115
116                myfile.open("c:\\robust_ar2.txt",ios::app);
117                myfile << endl;
118                myfile.close();
119        }
120    */
121       
122       
123        emlig* emlig1 = new emlig(emlig_size);
124        emlig* emlig2 = new emlig(emlig_size);
125       
126        /*
127        emlig1->set_correction_factors(4);
128
129        for(int j = 0;j<emlig1->correction_factors.size();j++)
130        {
131                for(set<my_ivec>::iterator vec_ref = emlig1->correction_factors[j].begin();vec_ref!=emlig1->correction_factors[j].end();vec_ref++)
132                {
133                        cout << j << "    ";
134                       
135                        for(int i=0;i<(*vec_ref).size();i++)
136                        {
137                                cout << (*vec_ref)[i];
138                        }
139
140                        cout << endl;
141                }
142        }*/
143       
144       
145    vec condition5 = "1.0 1.0 1.01";//"-0.3 1.7 1.5";
146
147        emlig1->add_condition(condition5);
148       
149        //vec condition1a = "1.0 1.0 1.01";
150        //vec condition1b = "1.0 1.0 1.01";
151        //emlig1->add_condition(condition1a);
152        //emlig2->add_condition(condition1b);
153
154        //vec condition2a = "-1.0 1.0 1.0";
155        //vec condition2b = "-1.0 1.0 1.0";
156        //emlig1->add_condition(condition2a);
157        //emlig2->add_condition(condition2b);
158
159        //vec condition3a = "0.5 -1.01 1.0";
160        //vec condition3b = "0.5 -1.01 1.0";
161
162        //emlig1->add_condition(condition3a);
163        //emlig2->add_condition(condition3b);   
164
165        //vec condition4a = "-0.5 -1.0 1.0";
166        //vec condition4b = "-0.5 -1.0 1.0";   
167
168        //emlig1->add_condition(condition4a);
169        //cout << "************************************************" << endl;
170        //emlig2->add_condition(condition4b);
171        //cout << "************************************************" << endl;
172       
173        //cout << emlig1->minimal_vertex->get_coordinates();
174       
175        emlig1->remove_condition(condition5);
176
177        //emlig1->step_me(0);
178        //emlig2->step_me(0);
179       
180
181        // DA SE POUZIT PRO VYPIS DO SOUBORU
182        // emlig1->step_me(0);
183
184        //emlig1->remove_condition(condition1);
185
186       
187
188       
189        /*
190       
191        for(int i = 0;i<100;i++)
192        {
193                cout << endl << "Step:" << i << endl;           
194
195                double condition[emlig_size+1];         
196
197                for(int k = 0;k<=emlig_size;k++)
198                {
199                        condition[k] = (rand()-RAND_MAX/2)/1000.0;             
200                }
201                       
202
203                vec* condition_vec = new vec(condition,emlig_size+1);
204                emlig1->add_condition(*condition_vec);
205
206                /*
207                for(polyhedron* toprow_ref = emlig1->statistic.rows[emlig_size]; toprow_ref != emlig1->statistic.end_poly; toprow_ref = toprow_ref->next_poly)
208                {
209                        cout << ((toprow*)toprow_ref)->probability << endl;
210                }
211                */
212                /*
213                cout << emlig1->statistic_rowsize(emlig_size) << endl << endl;
214       
215                /*
216                if(i-emlig1->number_of_parameters >= 0)
217                {
218                        pause(30);
219                }
220                */
221
222                // emlig1->step_me(i);
223               
224                /*
225                vector<int> sizevector;
226                for(int s = 0;s<=emlig1->number_of_parameters;s++)
227                {
228                        sizevector.push_back(emlig1->statistic_rowsize(s));
229                }
230                */
231        //}
232   
233
234
235       
236        /*
237        emlig1->step_me(1);
238
239        vec condition = "2.0 0.0 1.0"; 
240
241        emlig1->add_condition(condition);
242
243        vector<int> sizevector;
244        for(int s = 0;s<=emlig1->number_of_parameters;s++)
245        {
246                sizevector.push_back(emlig1->statistic_rowsize(s));
247        }
248
249        emlig1->step_me(2);
250
251        condition = "2.0 1.0 0.0";
252
253        emlig1->add_condition(condition);
254
255        sizevector.clear();
256        for(int s = 0;s<=emlig1->number_of_parameters;s++)
257        {
258                sizevector.push_back(emlig1->statistic_rowsize(s));
259        }
260        */
261
262        return 0;
263}
264
265
Note: See TracBrowser for help on using the browser.