From 3b838b953d36c6293af51ddae55ec061e994b4c7 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 18 Sep 2015 08:10:18 -0700 Subject: Tuning SAT solver for QBF instances. --- src/base/abci/abc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/base/abci') diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 809995c4..47da5723 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -21828,7 +21828,8 @@ int Abc_CommandDSat( Abc_Frame_t * pAbc, int argc, char ** argv ) if ( argc == globalUtilOptind + 1 ) { - extern int Cnf_DataSolveFromFile( char * pFileName, int nConfLimit, int fVerbose ); + int * pModel = NULL; + extern int Cnf_DataSolveFromFile( char * pFileName, int nConfLimit, int nLearnedStart, int nLearnedDelta, int nLearnedPerce, int fVerbose, int ** ppModel ); // get the input file name char * pFileName = argv[globalUtilOptind]; FILE * pFile = fopen( pFileName, "rb" ); @@ -21838,10 +21839,18 @@ int Abc_CommandDSat( Abc_Frame_t * pAbc, int argc, char ** argv ) return 0; } fclose( pFile ); - Cnf_DataSolveFromFile( pFileName, nConfLimit, fVerbose ); + Cnf_DataSolveFromFile( pFileName, nConfLimit, nLearnedStart, nLearnedDelta, nLearnedPerce, fVerbose, &pModel ); + if ( pModel && pNtk ) + { + int * pSimInfo = Abc_NtkVerifySimulatePattern( pNtk, pModel ); + if ( pSimInfo[0] != 1 ) + Abc_Print( 1, "ERROR in Abc_NtkMiterSat(): Generated counter example is invalid.\n" ); + ABC_FREE( pSimInfo ); + pAbc->pCex = Abc_CexCreate( 0, Abc_NtkPiNum(pNtk), pNtk->pModel, 0, 0, 0 ); + } + ABC_FREE( pModel ); return 0; } - if ( pNtk == NULL ) { Abc_Print( -1, "Empty network.\n" ); -- cgit v1.2.3