int learnGraph(graph_t* gr, decisionTree* dt, char* message, int maxLearn, char withLabels){ NGraph* ng; int n=0; int a; prog* prg=newProg(message, dt->nProgs); addProgToDT(dt, prg); for (a=0; a<gr->nodes.count; a++){ ng=BFS(gr, a, dt->siteSize, dt->siteValence); if (ng!=NULL && (maxLearn == 0 || dt->nLearntSites<maxLearn)){ // printNGraph(ng, dt->siteSize); if (learnSite(dt, ng, prg, withLabels) == 0){ n++; dt->nLearntSites++; //printf("new site:\n"); //printf("(+%d):\n", a); //printNGraph(ng, dt->siteSize); } else { //if (a==154){ //printf("(=%d):\n", a); //printNGraph(ng, dt->siteSize); //} } freeNGraph(ng); } } prg->nSites=n; // dt->nLearntSites+=n; return n; }
int main(int argc, char *argv[]) /* Process command line. */ { struct dyString *ds = newDyString(1024); int i; optionInit(&argc, argv, options); cgi = optionExists("cgi"); jkhgap = optionExists("jkhgap"); if (argc < 3) usage(); for (i=2; i<argc; ++i) { dyStringAppend(ds, argv[i]); if (i != argc-1) dyStringAppend(ds, " "); } newProg(argv[1], ds->string); return 0; }