00001
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031
00032 #include <iostream>
00033 #include <fstream>
00034 #include "Apriori.hpp"
00035 using namespace std;
00036
00037
00039
00040 void usage()
00041 {
00042 cerr << "\nUsage: fim_all basketfile min_supp outcomefile \n";
00043 cerr << "\n basketfile\t file, that contains the baskets of itemcodes";
00044 cerr << "\n min_supp\t support threshold";
00045 cerr << "\n outcomefile\t file to write the outcome";
00046
00047 cerr << "\n\nFile formats:";
00048 cerr << "\n\nThe basket file is a plan text file. Each row represents a basket. ";
00049 cerr << "A basket is a set of items seperated by a nonnumeric character (for example white space, comma, colon, etc.). ";
00050 cerr << "An item is represented by its code which is an integer number greater than or equal to 0.";
00051 cerr << "\n\nHave a succesful mining ;-)";
00052 cerr << "\n\n\n\t\t\t\t\tFerenc Bodon\n\n";
00053 }
00054
00056 int process_arguments( int argc, char *argv[], ifstream& basket_file,
00057 unsigned long& min_supp )
00058 {
00059 if ( argc < 4 )
00060 {
00061 usage();
00062 cerr<<"\nError! There are 3 mandatory arguments!"<<endl;
00063 return 1;
00064 }
00065 basket_file.open(argv[1]);
00066 if( !basket_file )
00067 {
00068 usage();
00069 cerr << "\nError! The basket file can not be read!"<< endl;
00070 return 1;
00071 }
00072 char* pEnd;
00073 min_supp = strtoul( argv[2], &pEnd, 0 );
00074 return 0;
00075 }
00076
00077 int main( int argc, char *argv[] )
00078 {
00079 unsigned long min_supp;
00080 ifstream basket_file;
00081
00082 if( process_arguments( argc, argv, basket_file, min_supp ) ) return 1;
00083
00084 Apriori apriori( basket_file, argv[3] );
00085 apriori.APRIORI_alg( min_supp );
00086 basket_file.close();
00087 return 0;
00088 }
00089