diff options
| author | Timotej Kapus <tk1713@ic.ac.uk> | 2019-12-02 15:05:03 +0000 |
|---|---|---|
| committer | MartinNowack <2443641+MartinNowack@users.noreply.github.com> | 2019-12-12 16:17:09 +0000 |
| commit | ebd3eb0ec11b053ddf5eee44c1217436948279d9 (patch) | |
| tree | 640f1a1832b9ae6b4b18fd4815379df4614f2f93 /lib/Core/UserSearcher.cpp | |
| parent | 0de67b9f0c3f7f331f873f19561aef311d2bed4a (diff) | |
| download | klee-ebd3eb0ec11b053ddf5eee44c1217436948279d9.tar.gz | |
[Searchers] Remove weight from es, add nurs_depth
Having both weight and depth in execution state is wasteful, therefore this patch removes weight. The nurs:depth searcher is replaced by nurs:rp, which uses pow to compute the weight A new nurs:depth searcher is introduced that biases the search with depth, making it the only other searcher that prefers to go deep (similar to dfs).
Diffstat (limited to 'lib/Core/UserSearcher.cpp')
| -rw-r--r-- | lib/Core/UserSearcher.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Core/UserSearcher.cpp b/lib/Core/UserSearcher.cpp index 3aa07e73..22098231 100644 --- a/lib/Core/UserSearcher.cpp +++ b/lib/Core/UserSearcher.cpp @@ -42,7 +42,8 @@ cl::list<Searcher::CoreSearchType> CoreSearch( "use Non Uniform Random Search (NURS) with Coverage-New"), clEnumValN(Searcher::NURS_MD2U, "nurs:md2u", "use NURS with Min-Dist-to-Uncovered"), - clEnumValN(Searcher::NURS_Depth, "nurs:depth", "use NURS with 2^depth"), + clEnumValN(Searcher::NURS_Depth, "nurs:depth", "use NURS with depth"), + clEnumValN(Searcher::NURS_RP, "nurs:rp", "use NURS with 1/2^depth"), clEnumValN(Searcher::NURS_ICnt, "nurs:icnt", "use NURS with Instr-Count"), clEnumValN(Searcher::NURS_CPICnt, "nurs:cpicnt", @@ -114,6 +115,7 @@ Searcher *getNewSearcher(Searcher::CoreSearchType type, Executor &executor) { case Searcher::NURS_CovNew: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::CoveringNew); break; case Searcher::NURS_MD2U: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::MinDistToUncovered); break; case Searcher::NURS_Depth: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::Depth); break; + case Searcher::NURS_RP: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::RP); break; case Searcher::NURS_ICnt: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::InstCount); break; case Searcher::NURS_CPICnt: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::CPInstCount); break; case Searcher::NURS_QC: searcher = new WeightedRandomSearcher(WeightedRandomSearcher::QueryCost); break; |
