gpt4 book ai didi

用于求解器超时的 Z3 C-API

转载 作者:行者123 更新时间:2023-12-02 05:32:30 26 4
gpt4 key购买 nike

我在 Linux 上使用 Z3 4.1 C-API。我想为求解器指定超时。

我正在使用以下命令,但是我在命令 Z3_solver_set_params() 中遇到段错误。

Z3_context ctx = mk_context();     
Z3_solver s = Z3_mk_solver(ctx);

Z3_params params = Z3_mk_params(ctx);
Z3_symbol r = Z3_mk_string_symbol(ctx, ":timeout");

Z3_params_set_uint(ctx, params, r, static_cast<unsigned>(10));
Z3_solver_set_params(ctx, s, params);

看来我没有正确使用API​​。
我无法在包含示例的 test_capi.c 文件中找到 C-API 设置求解器超时的任何示例。谁能帮忙?

最佳答案

在执行任何其他操作之前,您需要增加求解器和参数的引用计数。这是一个将要经过的片段。

Z3_config cfg = Z3_mk_config();
Z3_context ctx = Z3_mk_context(cfg);
Z3_solver s = Z3_mk_solver(ctx);
Z3_solver_inc_ref(ctx, s);
{

Z3_params params = Z3_mk_params(ctx);
Z3_params_inc_ref(ctx, params);
{
Z3_symbol r = Z3_mk_string_symbol(ctx, ":timeout");


Z3_params_set_uint(ctx, params, r, 10);
Z3_solver_set_params(ctx, s, params);
Z3_params_dec_ref(ctx, params);
}
}
Z3_solver_dec_ref(ctx, s);
Z3_del_config(cfg);
Z3_del_context(ctx);

关于用于求解器超时的 Z3 C-API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com