version 5.7 DPS
This commit is contained in:
parent
6ae12d9fb6
commit
171baea664
BIN
light-v4-4
Executable file
BIN
light-v4-4
Executable file
Binary file not shown.
BIN
light-v5-0
Executable file
BIN
light-v5-0
Executable file
Binary file not shown.
BIN
light-v5-1
Executable file
BIN
light-v5-1
Executable file
Binary file not shown.
BIN
light-v5-2
Executable file
BIN
light-v5-2
Executable file
Binary file not shown.
BIN
light-v5-3
Executable file
BIN
light-v5-3
Executable file
Binary file not shown.
BIN
light-v5-4
Executable file
BIN
light-v5-4
Executable file
Binary file not shown.
BIN
light-v5-5
Executable file
BIN
light-v5-5
Executable file
Binary file not shown.
BIN
light-v5-6
Executable file
BIN
light-v5-6
Executable file
Binary file not shown.
BIN
light-v5-7
Executable file
BIN
light-v5-7
Executable file
Binary file not shown.
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
light::light():
|
light::light():
|
||||||
finalResult (0),
|
finalResult (0),
|
||||||
winner (0),
|
winner_period (1e9),
|
||||||
maxtime (5000),
|
winner_id (-1),
|
||||||
globalEnding (false)
|
maxtime (5000)
|
||||||
{
|
{
|
||||||
opt = new paras();
|
opt = new paras();
|
||||||
opt->init_paras();
|
opt->init_paras();
|
||||||
|
20
light.hpp
20
light.hpp
@ -5,7 +5,9 @@
|
|||||||
#include "preprocess/preprocess.hpp"
|
#include "preprocess/preprocess.hpp"
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <mutex>
|
#include <boost/thread.hpp>
|
||||||
|
#include <boost/thread/thread.hpp>
|
||||||
|
#include <boost/lockfree/spsc_queue.hpp>
|
||||||
typedef long long ll;
|
typedef long long ll;
|
||||||
|
|
||||||
class basesolver;
|
class basesolver;
|
||||||
@ -35,10 +37,20 @@ public:
|
|||||||
vec<sharer *> sharers;
|
vec<sharer *> sharers;
|
||||||
|
|
||||||
int finalResult;
|
int finalResult;
|
||||||
int winner;
|
int winner_period, winner_id;
|
||||||
|
mutable boost::mutex winner_mtx;
|
||||||
int maxtime;
|
int maxtime;
|
||||||
std::atomic<bool> globalEnding;
|
void update_winner(int id, int period) {
|
||||||
|
boost::mutex::scoped_lock lock(winner_mtx);
|
||||||
|
if (period < winner_period || (period == winner_period && id < winner_id)) {
|
||||||
|
winner_period = period;
|
||||||
|
winner_id = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int get_winner_period() {
|
||||||
|
boost::mutex::scoped_lock lock(winner_mtx);
|
||||||
|
return winner_period;
|
||||||
|
}
|
||||||
void arg_parse(int argc, char **argv);
|
void arg_parse(int argc, char **argv);
|
||||||
void init_workers();
|
void init_workers();
|
||||||
void diversity_workers();
|
void diversity_workers();
|
||||||
|
60
solve.cpp
60
solve.cpp
@ -7,7 +7,7 @@
|
|||||||
#include <mutex>
|
#include <mutex>
|
||||||
auto clk_st = std::chrono::high_resolution_clock::now();
|
auto clk_st = std::chrono::high_resolution_clock::now();
|
||||||
char* worker_sign = "";
|
char* worker_sign = "";
|
||||||
std::mutex mtx;
|
|
||||||
std::atomic<int> terminated;
|
std::atomic<int> terminated;
|
||||||
int result = 0;
|
int result = 0;
|
||||||
int winner, winner_conf;
|
int winner, winner_conf;
|
||||||
@ -26,21 +26,37 @@ void * solve_worker(void *arg) {
|
|||||||
basesolver * sq = (basesolver *)arg;
|
basesolver * sq = (basesolver *)arg;
|
||||||
while (!terminated) {
|
while (!terminated) {
|
||||||
int res = sq->solve();
|
int res = sq->solve();
|
||||||
vec<int> seq_model;
|
if (sq->controller->opt->DPS == 2) {
|
||||||
if (res == 10) {
|
printf("c %d solved, res is %d\n", sq->id, res);
|
||||||
sq->get_model(seq_model);
|
if (res) {
|
||||||
|
terminated = 1;
|
||||||
|
result = res;
|
||||||
|
printf("c %d solved 1\n", sq->id);
|
||||||
|
sq->set_winner_period();
|
||||||
|
printf("c %d solved 2\n", sq->id);
|
||||||
|
sq->controller->update_winner(sq->id, sq->period);
|
||||||
|
printf("c %d solved 3\n", sq->id);
|
||||||
|
if (res == 10) sq->get_model(sq->model);
|
||||||
|
}
|
||||||
|
printf("c %d really solved, period is %d\n", sq->id, sq->period);
|
||||||
}
|
}
|
||||||
if (res && !terminated) {
|
else {
|
||||||
printf("c result: %d, winner is %d, winner run %d confs\n", res, sq->id, sq->get_conflicts());
|
vec<int> seq_model;
|
||||||
terminated = 1;
|
if (res == 10) {
|
||||||
sq->controller->terminate_workers();
|
sq->get_model(seq_model);
|
||||||
result = res;
|
}
|
||||||
winner = sq->id;
|
if (res && !terminated) {
|
||||||
winner_conf = sq->get_conflicts();
|
printf("c result: %d, winner is %d, winner run %d confs\n", res, sq->id, sq->get_conflicts());
|
||||||
if (res == 10) seq_model.copyTo(model);
|
terminated = 1;
|
||||||
|
sq->controller->terminate_workers();
|
||||||
|
result = res;
|
||||||
|
winner = sq->id;
|
||||||
|
winner_conf = sq->get_conflicts();
|
||||||
|
if (res == 10) seq_model.copyTo(model);
|
||||||
|
}
|
||||||
|
seq_model.clear();
|
||||||
|
printf("get result %d with res %d\n", sq->id, res);
|
||||||
}
|
}
|
||||||
seq_model.clear();
|
|
||||||
// printf("get result %d with res %d\n", sq->id, res);
|
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -97,8 +113,12 @@ void light::diversity_workers() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void light::terminate_workers() {
|
void light::terminate_workers() {
|
||||||
|
printf("c controller reach limit\n");
|
||||||
for (int i = 0; i < OPT(threads); i++) {
|
for (int i = 0; i < OPT(threads); i++) {
|
||||||
workers[i]->terminate();
|
if (OPT(share) == 1 && OPT(DPS) == 2)
|
||||||
|
workers[i]->dps_terminate();
|
||||||
|
else
|
||||||
|
workers[i]->terminate();
|
||||||
}
|
}
|
||||||
for (int i = 0; i < sharers.size(); i++) {
|
for (int i = 0; i < sharers.size(); i++) {
|
||||||
sharers[i]->set_terminated();
|
sharers[i]->set_terminated();
|
||||||
@ -152,15 +172,19 @@ int light::solve() {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
// printf("ending solve\n");
|
// printf("ending solve\n");
|
||||||
terminate_workers();
|
// terminate_workers(); //important, need combine nps/dps !!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
for (int i = 0; i < OPT(threads); i++) {
|
for (int i = 0; i < OPT(threads); i++) {
|
||||||
pthread_join(ptr[i], NULL);
|
pthread_join(ptr[i], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("ending join\n");
|
||||||
|
if (result == 10)
|
||||||
|
workers[winner_id]->model.copyTo(model);
|
||||||
auto clk_now = std::chrono::high_resolution_clock::now();
|
auto clk_now = std::chrono::high_resolution_clock::now();
|
||||||
double solve_time = std::chrono::duration_cast<std::chrono::milliseconds>(clk_now - clk_sol_st).count();
|
double solve_time = std::chrono::duration_cast<std::chrono::milliseconds>(clk_now - clk_sol_st).count();
|
||||||
solve_time = 0.001 * solve_time;
|
solve_time = 0.001 * solve_time;
|
||||||
printf("c solve time: %.2lf\n", solve_time);
|
printf("c solve time: %.2lf\nwinner is %d, period is %d\n", solve_time, winner_id, winner_period);
|
||||||
for (int i = 0; i < OPT(threads); i++) {
|
for (int i = 0; i < OPT(threads); i++) {
|
||||||
printf("c thread %d waiting time: %.2lf\n", i, workers[i]->get_waiting_time());
|
printf("c thread %d waiting time: %.2lf\n", i, workers[i]->get_waiting_time());
|
||||||
}
|
}
|
||||||
@ -206,7 +230,7 @@ void solve(int argc, char **argv) {
|
|||||||
int res = S->run();
|
int res = S->run();
|
||||||
if (res == 10) {
|
if (res == 10) {
|
||||||
printf("s SATISFIABLE\n");
|
printf("s SATISFIABLE\n");
|
||||||
print_model(model);
|
// print_model(model);
|
||||||
}
|
}
|
||||||
else if (res == 20) {
|
else if (res == 20) {
|
||||||
printf("s UNSATISFIABLE\n");
|
printf("s UNSATISFIABLE\n");
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
#define VERSION "1.0.3"
|
#define VERSION "1.0.3"
|
||||||
#define COMPILER "gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 -W -Wall -O3 -DNEMBEDDED -DNDEBUG -DNMETRICS -DNSTATISTICS"
|
#define COMPILER "gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 -W -Wall -O3 -DNEMBEDDED -DNDEBUG -DNMETRICS -DNSTATISTICS"
|
||||||
#define ID "79d8d8f20465e71fd2b0f193b468898cd803a59a"
|
#define ID "79d8d8f20465e71fd2b0f193b468898cd803a59a"
|
||||||
#define BUILD "Mon Feb 27 07:44:55 UTC 2023 Linux seed4 5.4.0-125-generic x86_64"
|
#define BUILD "Mon Mar 13 18:39:10 CST 2023 Linux seed1 5.4.0-139-generic x86_64"
|
||||||
#define DIR "/home/chenzh/solvers/Light/solvers/kissat-inc/build"
|
#define DIR "/home/chenzh/solvers/Light/solvers/kissat-inc/build"
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -168,6 +168,7 @@ analyze_reason_side_literals(kissat *solver)
|
|||||||
{
|
{
|
||||||
assert(a->reason < SIZE_STACK(solver->arena));
|
assert(a->reason < SIZE_STACK(solver->arena));
|
||||||
clause *c = (clause *)(arena + a->reason);
|
clause *c = (clause *)(arena + a->reason);
|
||||||
|
solver->dps_ticks++;
|
||||||
for (all_literals_in_clause(lit, c))
|
for (all_literals_in_clause(lit, c))
|
||||||
if (IDX(lit) != idx)
|
if (IDX(lit) != idx)
|
||||||
mark_literal_as_analyzed(solver, all_assigned, lit,
|
mark_literal_as_analyzed(solver, all_assigned, lit,
|
||||||
|
@ -315,6 +315,7 @@ weaken_clauses (kissat * solver, unsigned lit)
|
|||||||
kissat_weaken_clause (solver, lit, c);
|
kissat_weaken_clause (solver, lit, c);
|
||||||
LOGCLS (c, "removing %s", LOGLIT (lit));
|
LOGCLS (c, "removing %s", LOGLIT (lit));
|
||||||
kissat_eliminate_clause (solver, c, lit);
|
kissat_eliminate_clause (solver, c, lit);
|
||||||
|
solver->dps_ticks++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RELEASE_WATCHES (*pos_watches);
|
RELEASE_WATCHES (*pos_watches);
|
||||||
@ -351,7 +352,8 @@ weaken_clauses (kissat * solver, unsigned lit)
|
|||||||
if (!optimize && !satisfied)
|
if (!optimize && !satisfied)
|
||||||
kissat_weaken_clause (solver, not_lit, d);
|
kissat_weaken_clause (solver, not_lit, d);
|
||||||
LOGCLS (d, "removing %s", LOGLIT (not_lit));
|
LOGCLS (d, "removing %s", LOGLIT (not_lit));
|
||||||
kissat_eliminate_clause (solver, d, not_lit);
|
kissat_eliminate_clause (solver, d, not_lit);
|
||||||
|
solver->dps_ticks++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (optimize && neg_watches->size)
|
if (optimize && neg_watches->size)
|
||||||
|
@ -151,6 +151,7 @@ find_forward_subsumption_candidates (kissat * solver, references * candidates)
|
|||||||
continue;
|
continue;
|
||||||
assert (c->size > 2);
|
assert (c->size > 2);
|
||||||
unsigned subsume = 0;
|
unsigned subsume = 0;
|
||||||
|
solver->dps_ticks++;
|
||||||
for (all_literals_in_clause (lit, c))
|
for (all_literals_in_clause (lit, c))
|
||||||
{
|
{
|
||||||
const unsigned idx = IDX (lit);
|
const unsigned idx = IDX (lit);
|
||||||
@ -270,7 +271,11 @@ forward_literal (kissat * solver, unsigned lit, bool binaries,
|
|||||||
|
|
||||||
INC (subsumption_checks);
|
INC (subsumption_checks);
|
||||||
|
|
||||||
subsume = true;
|
subsume = true;
|
||||||
|
|
||||||
|
|
||||||
|
solver->dps_ticks++;
|
||||||
|
|
||||||
|
|
||||||
unsigned candidate = INVALID_LIT;
|
unsigned candidate = INVALID_LIT;
|
||||||
|
|
||||||
@ -605,6 +610,7 @@ forward_subsume_all_clauses (kissat * solver)
|
|||||||
#ifndef QUIET
|
#ifndef QUIET
|
||||||
checked++;
|
checked++;
|
||||||
#endif
|
#endif
|
||||||
|
solver->dps_ticks++;
|
||||||
bool removed = false;
|
bool removed = false;
|
||||||
if (forward_subsumed_clause (solver, c, &removed))
|
if (forward_subsumed_clause (solver, c, &removed))
|
||||||
subsumed++;
|
subsumed++;
|
||||||
@ -656,6 +662,7 @@ forward_subsume_all_clauses (kissat * solver)
|
|||||||
if (c->subsume)
|
if (c->subsume)
|
||||||
remain++;
|
remain++;
|
||||||
#endif
|
#endif
|
||||||
|
solver->dps_ticks++;
|
||||||
for (all_literals_in_clause (lit, c))
|
for (all_literals_in_clause (lit, c))
|
||||||
{
|
{
|
||||||
const unsigned idx = IDX (lit);
|
const unsigned idx = IDX (lit);
|
||||||
|
@ -39,6 +39,7 @@ kissat_init (void)
|
|||||||
solver->watching = true;
|
solver->watching = true;
|
||||||
solver->conflict.size = 2;
|
solver->conflict.size = 2;
|
||||||
solver->conflict.keep = true;
|
solver->conflict.keep = true;
|
||||||
|
solver->dps_ticks=0;
|
||||||
solver->scinc = 1.0;
|
solver->scinc = 1.0;
|
||||||
solver->first_reducible = INVALID_REF;
|
solver->first_reducible = INVALID_REF;
|
||||||
solver->last_irredundant = INVALID_REF;
|
solver->last_irredundant = INVALID_REF;
|
||||||
|
@ -73,10 +73,12 @@ typedef STACK (watch *) patches;
|
|||||||
|
|
||||||
struct kissat
|
struct kissat
|
||||||
{
|
{
|
||||||
|
int dps_ticks;
|
||||||
int (* cbkImportUnit) (void *);
|
int (* cbkImportUnit) (void *);
|
||||||
int (* cbkImportClause)(void *, int *, cvec *);
|
int (* cbkImportClause)(void *, int *, cvec *);
|
||||||
void (* cbkExportClause)(void *, int, cvec *);
|
void (* cbkExportClause)(void *, int, cvec *);
|
||||||
void (* cbkWaitSharing) (void *); // callback for clause learning
|
int (* cbkWaitSharing) (void *);
|
||||||
|
void (* cbkFreeClause) (void *); // callback for clause learning
|
||||||
int share_dps;
|
int share_dps;
|
||||||
int share_dps_period;
|
int share_dps_period;
|
||||||
cvec *importedClause;
|
cvec *importedClause;
|
||||||
|
@ -9,6 +9,7 @@ minimize_reference (kissat * solver, assigned * assigned,
|
|||||||
{
|
{
|
||||||
const unsigned not_lit = NOT (lit);
|
const unsigned not_lit = NOT (lit);
|
||||||
clause *c = kissat_dereference_clause (solver, ref);
|
clause *c = kissat_dereference_clause (solver, ref);
|
||||||
|
solver->dps_ticks++;
|
||||||
for (all_literals_in_clause (other, c))
|
for (all_literals_in_clause (other, c))
|
||||||
if (other != not_lit &&
|
if (other != not_lit &&
|
||||||
!minimize_literal (solver, assigned, other, depth))
|
!minimize_literal (solver, assigned, other, depth))
|
||||||
|
@ -107,6 +107,7 @@ non_watching_propagate_literal (kissat * solver,
|
|||||||
|
|
||||||
ADD (ticks, ticks);
|
ADD (ticks, ticks);
|
||||||
ADD (dense_ticks, ticks);
|
ADD (dense_ticks, ticks);
|
||||||
|
solver->dps_ticks += ticks;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,8 @@ binary_propagate_literal (kissat * solver, unsigned lit)
|
|||||||
const watch *begin = BEGIN_WATCHES (*watches);
|
const watch *begin = BEGIN_WATCHES (*watches);
|
||||||
const watch *end = END_WATCHES (*watches);
|
const watch *end = END_WATCHES (*watches);
|
||||||
const watch *p = begin;
|
const watch *p = begin;
|
||||||
|
int ticks = kissat_cache_lines (watches->size, sizeof (watch));
|
||||||
|
solver->dps_ticks +=ticks;
|
||||||
|
|
||||||
clause *res = 0;
|
clause *res = 0;
|
||||||
|
|
||||||
|
@ -243,6 +243,7 @@ PROPAGATE_LITERAL (kissat * solver,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
solver->ticks += ticks;
|
solver->ticks += ticks;
|
||||||
|
solver->dps_ticks += ticks;
|
||||||
|
|
||||||
while (p != end_watches)
|
while (p != end_watches)
|
||||||
*q++ = *p++;
|
*q++ = *p++;
|
||||||
|
@ -213,6 +213,7 @@ generate_resolvents (kissat * solver, unsigned lit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PUSH_STACK (solver->resolvents, INVALID_LIT);
|
PUSH_STACK (solver->resolvents, INVALID_LIT);
|
||||||
|
solver->dps_ticks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (all_literals_in_clause (other, c))
|
for (all_literals_in_clause (other, c))
|
||||||
|
@ -171,12 +171,16 @@ int kissat_search(kissat *solver)
|
|||||||
solver->reseting = 0;
|
solver->reseting = 0;
|
||||||
}
|
}
|
||||||
if (!solver->level) {
|
if (!solver->level) {
|
||||||
if (solver->share_dps == 1 && solver->nconflict >= solver->share_dps_period) {
|
int should_free = 0;
|
||||||
solver->nconflict = 0;
|
if (solver->share_dps > 0 && solver->dps_ticks >= solver->share_dps_period) {
|
||||||
solver->cbkWaitSharing(solver->issuer);
|
solver->dps_ticks -= solver->share_dps_period;
|
||||||
|
should_free = solver->cbkWaitSharing(solver->issuer);
|
||||||
|
if (should_free == -1) return 0;
|
||||||
}
|
}
|
||||||
if (!kissat_importUnitClauses(solver)) return 20;
|
if (!kissat_importUnitClauses(solver)) return 20;
|
||||||
if (!kissat_importClauses(solver)) return 20;
|
if (!kissat_importClauses(solver)) return 20;
|
||||||
|
if (should_free == 1 && solver->share_dps == 2)
|
||||||
|
solver->cbkFreeClause(solver->issuer);
|
||||||
}
|
}
|
||||||
clause *conflict = kissat_search_propagate(solver);
|
clause *conflict = kissat_search_propagate(solver);
|
||||||
if (conflict)
|
if (conflict)
|
||||||
|
@ -100,6 +100,10 @@ determine_representatives (kissat * solver, unsigned *repr)
|
|||||||
assert (reach_lit == mark_lit);
|
assert (reach_lit == mark_lit);
|
||||||
assert (repr[lit] == INVALID_LIT);
|
assert (repr[lit] == INVALID_LIT);
|
||||||
watches *watches = all_watches + not_lit;
|
watches *watches = all_watches + not_lit;
|
||||||
|
|
||||||
|
unsigned ticks = kissat_cache_lines (watches->size, sizeof (watch));
|
||||||
|
solver->dps_ticks += 1 + ticks;
|
||||||
|
|
||||||
for (all_binary_blocking_watches (watch, *watches))
|
for (all_binary_blocking_watches (watch, *watches))
|
||||||
{
|
{
|
||||||
if (!watch.type.binary)
|
if (!watch.type.binary)
|
||||||
@ -199,6 +203,10 @@ determine_representatives (kissat * solver, unsigned *repr)
|
|||||||
LOG ("substitute mark[%s] = %u", LOGLIT (lit), reached);
|
LOG ("substitute mark[%s] = %u", LOGLIT (lit), reached);
|
||||||
const unsigned not_lit = NOT (lit);
|
const unsigned not_lit = NOT (lit);
|
||||||
watches *watches = all_watches + not_lit;
|
watches *watches = all_watches + not_lit;
|
||||||
|
|
||||||
|
unsigned ticks = kissat_cache_lines (watches->size, sizeof (watch));
|
||||||
|
solver->dps_ticks += 1 + ticks;
|
||||||
|
|
||||||
for (all_binary_blocking_watches (watch, *watches))
|
for (all_binary_blocking_watches (watch, *watches))
|
||||||
{
|
{
|
||||||
if (!watch.type.binary)
|
if (!watch.type.binary)
|
||||||
|
@ -89,6 +89,7 @@ transitive_reduce (kissat * solver,
|
|||||||
watch *begin_src = BEGIN_WATCHES (*src_watches);
|
watch *begin_src = BEGIN_WATCHES (*src_watches);
|
||||||
unsigned ticks = kissat_cache_lines (src_watches->size, sizeof (watch));
|
unsigned ticks = kissat_cache_lines (src_watches->size, sizeof (watch));
|
||||||
ADD (transitive_ticks, ticks + 1);
|
ADD (transitive_ticks, ticks + 1);
|
||||||
|
solver->dps_ticks += 1 + ticks;
|
||||||
const unsigned not_src = NOT (src);
|
const unsigned not_src = NOT (src);
|
||||||
unsigned reduced = 0;
|
unsigned reduced = 0;
|
||||||
bool failed = false;
|
bool failed = false;
|
||||||
@ -158,7 +159,7 @@ transitive_reduce (kissat * solver,
|
|||||||
ADD (propagations, propagated);
|
ADD (propagations, propagated);
|
||||||
ADD (probing_propagations, propagated);
|
ADD (probing_propagations, propagated);
|
||||||
ADD (transitive_propagations, propagated);
|
ADD (transitive_propagations, propagated);
|
||||||
|
solver->dps_ticks += ticks + 1;
|
||||||
transitive_backtrack (solver, saved);
|
transitive_backtrack (solver, saved);
|
||||||
|
|
||||||
if (transitive)
|
if (transitive)
|
||||||
|
@ -228,10 +228,10 @@ class calculater(object):
|
|||||||
have_diff_res = True
|
have_diff_res = True
|
||||||
|
|
||||||
# if(True):
|
# if(True):
|
||||||
# if(False):
|
if(False):
|
||||||
# if(no_answer):
|
# if(no_answer):
|
||||||
# if(all_can_solve):
|
# if(all_can_solve):
|
||||||
if(have_diff_res):
|
# if(have_diff_res):
|
||||||
# if(have_diff_res and answer_this == "sat"):
|
# if(have_diff_res and answer_this == "sat"):
|
||||||
# if(self.solvers[-2].datas[ins_name].res != self.solvers[-1].datas[ins_name].res):
|
# if(self.solvers[-2].datas[ins_name].res != self.solvers[-1].datas[ins_name].res):
|
||||||
print_line_ct += 1
|
print_line_ct += 1
|
||||||
@ -271,21 +271,48 @@ if __name__ == "__main__":
|
|||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/p-mcomsps","p-mcomsps"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/p-mcomsps","p-mcomsps"))
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/treengeling","treengeling"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/treengeling","treengeling"))
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/pakis","pakis"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/pakis","pakis"))
|
||||||
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/pakis22","pakis22"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/pakis22","pakis22"))
|
||||||
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/NPS","NPS"))
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/NPS","NPS"))
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/sota/pakis-mab","pakis-mab"))
|
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v3--1-preprocess","preprocess"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-1-nps","sharing-nps"))
|
||||||
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-1-preprocess","pre"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-2-dps-r","4-2-dps"))
|
||||||
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-1-nps","sharing-nps"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-2-dps2-r","4-2-dps2"))
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-2-nps-rp","sharing-nps-rp"))
|
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-2-nps-p","sharing-nps-p"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps","4-3-sharing-nps"))
|
||||||
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-dps","sharing-dps"))
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-rp-tc2","4-3-sharing-nps-rp2"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-p","4-3-sharing-nps-p"))
|
||||||
|
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-tc2","4-3-sharing-nps2"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-rp","4-3-sharing-nps-rp"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-p-tc2","4-3-sharing-nps-p2"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nopre-sharing-r","4-3-nopre"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nosharing-r","4-3-nosharing"))
|
||||||
|
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-2","thread2"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-4","thread4"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-8","thread8"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-16","thread16"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-tc2","thread32"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-64","thread64"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-4-nps-64-2","thread64-2"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-tc3","4-3-sharing-nps3"))
|
||||||
|
# solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v4-3-nps-tc4","4-3-sharing-nps4"))
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v5-5-dps-20","5-5-dps-20"))
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v5-6-dps-2","5-6-dps-2"))
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v5-7-dps-20-1k","5-7-dps-20-1k"))
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v5-7-dps-20-2k","5-7-dps-20-2k"))
|
||||||
|
solvers.append(solver_SAT_standard_gnomon("/pub/data/chenzh/res/light/v5-7-dps-20-4k","5-7-dps-20-4k"))
|
||||||
|
|
||||||
# append_all_solvers_in_dir(solvers, "/pub/data/chenzh/res/light/")
|
# append_all_solvers_in_dir(solvers, "/pub/data/chenzh/res/light/")
|
||||||
samples = []
|
samples = []
|
||||||
samples.append(["/pub/data/chenzh/data/sat2020/vbs.txt", "vbs"])
|
# samples.append(["/pub/data/chenzh/data/sat2020/vbs.txt", "vbs"])
|
||||||
samples.append(["/pub/data/chenzh/data/sat2021/vbs.txt", "vbs"])
|
# samples.append(["/pub/data/chenzh/data/sat2021/vbs.txt", "vbs"])
|
||||||
|
samples.append(["/pub/data/chenzh/data/sat2022/vbs.txt", "vbs"])
|
||||||
# samples.append(["/pub/data/chenzh/data/sat2022/all.txt", "all"])
|
# samples.append(["/pub/data/chenzh/data/sat2022/all.txt", "all"])
|
||||||
|
# samples.append(["/pub/data/chenzh/data/sat2022/unknown.txt", "unknown"])
|
||||||
clt = calculater(solvers, samples)
|
clt = calculater(solvers, samples)
|
||||||
clt.cal_and_show()
|
clt.cal_and_show()
|
||||||
|
|
||||||
|
347
testLight/dps.log
Normal file
347
testLight/dps.log
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
nohup: ignoring input
|
||||||
|
10pipe_k.cnf
|
||||||
|
13pipe_k.cnf
|
||||||
|
14pipe_q0_k.cnf
|
||||||
|
20-100-frag12-0_sat.cnf
|
||||||
|
20-100-frag12-14_sat.cnf
|
||||||
|
20-100-frag12-32_sat.cnf
|
||||||
|
20-100-frag12-53_sat.cnf
|
||||||
|
20-100-lambda100-14_sat.cnf
|
||||||
|
20-100-lambda100-14_unsat.cnf
|
||||||
|
20-100-lambda100-47_unsat.cnf
|
||||||
|
20-100-lambda100-49_sat.cnf
|
||||||
|
20-100-lambda100-65_sat.cnf
|
||||||
|
20-100-lambda100-89_sat.cnf
|
||||||
|
20-100-lambda100-89_unsat.cnf
|
||||||
|
20-100-p100-55_sat.cnf
|
||||||
|
20-100-p100-55_unsat.cnf
|
||||||
|
2bitcomp_5.hg_20.cnf
|
||||||
|
51.smt2.cnf
|
||||||
|
73.smt2.cnf
|
||||||
|
9dlx_vliw_at_b_iq5.cnf
|
||||||
|
9dlx_vliw_at_b_iq8.cnf
|
||||||
|
ACG-15-10p1.cnf
|
||||||
|
ak016modbtsimpbisc.cnf
|
||||||
|
ak032modbtmodbtisc.cnf
|
||||||
|
ak128paralparalisc.cnf
|
||||||
|
assoc_mult_err_3.c.cnf
|
||||||
|
at-least-two-aaai10-planning-ipc5-pathways-17-step20.cnf
|
||||||
|
at-least-two-aaai10-planning-ipc5-pipesworld-12-step15.cnf
|
||||||
|
at-least-two-hwmcc10-timeframe-expansion-k50-pdtviseisenberg2-tseitin.cnf
|
||||||
|
at-least-two-ibm-2004-23-k100.cnf
|
||||||
|
at-least-two-maris-s03-gripper11.cnf
|
||||||
|
at-least-two-smtlib-qfbv-aigs-ext_con_032_008_0256-tseitin.cnf
|
||||||
|
at-least-two-sokoban-sequential-p145-microban-sequential.030-NOTKNOWN.cnf
|
||||||
|
at-least-two-traffic_b_unsat.cnf
|
||||||
|
at-least-two-traffic_f_unknown.cnf
|
||||||
|
at-least-two-traffic_kkb_unknown.cnf
|
||||||
|
at-least-two-traffic_pcb_unknown.cnf
|
||||||
|
vmpc_26.cnf
|
||||||
|
at-least-two-vmpc_28.cnf
|
||||||
|
b04_s_unknown_pre.cnf
|
||||||
|
b2005-p3-12x12c10h7-Ser7-0.cnf
|
||||||
|
barman-pfile10-039.sas.ex.15.cnf
|
||||||
|
barman-pfile10-040.sas.ex.15.cnf
|
||||||
|
battleship-12-12-unsat.cnf
|
||||||
|
battleship-14-26-sat.cnf
|
||||||
|
blocks-blocks-36-0.180-SAT.cnf
|
||||||
|
blocks-blocks-37-1.120-NOTKNOWN.cnf
|
||||||
|
blocks-blocks-37-1.130-NOTKNOWN.cnf
|
||||||
|
bvsdiv_19.smt2.cnf
|
||||||
|
bvsmod_18.smt2.cnf
|
||||||
|
bvsmod_19.smt2.cnf
|
||||||
|
bvsub_08985.smt2.cnf
|
||||||
|
bvsub_12973.smt2.cnf
|
||||||
|
bvsub_19952.smt2.cnf
|
||||||
|
bv-term-small-rw_1492.smt2.cnf
|
||||||
|
bvurem_20.smt2.cnf
|
||||||
|
Circuit_multiplier18.cnf
|
||||||
|
Circuit_multiplier22.cnf
|
||||||
|
Circuit_multiplier24.cnf
|
||||||
|
Circuit_multiplier25.cnf
|
||||||
|
Circuit_multiplier26.cnf
|
||||||
|
Circuit_multiplier29.cnf
|
||||||
|
Circuit_multiplier33.cnf
|
||||||
|
Circuit_multiplier34.cnf
|
||||||
|
Circuit_multiplier35.cnf
|
||||||
|
Circuit_multiplier36.cnf
|
||||||
|
Circuit_multiplier37.cnf
|
||||||
|
Circuit_multiplier45.cnf
|
||||||
|
Circuit_multiplier53.cnf
|
||||||
|
crafted_n10_d6_c4_num15.cnf
|
||||||
|
crafted_n10_d6_c4_num21.cnf
|
||||||
|
crafted_n11_d6_c4_num14.cnf
|
||||||
|
crafted_n12_d6_c3_num18.cnf
|
||||||
|
crafted_n12_d6_c3_num28.cnf
|
||||||
|
crafted_n12_d6_c4_num17.cnf
|
||||||
|
ctl_4201_555_unsat.cnf
|
||||||
|
ctl_4291_567_1_unsat.cnf
|
||||||
|
ctl_4291_567_11_unsat.cnf
|
||||||
|
ctl_4291_567_6_unsat_pre.cnf
|
||||||
|
ctl_4291_567_9_unsat.cnf
|
||||||
|
dist10.c.cnf
|
||||||
|
dist4.c.cnf
|
||||||
|
E00X23.cnf
|
||||||
|
E02F17.cnf
|
||||||
|
ecarev-110-1031-23-40-8.cnf
|
||||||
|
ecarev-110-4099-22-30-4.cnf
|
||||||
|
edit_distance007_85.cnf
|
||||||
|
edit_distance019_312.cnf
|
||||||
|
edit_distance023_281.cnf
|
||||||
|
edit_distance023_282.cnf
|
||||||
|
edit_distance023_283.cnf
|
||||||
|
edit_distance025_448.cnf
|
||||||
|
edit_distance025_449.cnf
|
||||||
|
edit_distance025_450.cnf
|
||||||
|
edit_distance031_283.cnf
|
||||||
|
edit_distance031_284.cnf
|
||||||
|
edit_distance035_393.cnf
|
||||||
|
edit_distance041_182.cnf
|
||||||
|
edit_distance041_183.cnf
|
||||||
|
ER_500_40_2.apx_0.cnf
|
||||||
|
erin2_0x0_n207-379.cnf
|
||||||
|
erin2_0x0-379.cnf
|
||||||
|
erin2_0x1e3-216.cnf
|
||||||
|
ex045_7.cnf
|
||||||
|
ex065_25.cnf
|
||||||
|
ex095_8.cnf
|
||||||
|
ex175_20.cnf
|
||||||
|
HCP-424-60.cnf
|
||||||
|
HCP-446-105.cnf
|
||||||
|
HCP-446-420.cnf
|
||||||
|
HCP-446-60.cnf
|
||||||
|
HCP-470-105.cnf
|
||||||
|
HCP-470-420.cnf
|
||||||
|
HCP-470-60.cnf
|
||||||
|
HCP-506-60.cnf
|
||||||
|
HCP-522-105.cnf
|
||||||
|
HCP-526-105.cnf
|
||||||
|
HCP-526-420.cnf
|
||||||
|
HCP-529-420.cnf
|
||||||
|
HCP-529-60.cnf
|
||||||
|
huck.col.11.cnf
|
||||||
|
IBM_FV_2004_rule_batch_30_SAT_dat.k75.cnf
|
||||||
|
k2fix_gr_rcs_w8.shuffled.cnf
|
||||||
|
Kakuro-easy-045-ext.xml.hg_4.cnf
|
||||||
|
Kakuro-easy-051-ext.xml.hg_4.cnf
|
||||||
|
Kakuro-easy-089-ext.xml.hg_4.cnf
|
||||||
|
Kakuro-easy-104-ext.xml.hg_6.cnf
|
||||||
|
Kakuro-easy-112-ext.xml.hg_7.cnf
|
||||||
|
Kakuro-easy-115-ext.xml.hg_5.cnf
|
||||||
|
Kakuro-easy-118-ext.xml.hg_4.cnf
|
||||||
|
Kakuro-easy-127-ext.xml.hg_7.cnf
|
||||||
|
Kakuro-easy-132-ext.xml.hg_8.cnf
|
||||||
|
Kakuro-easy-142-ext.xml.hg_8.cnf
|
||||||
|
Kakuro-easy-150-ext.xml.hg_9.cnf
|
||||||
|
Kakuro-easy-156-ext.xml.hg_7.cnf
|
||||||
|
ktf_TF-1.tf_4_0.06_101.cnf
|
||||||
|
ktf_TF-3.tf_2_0.02_24.cnf
|
||||||
|
ktf_TF-3.tf_3_0.02_24.cnf
|
||||||
|
ktf_TF-4.tf_2_0.02_18.cnf
|
||||||
|
ktf_TF-4.tf_4_0.04_35.cnf
|
||||||
|
ktf_TF-4.tf_4_0.06_52.cnf
|
||||||
|
ktf_TF-6.tf_4_0.06_77.cnf
|
||||||
|
ktf_TF-7.tf_3_0.06_113.cnf
|
||||||
|
ktf_TF-8.tf_4_0.06_109.cnf
|
||||||
|
LABS_n041_goal003.cnf
|
||||||
|
LABS_n068_goal001.cnf
|
||||||
|
LABS_n069_goal001.cnf
|
||||||
|
LABS_n072_goal006.cnf
|
||||||
|
LABS_n089_goal008.cnf
|
||||||
|
maximum_constrained_partition_14_bits_n200.cnf
|
||||||
|
maximum_constrained_partition_18_bits_n200.cnf
|
||||||
|
maxor128.cnf
|
||||||
|
mp1-blockpuzzle_5x10_s5_free3.cnf
|
||||||
|
mp1-blockpuzzle_5x12_s6_free3.cnf
|
||||||
|
mp1-blockpuzzle_9x9_s1_free8.cnf
|
||||||
|
mp1-blockpuzzle_9x9_s5_free3.cnf
|
||||||
|
mp1-bsat201-707.cnf
|
||||||
|
mp1-bsat210-739.cnf
|
||||||
|
mp1-klieber2017s-0300-034-t12.cnf
|
||||||
|
mp1-klieber2017s-0490-024-t12.cnf
|
||||||
|
mp1-klieber2017s-1000-023-eq.cnf
|
||||||
|
mp1-klieber2017s-1000-024-eq.cnf
|
||||||
|
mp1-klieber2017s-1200-022-eq.cnf
|
||||||
|
mp1-klieber2017s-2000-022-eq.cnf
|
||||||
|
mp1-Nb6T06.cnf
|
||||||
|
mp1-Nb6T07.cnf
|
||||||
|
mp1-Nb7T44.cnf
|
||||||
|
mp1-Nb7T46.cnf
|
||||||
|
mp1-squ_ali_s10x10_c39_abio_SAT.cnf
|
||||||
|
mp1-squ_any_s09x07_c27_abix_UNS.cnf
|
||||||
|
mp1-tri_ali_s11_c35_abix_UNS.cnf
|
||||||
|
mp1-tri_ali_s11_c35_bail_UNS.cnf
|
||||||
|
MVD_ADS_S1_5_5.cnf
|
||||||
|
MVD_ADS_S10_5_6.cnf
|
||||||
|
MVD_ADS_S10_6_6.cnf
|
||||||
|
MVD_ADS_S11_6_7.cnf
|
||||||
|
MVD_ADS_S11_7_7.cnf
|
||||||
|
MVD_ADS_S11_8_7.cnf
|
||||||
|
MVD_ADS_S3_5_5.cnf
|
||||||
|
MVD_ADS_S4_5_5.cnf
|
||||||
|
MVD_ADS_S5_6_6.cnf
|
||||||
|
MVD_ADS_S6_6_5.cnf
|
||||||
|
MVD_ADS_S6_6_6.cnf
|
||||||
|
MVD_ADS_S7_6_6.cnf
|
||||||
|
MVD_ADS_S9_6_6.cnf
|
||||||
|
Mycielski-10-hints-10.cnf
|
||||||
|
Mycielski-10-hints-7.cnf
|
||||||
|
Mycielski-10-hints-8.cnf
|
||||||
|
Mycielski-10-hints-9.cnf
|
||||||
|
Mycielski-11-hints-1.cnf
|
||||||
|
Mycielski-11-hints-2.cnf
|
||||||
|
Mycielski-11-hints-3.cnf
|
||||||
|
Mycielski-11-hints-4.cnf
|
||||||
|
n320p5q2_n.apx_16.cnf
|
||||||
|
n320p5q2_n.apx_17.cnf
|
||||||
|
Nb51T6.cnf
|
||||||
|
ndhf_xits_09_UNSAT.cnf
|
||||||
|
p01_lb_05.cnf
|
||||||
|
pb_300_05_lb_16.cnf
|
||||||
|
pb_300_05_lb_17.cnf
|
||||||
|
pb_300_06_lb_02.cnf
|
||||||
|
pb_300_10_lb_06.cnf
|
||||||
|
php12e12.cnf
|
||||||
|
prime_a20_b20.cnf
|
||||||
|
prime_a22_b22.cnf
|
||||||
|
prime_a24_b24.cnf
|
||||||
|
puzzle30_sat.cnf
|
||||||
|
puzzle34_sat.cnf
|
||||||
|
puzzle34_unsat.cnf
|
||||||
|
puzzle35_sat.cnf
|
||||||
|
puzzle35_unsat.cnf
|
||||||
|
puzzle36_sat.cnf
|
||||||
|
puzzle37_unsat.cnf
|
||||||
|
puzzle39_sat.cnf
|
||||||
|
puzzle42_sat.cnf
|
||||||
|
puzzle44_unsat.cnf
|
||||||
|
quad_res_r21_m22.cnf
|
||||||
|
quad_res_r26_m27.cnf
|
||||||
|
quad_res_r28_m29.cnf
|
||||||
|
quad_res_r29_m32.cnf
|
||||||
|
randomG-B-Mix-n15-d05.cnf
|
||||||
|
randomG-B-Mix-n16-d05.cnf
|
||||||
|
randomG-B-Mix-n18-d05.cnf
|
||||||
|
randomG-Mix-n17-d05.cnf
|
||||||
|
randomG-Mix-n18-d05.cnf
|
||||||
|
randomG-n16-d05.cnf
|
||||||
|
randomG-n17-d05.cnf
|
||||||
|
randomG-n18-d05.cnf
|
||||||
|
randomG-n19-d05.cnf
|
||||||
|
randomG-n20-d05.cnf
|
||||||
|
rphp4_065_shuffled.cnf
|
||||||
|
rphp4_080_shuffled.cnf
|
||||||
|
rphp4_090_shuffled.cnf
|
||||||
|
rpoc_xits_10_UNKNOWN.cnf
|
||||||
|
satch2ways12u.cnf
|
||||||
|
satch2ways12wu.cnf
|
||||||
|
satch2ways13wu.cnf
|
||||||
|
satch2ways14u.cnf
|
||||||
|
satch2ways15.cnf
|
||||||
|
satch2ways15u.cnf
|
||||||
|
satch2ways15wu.cnf
|
||||||
|
satch2ways16.cnf
|
||||||
|
satch2ways16w.cnf
|
||||||
|
SC21_Timetable_C_466_E_62_Cl_31_S_30.cnf
|
||||||
|
SC21_Timetable_C_527_E_71_Cl_35_S_35.cnf
|
||||||
|
SC21_Timetable_C_542_E_71_Cl_36_S_35.cnf
|
||||||
|
SC21_Timetable_C_557_E_73_Cl_37_S_35.cnf
|
||||||
|
scc_1213_40_10_3.apx_0.cnf
|
||||||
|
stb_531_83.apx_1.cnf
|
||||||
|
stb_588_138.apx_1.cnf
|
||||||
|
SE_PR_WS_500_16_70_10.apx_0.cnf
|
||||||
|
shift1add.26949.cnf
|
||||||
|
size_5_5_5_i003_r12.cnf
|
||||||
|
size_5_5_5_i223_r12.cnf
|
||||||
|
size_5_5_5_i251_r12.cnf
|
||||||
|
snw_13_8_pre.cnf
|
||||||
|
snw_13_8_pre-sc2016.cnf
|
||||||
|
snw_13_9_pre.cnf
|
||||||
|
snw_16_9_Encpre.cnf
|
||||||
|
sokoban-p16.sas.ex.19-sc2016.cnf
|
||||||
|
sokoban-p20.sas.cr.21.cnf
|
||||||
|
sokoban-p20.sas.cr.27.cnf
|
||||||
|
sokoban-p20.sas.ex.13.cnf
|
||||||
|
sokoban-sequential-p145-microban-sequential.070-NOTKNOWN.cnf
|
||||||
|
sp4-33-bin-stri-flat-noid.cnf
|
||||||
|
sp4-33-one-nons-flat-noid.cnf
|
||||||
|
sp4-33-one-stri-tree-noid.cnf
|
||||||
|
sp4-33-una-stri-flat-noid.cnf
|
||||||
|
sp5-21-15-bin-stri-flat-noid.cnf
|
||||||
|
sp5-21-15-bin-stri-tree-noid.cnf
|
||||||
|
sp5-21-15-one-nons-tree-noid.cnf
|
||||||
|
sp5-21-15-one-stri-tree-noid.cnf
|
||||||
|
sp5-21-15-una-nons-tree-noid.cnf
|
||||||
|
sp5-21-15-una-stri-flat-noid.cnf
|
||||||
|
sp5-26-19-bin-nons-tree-noid.cnf
|
||||||
|
sp5-26-19-bin-stri-flat-noid.cnf
|
||||||
|
sp5-26-19-una-nons-tree-noid.cnf
|
||||||
|
spg_200_300.cnf
|
||||||
|
spg_200_301.cnf
|
||||||
|
spg_200_307.cnf
|
||||||
|
spg_200_316.cnf
|
||||||
|
spg_200_317.cnf
|
||||||
|
spg_200_321.cnf
|
||||||
|
spg_300_300.cnf
|
||||||
|
spg_300_301.cnf
|
||||||
|
spg_300_312.cnf
|
||||||
|
spg_330_400.cnf
|
||||||
|
spg_400_281.cnf
|
||||||
|
spg_420_280.cnf
|
||||||
|
spg_420_350.cnf
|
||||||
|
stb_531_83.apx_0.cnf
|
||||||
|
stb_792_333.apx_0.cnf
|
||||||
|
sted1_0x0-637.cnf
|
||||||
|
sted1_0x1e3-393.cnf
|
||||||
|
sted12a_0x1e1-67.cnf
|
||||||
|
sted2_0x0-343.cnf
|
||||||
|
sted2_0x1e3-216.cnf
|
||||||
|
sted3_0x0_n201-239.cnf
|
||||||
|
sted4_0x0_n159-185.cnf
|
||||||
|
sted5_0x0_n90-157.cnf
|
||||||
|
sted5_0x1e3-120.cnf
|
||||||
|
sted5_0x1e3-20.cnf
|
||||||
|
sted6_0x1e3-97.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_600.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_630.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_670.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_680.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_690.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_700.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_730.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_780.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_800.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_870.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_900.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_930.cnf
|
||||||
|
string_compare_safety_cbmc_unwinding_940.cnf
|
||||||
|
sum_of_3_cubes_37_bits_87.cnf
|
||||||
|
sum_of_3_cubes_42_bits_96.cnf
|
||||||
|
sum_of_3_cubes_50_bits_91.cnf
|
||||||
|
sum_of_3_cubes_51_bits_80.cnf
|
||||||
|
sum_of_3_cubes_52_bits_39.cnf
|
||||||
|
Sz1024_34824.smt2.cnf
|
||||||
|
Sz512_15128_1.smt2.cnf
|
||||||
|
test_v7_r12_vr1_c1_s10576.smt2.cnf
|
||||||
|
toughsat_factoring_426s.cnf
|
||||||
|
toughsat_factoring_895s.cnf
|
||||||
|
UCG-20-10p1-sc2009.cnf
|
||||||
|
UR-15-10p0.cnf
|
||||||
|
g2-UR-20-5p1.cnf
|
||||||
|
vlsat2_11_26.cnf
|
||||||
|
vlsat2_11_42.cnf
|
||||||
|
vlsat2_111_1186.cnf
|
||||||
|
vlsat2_112_4223.cnf
|
||||||
|
vlsat2_113_1150.cnf
|
||||||
|
vlsat2_142_6781.cnf
|
||||||
|
vlsat2_144_7585.cnf
|
||||||
|
vlsat2_297_3780.cnf
|
||||||
|
vlsat2_377_5364.cnf
|
||||||
|
vlsat2_44_545.cnf
|
||||||
|
vlsat2_51_824.cnf
|
||||||
|
vlsat2_56_1042.cnf
|
||||||
|
vlsat2_702_14170.cnf
|
||||||
|
WS_300_24_90_10.apx_0.cnf
|
||||||
|
WS_400_16_90_70.apx_0.cnf
|
||||||
|
WS_500_16_70_10.apx_0.cnf
|
||||||
|
WS_500_32_30_10.apx_0.cnf
|
Binary file not shown.
150
testLight/run10-1.sh
Executable file
150
testLight/run10-1.sh
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SEND_THREAD_NUM=4
|
||||||
|
tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名
|
||||||
|
mkfifo "$tmp_fifofile" # 新建一个随机fifo管道文件
|
||||||
|
exec 6<>"$tmp_fifofile" # 定义文件描述符6指向这个fifo管道文件
|
||||||
|
rm $tmp_fifofile
|
||||||
|
for i in $(seq 1 $SEND_THREAD_NUM)
|
||||||
|
do
|
||||||
|
echo # for循环 往 fifo管道文件中写入 $SEND_THREAD_NUM 个空行
|
||||||
|
done >&6
|
||||||
|
|
||||||
|
# CUTOFF_TIME=3600
|
||||||
|
instance_20="/pub/data/chenzh/data/sat2020"
|
||||||
|
instance_21="/pub/data/chenzh/data/sat2021"
|
||||||
|
instance_22="/pub/data/chenzh/data/sat2022"
|
||||||
|
|
||||||
|
|
||||||
|
res1="/pub/data/chenzh/res/light/v1-origin"
|
||||||
|
res2="/pub/data/chenzh/res/light/v4-1-preprocess"
|
||||||
|
res3="/pub/data/chenzh/res/light/v1-1-origin"
|
||||||
|
res4="/pub/data/chenzh/res/light/v2-preprocess"
|
||||||
|
res5="/pub/data/chenzh/res/light/v3--1-preprocess"
|
||||||
|
res6="/pub/data/chenzh/res/light/v4-3-rp"
|
||||||
|
res_no="/pub/data/chenzh/res/unused"
|
||||||
|
#####################################################
|
||||||
|
|
||||||
|
all_datas=($instance_21)
|
||||||
|
for((i=0;i<${#all_datas[*]};i++))
|
||||||
|
do
|
||||||
|
instance=${all_datas[$i]}
|
||||||
|
|
||||||
|
res_solver_ins=$res6
|
||||||
|
if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
mkdir -p $res_solver_ins
|
||||||
|
fi
|
||||||
|
for dir_file in `cat $instance/vbs.txt`
|
||||||
|
do
|
||||||
|
file=$dir_file
|
||||||
|
echo $file
|
||||||
|
touch $res_solver_ins/$file
|
||||||
|
read -u 6
|
||||||
|
{
|
||||||
|
cd /home/chenzh/solvers/Light
|
||||||
|
time ./light-v4-3 $instance/$file --pakis=1
|
||||||
|
echo >&6
|
||||||
|
} >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
done
|
||||||
|
|
||||||
|
# res_solver_ins=$res5
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v3--1 $instance/$file --share=1 --threads=31
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
# res_solver_ins=$res4
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v2 $instance/$file --share=1 --threads=31
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res3
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v1-1 $instance/$file --simplify=0 --reset=1
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res2
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v4-1 $instance/$file --simplify=1
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res1
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v1 $instance/$file --simplify=0
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
done
|
||||||
|
|
||||||
|
res_solver_ins=$res_no
|
||||||
|
if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
mkdir -p $res_solver_ins
|
||||||
|
fi
|
||||||
|
for((i=0;i<4;i++))
|
||||||
|
do
|
||||||
|
read -u 6
|
||||||
|
{
|
||||||
|
cd /home/chenzh/solvers/Light
|
||||||
|
time ./light-v1 /home/chenzh/data/hard_cnfs/49.cnf
|
||||||
|
echo >&6
|
||||||
|
} >$res_solver_ins/$i 2>>$res_solver_ins/$i &
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
150
testLight/run10-2.sh
Executable file
150
testLight/run10-2.sh
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SEND_THREAD_NUM=4
|
||||||
|
tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名
|
||||||
|
mkfifo "$tmp_fifofile" # 新建一个随机fifo管道文件
|
||||||
|
exec 6<>"$tmp_fifofile" # 定义文件描述符6指向这个fifo管道文件
|
||||||
|
rm $tmp_fifofile
|
||||||
|
for i in $(seq 1 $SEND_THREAD_NUM)
|
||||||
|
do
|
||||||
|
echo # for循环 往 fifo管道文件中写入 $SEND_THREAD_NUM 个空行
|
||||||
|
done >&6
|
||||||
|
|
||||||
|
# CUTOFF_TIME=3600
|
||||||
|
instance_20="/pub/data/chenzh/data/sat2020"
|
||||||
|
instance_21="/pub/data/chenzh/data/sat2021"
|
||||||
|
instance_22="/pub/data/chenzh/data/sat2022"
|
||||||
|
|
||||||
|
|
||||||
|
res1="/pub/data/chenzh/res/light/v1-origin"
|
||||||
|
res2="/pub/data/chenzh/res/light/v4-1-preprocess"
|
||||||
|
res3="/pub/data/chenzh/res/light/v1-1-origin"
|
||||||
|
res4="/pub/data/chenzh/res/light/v2-preprocess"
|
||||||
|
res5="/pub/data/chenzh/res/light/v3--1-preprocess"
|
||||||
|
res6="/pub/data/chenzh/res/light/v4-3-rp"
|
||||||
|
res_no="/pub/data/chenzh/res/unused"
|
||||||
|
#####################################################
|
||||||
|
|
||||||
|
all_datas=($instance_22)
|
||||||
|
for((i=0;i<${#all_datas[*]};i++))
|
||||||
|
do
|
||||||
|
instance=${all_datas[$i]}
|
||||||
|
|
||||||
|
res_solver_ins=$res6
|
||||||
|
if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
mkdir -p $res_solver_ins
|
||||||
|
fi
|
||||||
|
for dir_file in `cat $instance/all.txt`
|
||||||
|
do
|
||||||
|
file=$dir_file
|
||||||
|
echo $file
|
||||||
|
touch $res_solver_ins/$file
|
||||||
|
read -u 6
|
||||||
|
{
|
||||||
|
cd /home/chenzh/solvers/Light
|
||||||
|
time ./light-v4-3 $instance/$file --pakis=1
|
||||||
|
echo >&6
|
||||||
|
} >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
done
|
||||||
|
|
||||||
|
# res_solver_ins=$res5
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v3--1 $instance/$file --share=1 --threads=31
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
# res_solver_ins=$res4
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v2 $instance/$file --share=1 --threads=31
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res3
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v1-1 $instance/$file --simplify=0 --reset=1
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res2
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v4-1 $instance/$file --simplify=1
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
|
||||||
|
# res_solver_ins=$res1
|
||||||
|
# if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
# mkdir -p $res_solver_ins
|
||||||
|
# fi
|
||||||
|
# for dir_file in `cat $instance/vbs.txt`
|
||||||
|
# do
|
||||||
|
# file=$dir_file
|
||||||
|
# echo $file
|
||||||
|
# touch $res_solver_ins/$file
|
||||||
|
# read -u 6
|
||||||
|
# {
|
||||||
|
# cd /home/chenzh/solvers/Light
|
||||||
|
# time ./light-v1 $instance/$file --simplify=0
|
||||||
|
# echo >&6
|
||||||
|
# } >$res_solver_ins/$file 2>>$res_solver_ins/$file &
|
||||||
|
# done
|
||||||
|
done
|
||||||
|
|
||||||
|
res_solver_ins=$res_no
|
||||||
|
if [ ! -d "$res_solver_ins" ]; then
|
||||||
|
mkdir -p $res_solver_ins
|
||||||
|
fi
|
||||||
|
for((i=0;i<4;i++))
|
||||||
|
do
|
||||||
|
read -u 6
|
||||||
|
{
|
||||||
|
cd /home/chenzh/solvers/Light
|
||||||
|
time ./light-v1 /home/chenzh/data/hard_cnfs/49.cnf
|
||||||
|
echo >&6
|
||||||
|
} >$res_solver_ins/$i 2>>$res_solver_ins/$i &
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
exit 0
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user