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

RevLine 
[976]1
2/*!
3\file
4\brief Robust
5\author Vasek Smidl
6
7 */
8
9#include "robustlib.h"
[1216]10#include <vector>
[1284]11#include <iostream>
[1282]12#include <fstream>
13
[1208]14using namespace itpp;
[1275]15//using namespace bdm;
[976]16
[1275]17const int emlig_size = 2;
[1268]18
[1272]19
[976]20int main ( int argc, char* argv[] ) {
21       
[1300]22        /*
[1282]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>>());
[1186]27
[1282]28        char* file_strings[3] = {"c:\\ar_normal.txt", "c:\\ar_student.txt", "c:\\ar_cauchy.txt"};
[1268]29       
[1282]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        {
[1300]57                /*
[1284]58                for(int i = 0;i<string_lists[j].size()-1;i++)
[1282]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
[1299]85                                       
86                                        //if(k>5)
87                                        //{
88                                        //      cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
89                                        //}
90                                       
91                                }                               
92                               
[1282]93                        }
94
95                        //emliga->step_me(0);
[1284]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
[1282]105                        cout << "MaxLik coords:" << emliga->minimal_vertex->get_coordinates() << endl;
106                        cout << "Step: " << i << endl;
107                }
108
109                cout << "One experiment finished." << endl;
[1284]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();
[1282]119        }
[1300]120    */
[1282]121       
[1300]122       
123        emlig* emlig1 = new emlig(emlig_size);
124        emlig* emlig2 = new emlig(emlig_size);
125       
[1267]126        /*
127        emlig1->set_correction_factors(4);
[1266]128
[1267]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                {
[1268]133                        cout << j << "    ";
134                       
[1267]135                        for(int i=0;i<(*vec_ref).size();i++)
136                        {
137                                cout << (*vec_ref)[i];
138                        }
139
140                        cout << endl;
141                }
[1268]142        }*/
143       
[1300]144       
145    vec condition5 = "1.0 1.0 1.01";//"-0.3 1.7 1.5";
146
[1299]147        emlig1->add_condition(condition5);
148       
[1300]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);
[1267]153
[1300]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);
[1234]158
[1300]159        //vec condition3a = "0.5 -1.01 1.0";
160        //vec condition3b = "0.5 -1.01 1.0";
[1280]161
[1300]162        //emlig1->add_condition(condition3a);
163        //emlig2->add_condition(condition3b);   
[1280]164
[1300]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       
[1299]173        //cout << emlig1->minimal_vertex->get_coordinates();
[1300]174       
175        emlig1->remove_condition(condition5);
[1275]176
[1299]177        //emlig1->step_me(0);
178        //emlig2->step_me(0);
179       
[1282]180
181        // DA SE POUZIT PRO VYPIS DO SOUBORU
[1275]182        // emlig1->step_me(0);
183
184        //emlig1->remove_condition(condition1);
185
186       
187
188       
189        /*
[1282]190       
191        for(int i = 0;i<100;i++)
[1219]192        {
[1282]193                cout << endl << "Step:" << i << endl;           
[1208]194
[1268]195                double condition[emlig_size+1];         
[1220]196
[1268]197                for(int k = 0;k<=emlig_size;k++)
198                {
[1272]199                        condition[k] = (rand()-RAND_MAX/2)/1000.0;             
[1268]200                }
201                       
[1216]202
[1268]203                vec* condition_vec = new vec(condition,emlig_size+1);
[1219]204                emlig1->add_condition(*condition_vec);
[1271]205
[1272]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                */
[1275]212                /*
[1271]213                cout << emlig1->statistic_rowsize(emlig_size) << endl << endl;
[1268]214       
[1272]215                /*
[1271]216                if(i-emlig1->number_of_parameters >= 0)
217                {
218                        pause(30);
219                }
[1272]220                */
[1219]221
[1271]222                // emlig1->step_me(i);
[1219]223               
[1272]224                /*
[1219]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                }
[1272]230                */
[1275]231        //}
232   
[1219]233
234
235       
236        /*
237        emlig1->step_me(1);
238
239        vec condition = "2.0 0.0 1.0"; 
240
[1208]241        emlig1->add_condition(condition);
242
[1216]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
[1219]249        emlig1->step_me(2);
[1216]250
[1219]251        condition = "2.0 1.0 0.0";
[1216]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        }
[1219]260        */
[1216]261
[976]262        return 0;
263}
264
[1282]265
Note: See TracBrowser for help on using the browser.