root/applications/robust/main.cpp @ 1282

Revision 1282, 4.4 kB (checked in by sindj, 13 years ago)

Prvni pokusy s robustnim AR modelem. 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       
24       
25        vector<vector<vector<string>>> string_lists;
26        string_lists.push_back(vector<vector<string>>());
27        string_lists.push_back(vector<vector<string>>());
28        string_lists.push_back(vector<vector<string>>());
29
30        char* file_strings[3] = {"c:\\ar_normal.txt", "c:\\ar_student.txt", "c:\\ar_cauchy.txt"};
31       
32
33        for(int i = 0;i<3;i++)
34        {       
35                ifstream myfile(file_strings[i]);
36                if (myfile.is_open())
37                {
38                        while ( myfile.good() )
39                        {
40                                string line;
41                                getline(myfile,line);
42                               
43                                vector<string> parsed_line;
44                                while(line.find(',') != string::npos)
45                                {
46                                        int loc = line.find(',');
47                                        parsed_line.push_back(line.substr(0,loc));
48                                        line.erase(0,loc+1);                                   
49                                }                               
50
51                                string_lists[i].push_back(parsed_line);
52                        }
53                        myfile.close();
54                }
55        }
56
57        for(int j = 0;j<string_lists.size();j++)
58        { 
59               
60                for(int i = 0;i<string_lists[j].size();i++)
61                {
62                        vector<vec> conditions;
63                        emlig* emliga = new emlig(2);
64                        for(int k = 1;k<string_lists[j][i].size();k++)
65                        {
66                                vec condition;
67                                //condition.ins(0,1);                           
68                                condition.ins(0,string_lists[j][i][k]);                         
69                                conditions.push_back(condition);
70
71                                //cout << "orig:" << condition << endl;
72
73                                if(conditions.size()>1)
74                                {               
75                                        conditions[k-2].ins(0,string_lists[j][i][k]);
76                                       
77                                }
78
79                                if(conditions.size()>2)
80                                {
81                                        conditions[k-3].ins(0,string_lists[j][i][k]);
82
83                                        //cout << "modi:" << conditions[k-3] << endl;
84
85                                        emliga->add_condition(conditions[k-3]);
86
87                                        /*
88                                        if(k>5)
89                                        {
90                                                cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
91                                        }
92                                        */
93                                }
94                        }
95
96                        //emliga->step_me(0);
97                        cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
98                        cout << "Step: " << i << endl;
99                }
100
101                cout << "One experiment finished." << endl;
102        }
103
104       
105
106        //emlig* emlig1 = new emlig(emlig_size);
107       
108        /*
109        emlig1->set_correction_factors(4);
110
111        for(int j = 0;j<emlig1->correction_factors.size();j++)
112        {
113                for(set<my_ivec>::iterator vec_ref = emlig1->correction_factors[j].begin();vec_ref!=emlig1->correction_factors[j].end();vec_ref++)
114                {
115                        cout << j << "    ";
116                       
117                        for(int i=0;i<(*vec_ref).size();i++)
118                        {
119                                cout << (*vec_ref)[i];
120                        }
121
122                        cout << endl;
123                }
124        }*/
125       
126    /*
127        vec condition1 = "1.0 1.0 1.01";
128        emlig1->add_condition(condition1);
129
130        vec condition2 = "-1.0 1.0 1.0";
131        emlig1->add_condition(condition2);
132
133        vec condition3 = "0.5 -1.01 1.0";
134        emlig1->add_condition(condition3);
135
136        vec condition4 = "-0.5 -1.0 1.0";
137        emlig1->add_condition(condition4);
138
139        cout << emlig1->minimal_vertex->get_coordinates();
140
141        //vec condition5 = "-0.3 1.7 1.5";
142        //emlig1->add_condition(condition5);
143
144        // DA SE POUZIT PRO VYPIS DO SOUBORU
145        // emlig1->step_me(0);
146
147        //emlig1->remove_condition(condition1);
148
149       
150
151       
152        /*
153       
154        for(int i = 0;i<100;i++)
155        {
156                cout << endl << "Step:" << i << endl;           
157
158                double condition[emlig_size+1];         
159
160                for(int k = 0;k<=emlig_size;k++)
161                {
162                        condition[k] = (rand()-RAND_MAX/2)/1000.0;             
163                }
164                       
165
166                vec* condition_vec = new vec(condition,emlig_size+1);
167                emlig1->add_condition(*condition_vec);
168
169                /*
170                for(polyhedron* toprow_ref = emlig1->statistic.rows[emlig_size]; toprow_ref != emlig1->statistic.end_poly; toprow_ref = toprow_ref->next_poly)
171                {
172                        cout << ((toprow*)toprow_ref)->probability << endl;
173                }
174                */
175                /*
176                cout << emlig1->statistic_rowsize(emlig_size) << endl << endl;
177       
178                /*
179                if(i-emlig1->number_of_parameters >= 0)
180                {
181                        pause(30);
182                }
183                */
184
185                // emlig1->step_me(i);
186               
187                /*
188                vector<int> sizevector;
189                for(int s = 0;s<=emlig1->number_of_parameters;s++)
190                {
191                        sizevector.push_back(emlig1->statistic_rowsize(s));
192                }
193                */
194        //}
195   
196
197
198       
199        /*
200        emlig1->step_me(1);
201
202        vec condition = "2.0 0.0 1.0"; 
203
204        emlig1->add_condition(condition);
205
206        vector<int> sizevector;
207        for(int s = 0;s<=emlig1->number_of_parameters;s++)
208        {
209                sizevector.push_back(emlig1->statistic_rowsize(s));
210        }
211
212        emlig1->step_me(2);
213
214        condition = "2.0 1.0 0.0";
215
216        emlig1->add_condition(condition);
217
218        sizevector.clear();
219        for(int s = 0;s<=emlig1->number_of_parameters;s++)
220        {
221                sizevector.push_back(emlig1->statistic_rowsize(s));
222        }
223        */
224
225        return 0;
226}
227
228
Note: See TracBrowser for help on using the browser.