8000 GitHub - aKiii017/SolSearch
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

aKiii017/SolSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FunSearch Implementation

环境

conda env create -f funsat.yml

数据集

放在~/Fun_SAT/dataset/

配置文件

config.yaml

  • data_set: 训练集全集
  • data_set_eval: 验证集,可以与训练集相同,用size区分
  • dataset_size: 训练集size
  • eval_dataset_size: 验证集size
  • timeout_value: 超时时限
  • case_num: 实验编号
  • parallel_size: 同时运行的实例数,根据空闲核数确定
  • log_name: log的储存地址
  • time_list: 不同时限内完成的数目,目前没有实际用途,仅输出用作参考
  • script_path: 运行试验sat求解器的脚本地址
  # kissat
  '~/Fun_SAT/implementation/kissat/temp/kissat.sh'

  # cadical
  # '~/Fun_SAT/implementation/cadical/temp/cadical.sh'

  # SBVA
  # '~/Fun_SAT/implementation/SBVA/temp/sbva.sh'

  # z3
  # '~/Fun_SAT/implementation/z3/temp/z3.sh'
  • pattern_starts: 函数起点的pattern
  # kissat
  # bump
  - 'void kissat_bump_score_increment\(.*?\)\s*{' 
  # restart
  # - 'bool kissat_restarting\(.*?\)\s*{' 

  # cadical
  # bump
  # - 'void Internal::bump_variable_score\(.*?\)\s*{' 
  # restart
  # - 'bool Internal::restarting\(.*?\)\s*{' 

  # SBVA
  # - 'int Formula::tiebreaking_heuristic\(.*?\)\s*{'

  # z3
  # - 'void solver::inc_activity\(.*?\)\s*{'
  • file_paths: 要修改的函数地址
  # kissat
  # bump
  - '/home/ubuntu/Fun_SAT/implementation/kissat/src/kissat_bump_score_increment.c'  
  # restart
  # - '/home/ubuntu/Fun_SAT/implementation/kissat/src/kissat_restarting.c' 

  # cadical
  # bump
  # - '/home/ubuntu/Fun_SAT/implementation/cadical/src/bump_var.cpp'  
  # restart
  # - '/home/ubuntu/Fun_SAT/implementation/cadical/src/restarting.cpp' 

  # SBVA
  # - '/home/ubuntu/Fun_SAT/implementation/SBVA/tiebreaking_heuristic.cpp'
  
  # z3
  # - '/home/ubuntu/z3/src/sat/inc_activity.cpp'
  • patterns: 修改函数时识别的pattern
  # kissat
  # bump
  - '(void kissat_bump_score_increment\(.*?\)\s*{)([\s\S]*?)(^\})'  
  # restart
  # - '(bool kissat_restarting\(.*?\)\s*{)([\s\S]*?)(^\})' 

  # cadical
  # bump
  # - '(void Internal::bump_variable_score\(.*?\)\s*{)([\s\S]*?)(^\})'  
  # restart
  # - '(bool Internal::restarting\(.*?\)\s*{)([\s\S]*?)(^\})'

  # SBVA
  # - '(int Formula::tiebreaking_heuristic\(.*?\)\s*{)([\s\S]*?)(^\})'

  # z3
  # - '(void solver::inc_activity\(.*?\)\s*{)([\s\S]*?)(^\})'
  • language: 求解器的实现语言,'c' 或者 'cpp'
  • function_pattern: 为获取函数名的pattern
  # kissat
  # bump
  - '\bvoid\s+(\w+)\s*\(' 
  # restart
  # - '\bbool\s+(\w+)\s*\(' 

  # cadical
  # - '\b(Internal::\w+)\s*\('  

  # SBVA
  # - '\b(Formula::\w+)\s*\('

  # z3
  # - '\b(solver::\w+)\s*\('
  • includes: 函数的preface,有这部分才能成功进行语法分析
  # 需要一个列表,除了这一项以外都只需要列表中的一项
  # kissat
  # bump
  - "#include \"bump.h\""
  - "#include \"internal.h\""
  # restart
  # - "#include <stdbool.h>"
  # - "#include \"internal.h\""
  # - "#include \"restart.h\""
  
  # cadical
  # - "using namespace CaDiCaL;"
  # - "#include \"internal.hpp\""

  # SBVA
  # - "using namespace std;"
  # - "#include \"sbva.hpp\""

  # z3
  # - "using namespace sat;"
  # - "#include \"sat/sat_solver.h\""
  • include_paths: 也是有这部分才能成功进行语法分析
  # kissat
  - "/home/ubuntu/Fun_SAT/implementation/kissat/src" 

  # cadical
  # - "/home/ubuntu/Fun_SAT/implementation/cadical/src"  

  # SBVA
  # - "/home/ubuntu/Fun_SAT/implementation/SBVA"

  # z3
  # - "/home/ubuntu/Fun_SAT/implementation/z3/src"
  • additional_prompt: 给llm的prompt,函数的简单介绍,根据实验情况有时需要添加一些限制
- |
  In the context of SAT solvers that use the VSIDS heuristic, 
  ...
  • specifications: 初始函数
- |
  #include "internal.hpp"

  using namespace CaDiCaL;
  
  void Internal::bump_variable_score(int lit) {
    int idx = vidx (lit);
    double old_score = score (idx);
    double new_score = old_score + score_inc;
    if (evsids_limit_hit (new_score)) {
      rescale_variable_scores ();
      old_score = score (idx);
      new_score = old_score + score_inc;
    }
    score (idx) = new_score;
    if (scores.contains (idx))
      scores.update (idx);
  }

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0