Bit Blasting Probabilistic Programs
针对现有概率编程语言对混合概率程序支持不足的问题,提出基于bit blasting的离散化近似推理算法,构建HyBit系统,在精度无损的前提下实现高效推理,性能优于现有采样与符号推理方法。
2024-04-30 cs.PL
Running Probabilistic Programs Backwards
许多概率程序设计语言允许程序在约束条件下运行,以便执行贝叶斯推理。在约束条件下运行程序可以实现其他用途,如罕见事件模拟和概率验证-除了所有这些概率语言都必须受到限制,因为它们是根据贫乏的概率理论定义或实现的。测度论概率提供了一个更一般的基础,但它的一般性使得寻找计算内容变得困难。我们开发了一个测量理论的语义一阶概率语言与递归,解释程序作为功能,计算原像。原像函数通常是不可计算的,因此我们推导出一个抽象的语义。我们实现了抽象语义,并使用该实现进行贝叶斯推理,随机光线追踪(一种罕见的事件模拟),和概率验证的浮点误差范围。
2015-01-16 cs.PL
Conditioning in Probabilistic Programming
我们调查的语义复杂性的条件,概率规划的一个主要特点。我们提供了一个最弱的(自由)前置条件(w(l)p)的基本概率程序设计语言pGCL扩展条件的语义。我们证明了定量最弱(自由)的先决条件与条件(自由)期望回报的马尔可夫链,并表明语义条件是一个真正的保守扩展。我们提出了两个程序转换,完全消除任何程序的条件,并证明其正确性使用的w(l)p-语义。最后,我们展示了如何的w(l)p-语义可以用来确定条件概率的参数匿名协议,并表明,一个归纳的w(l)p-语义的条件在非确定性的概率程序不存在。
2015-04-01 cs.PL
Bounded Expectations: Resource Analysis for Probabilistic Programs
本文提出了一种新的静态分析,用于推导概率程序的期望资源消耗上界。分析是全自动的,并得出符号界限,是多元多项式的输入。新技术结合了手动状态的最先进的推理技术的概率程序与一个有效的方法,自动资源约束分析的确定性程序。它可以被看作是自动摊销资源分析(AARA)到概率程序的扩展,以及基于最弱前提条件的概率程序的手动推理的自动化。因此,在许多情况下,边界推断可以减少到现成的LP求解,并且如果自动化失败,则自动导出的边界可以与标准程序逻辑交互地扩展。在现有工作的基础上,证明了分析的合理性相对于一个操作语义,是基于马尔可夫决策过程。该技术的有效性证明了原型实现,用于自动分析39个具有挑战性的概率程序和随机算法。实验结果表明,所得到的边界中的常数因子是非常精确的,甚至对许多程序是最优的。
2017-11-24 cs.PL
Expected-Cost Analysis for Probabilistic Programs and Semantics-Level Adaption of Optional Stopping Theorems
在这篇文章中,我们提出了一个语义级的可选停止定理的适应,素描的预期成本分析作为其应用,并调查不同的变种的可选停止定理,已被用于概率程序的静态分析。
2021-03-30 cs.PL
Proving Expected Sensitivity of Probabilistic Programs with Randomized Variable-Dependent Termination Time
程序敏感性(也称为Lipschitz连续性)的概念规定程序输入的变化会导致程序输出成比例的变化。对于概率程序,这个概念自然地扩展到期望灵敏度。以前的方法开发了一个关系程序逻辑框架,用于证明概率while循环的预期灵敏度,其中迭代次数是固定的和有界的。在这项工作中,我们考虑概率while循环的迭代次数不是固定的,而是随机的,并取决于初始输入值。我们提出了一个合理的方法来证明预期的敏感性,这样的程序。我们的声音方法是基于鞅的,可以通过现有的鞅合成算法自动化。此外,我们的方法是组合的,而循环的顺序组成下一个温和的侧条件。我们证明了我们的方法的有效性,从赌徒的破产,随机混合动力系统和随机梯度下降几个经典的例子。我们还提出了实验结果表明,我们的自动化方法可以处理各种概率的程序在文献中。
2019-10-28 cs.PL
A Fixed Point Iteration Technique for Proving Correctness of Slicing for Probabilistic Programs
本文提出并探究一种用于证明程序转换正确性的非标准起始点不动点迭代技术,阐述其所需引理并说明在概率程序切片中的应用方式。
2024-12-10 cs.PL
Sound Interval-Based Synthesis for Probabilistic Programs
针对概率程序自动选择难题,提出类型系统与类型导向合成算法,结合启发式搜索,在文献程序上优于随机搜索和DaPPer,尤其复杂程序。
2025-07-09 cs.PL
Exact Recursive Probabilistic Programming
对递归数据的递归调用对于生成概率分布是有用的,并且概率编程允许以模块化和直观的方式来表达对这些分布的计算。精确推理也是有用的,但不幸的是,现有的概率程序设计语言不对递归数据上的递归调用执行精确推理,迫使程序员手动编写许多应用程序。我们介绍了一种概率语言,其中各种各样的递归可以自然地表达,并进行准确的推理。例如,概率下推自动机及其推广易于表达,并且可以自动导出多项式时间解析算法。我们使用与去功能化和再功能化相关的程序转换来消除递归数据类型。这些变换由线性类型系统保证是正确的,并且如果存在变换的成功选择,则保证由贪心算法找到。
2023-03-27 cs.PL
Paradoxes of Probabilistic Programming
概率论程序设计语言允许程序员将表示统计和机器学习模型的条件概率分布写为使用观察语句的程序。这些程序通过在每个观察语句处累积似然性来运行,并使用似然性来引导随机选择并使用诸如重要性采样或MCMC之类的推理算法来权衡结果。我们认为,天真的似然积累没有得到理想的语义,并导致悖论时,观察语句是用来测量零事件的条件,特别是当观察语句有条件地执行随机数据。我们发现,如果我们明确地将零测量事件建模为正测量事件的极限,则悖论消失,并且我们可以通过累积无穷小概率而不是概率密度来执行这些类型的概率程序。我们的扩展改进了概率程序设计语言作为一个可执行符号的概率分布,使其更好的行为和更有表现力,通过允许程序员明确的限制是打算条件时,测量零的事件。
2021-01-22 cs.PL
Termination Analysis of Probabilistic Programs through Positivstellensatz's
我们考虑不确定性概率程序的最基本的活性性质的终止。我们提出了有效的方法,终止分析的非确定性概率程序与多项式后卫和转让。我们的方法是通过合成的多项式排名上鞅,这一方面显着推广线性排名上鞅,另一方面是一个对应的多项式排名功能证明终止的非概率程序。该方法通过Positivstellenales的综合多项式秩上鞅,产生一个有效的方法,这不仅是声音,但也是半完全的一个大子类的程序。我们的实验结果表明,我们的方法可以处理几个经典的程序与复杂的多项式后卫和分配,并可以合成有效的二次排序上鞅时,线性不存在,即使是简单的仿射规划。
2016-04-25 cs.PL
Reactive Graphs for Efficient Markov Chain Monte Carlo Inference in Probabilistic Programming Languages
KTH Royal Institute of Technology(瑞典皇家理工学院);Swedish Museum of Natural History(瑞典自然历史博物馆)
提出一种自动将概率程序转换为动态反应图的方法,显式表示数据依赖,使得MCMC提议仅重新计算依赖已重绘随机变量的部分,从而提升推断效率。
2026-06-29 cs.PL
Data-Driven Invariant Learning for Probabilistic Programs
针对概率程序循环验证中寻找不变期望的难题,提出将其视为回归问题的数据驱动合成方法,无需模板即可学习分段连续不变式,并支持黑盒访问和子不变式学习以界定期望值。
2025-03-07 cs.PL
Slicing of Probabilistic Programs based on Specifications
本文提出了第一个基于规格说明的概率程序切片方法。我们表明,当概率程序伴随着他们的规格的形式的前和后条件,我们可以利用这种语义信息,以产生规范保护片严格更精确的比传统技术的基础上产生的切片数据/控制依赖。为了实现这一目标,我们的技术是基于后向传播的条件通过最大的预期望Transformer-Dijkstra最弱的前提条件Transformer的概率对应。该技术是终止敏感的,允许保留的部分以及总的正确性的概率程序w.r.t.他们的规格。它是模块化的,具有局部推理原则,并被正式证明是正确的。作为我们的技术的基本技术成分,我们设计并证明了健全的验证条件生成器,用于建立概率程序的部分和全部正确性,这些程序本身就很有趣,可以在其他地方用于其他目的。在实践方面,我们证明了我们的方法的适用性,通过一些说明性的例子和案例研究,从概率建模领域。我们还描述了一个算法,用于计算最少的切片之间的空间,我们的技术。
2022-05-07 cs.PL
Symbolic Semantics for Probabilistic Programs (extended version)
本研究基于Kozen的工作提出含observe语句与连续分布采样的概率程序的新型符号执行语义,完成正确性证明,在symProb工具中实现并通过示例验证。
2023-07-19 cs.PL
Probabilistic Output Analysis by Program Manipulation
概率输出分析的目的是从程序输入的概率分布中导出程序可能输出值的概率分布。我们提出了一种方法进行静态输出分析,基于程序转换技术。它生成一个概率函数,作为中间语言中可能无法计算的表达式。然后对该程序进行分析、变换和近似。结果是一个封闭形式的表达式,它计算程序输出概率分布的过度近似。我们专注于可能的输入遵循已知概率分布的程序。程序中的测试不被假设满足马尔可夫性质,即具有独立于先前历史的固定分支概率。
2015-09-29 cs.PL
Verifying Probabilistic Programs in Rust
New York University(纽约大学);Amazon Web Services(亚马逊云服务)
研究针对概率程序验证框架局限于理想化语言的问题,提出基于Verus的Alerus框架,通过概率错误信用编码支持概率推理,可验证随机采样算法,还建立了健全性证明。
2026-07-15 cs.PL
Probabilistic Resource Analysis by Program Transformation
概率资源分析的目的是从程序输入的概率分布中推导出程序可能的资源使用的概率分布。提出了一种基于多阶段自动重写的方法来分析用C语言子集编写的程序.它生成一个概率分布的资源使用作为一个可能无法计算的表达式,然后将其转换成一个封闭的形式使用过近似表达式。我们提出的技术,概述了实施和显示系统的实验结果。
2016-12-15 cs.PL
Caesar: A Deductive Verifier for Probabilistic Programs
RWTH Aachen University(亚琛工业大学);Cornell University(康奈尔大学);Saarland University(萨尔兰大学);University College London(伦敦大学学院);DTU Compute(丹麦技术大学计算系);University of Oldenburg(奥尔登堡大学)
Caesar通过HeyVL语言实现概率程序的验证,支持自定义证明规则和模型检查后端,具备五年研发成果与改进功能。
2026-05-15 cs.PL
Piecewise Analysis of Probabilistic Programs via $k$-Induction
Institute of Software Chinese Academy of Sciences(中国科学院软件研究所);Shanghai Jiao Tong University(上海交通大学);Peking University(北京大学);Zhongguancun Laboratory(中关村实验室)
本文提出了一种通过k-归纳法合成概率程序分段界的方法,结合lattice算子和Optional Stopping Theorem,通过双线性规划和半正定规划实现紧界生成。
2026-01-02 cs.PL
On Lexicographic Proof Rules for Probabilistic Termination
我们认为几乎肯定(A. S.)概率程序的终止问题,它是经典命令式程序的随机扩展。字典序排序函数为非概率程序的终止提供了一种合理而实用的方法,并通过字典序排序上鞅(LexRSMs)将其扩展到概率程序.然而,在以前的工作中引入的LexRSM有一个限制,这阻碍了它们的自动化:它们的所有组件必须在所有可达状态中是非负的。这可能导致LexRSM不存在,即使是简单的终止程序。我们的贡献是双重的:首先,我们引入了一个广义的LexRSM允许某些组件是负的。非概率终止证明的这个标准特征迄今为止在概率环境中还不知道是合理的,因为合理性证明需要仔细分析潜在的随机过程。其次,我们提出了多项式时间算法,使用我们的广义LexRSM证明a.s.终止在广泛的线性算术程序类。
2021-08-04 cs.PL
Scalable Probabilistic Program Verification via Typed Extended Decision Diagrams
RWTH Aachen University(亚琛工业大学);Cornell University(康奈尔大学);Radboud University(拉德堡德大学)
针对概率程序验证中弱前置期望表示爆炸问题,提出类型化扩展决策图(TEDD)表示和SMT剪枝方法,将可扩展性提升数个数量级。
2026-06-24 cs.PL
Automated Termination Analysis of Polynomial Probabilistic Programs
概率程序的终止行为取决于随机分配的结果。几乎确定终止(AST)是关于程序是否在所有可能的输入上以概率1终止的问题。正几乎必然终止(Positive Almost Sure Termination,PAST)是指在有限的期望步数内终止。本文提出了一种完全自动化的方法来终止分析的概率时程序,其后卫和表达式是多项式表达式。由于证明(正)AST一般是不可判定的,现有的证明规则通常提供了充分的条件。这些条件大多涉及上鞅的约束。我们认为,从文献中的四个证明规则,并扩展这些与现有的证明规则的概括(P)AST。我们自动化的证明规则,有效地计算渐近界多项式的程序变量。这些界限被用来决定一个证明规则的充分条件-包括上鞅的约束条件。因此,我们的软件工具琥珀可以检查AST,PAST,以及他们的否定的一个大类的多项式概率程序,同时进行终止推理完全与多项式证人。实验结果表明,我们的广义证明规则的优点,并证明琥珀可以处理概率程序,是其他国家的最先进的工具。
2021-01-28 cs.PL
Newtonian Program Analysis of Probabilistic Programs
针对概率程序分析多依赖迭代近似的问题,提出基于牛顿式程序分析的NPA-PMA框架,通过引入ω-连续预马尔可夫代数、正则无限树表达式和线性化方法实现部分非迭代分析,实验证明其性能优于Kleene迭代且通用性强。
2024-03-07 cs.PL
Statically Bounded-Memory Delayed Sampling for Probabilistic Streams
概率程序设计语言帮助开发人员执行贝叶斯推理。这些语言为概率建模和自动推理提供了编程结构和工具。先前的工作引入了概率程序设计语言ProbZelus,以将概率编程功能扩展到无界数据流。这项工作表明,延迟采样推理算法可以扩展到工作在流上下文中。ProbZelus表明,虽然延迟采样可以有效地部署在某些程序上,但取决于所考虑的概率模型,延迟采样不能保证在程序执行过程中使用有限的内存量。在本文中,我们提出的条件下,延迟采样将在有限的内存中执行的概率程序的执行。这两个条件是延迟采样核心运算的两个基本性质:$m$消耗性质和不可分离路径性质。当且仅当一个程序满足$m$消耗和不可分离路径属性时,它才在延迟采样下在有界内存中执行。我们提出了一个静态分析,抽象这些属性,以健全地确保任何程序,通过分析满足这些属性,从而在有限的内存下执行延迟采样。
2021-12-13 cs.PL
Probabilistic Program Equivalence for NetKAT
我们解决的问题,决定是否两个概率程序是等价的概率NetKAT,一种形式语言,用于指定和推理的分组交换网络的行为。我们表明,这个问题是可判定的历史自由片段的语言开发一个有效的决策过程的基础上随机矩阵。主要的挑战在于推理迭代,我们通过设计一个编码的程序语义作为一个有限状态吸收马尔可夫链,其极限分布可以精确计算。在一个真实世界的数据中心网络的扩展案例研究中,我们通过分析马尔可夫链语义自动验证了各种感兴趣的定量属性,包括故障情况下的弹性。
2018-03-24 cs.PL
Modular Runtime Complexity Analysis of Probabilistic While Programs
我们关心的是平均情况下运行时的复杂性分析的一个原型的命令式语言赋予原语的采样和概率选择。从非概率程序的模块化资源分析的已知方法的启发,我们研究如何获得概率程序的模块化运行时分析。
2019-08-23 cs.LO cs.PL
Stochastic Probabilistic Programs
Ben-Gurion University of the Negev(内盖夫本-古里安大学)
我们介绍了一个随机概率程序的概念,并提出了一个参考实现的概率编程设施,支持规范的随机概率程序和推理。随机概率程序允许直接规范和有效的推理模型与滋扰参数,噪声和不确定性。我们给出了几个随机概率程序的例子,并在模型说明和推理方面将这些程序与相应的确定性概率程序进行了比较。最后,我们讨论了开放的研究课题和相关工作。
2020-01-22 cs.LG cs.PL stat.ML
Program Analysis of Probabilistic Programs
University of Edinburgh(爱丁堡大学)
概率编程是一个不断发展的领域,它通过将概率建模与概率推理分离,努力使统计分析更容易获得。在实践中,这种脱钩是困难的。没有一种推理算法可以用作同时可靠、高效、黑盒和通用的概率编程后端。可能的程序设计语言通常选择一个算法来应用于给定的问题,从而继承其局限性。虽然已经做了大量的工作,以形式化的概率编程和提高推理效率,很少有工作,利用现有的程序结构,通过正式分析,以更好地利用底层推理算法。本文提出了三种新的技术(静态和动态),旨在提高概率规划使用程序分析。这些技术分析一个概率程序,并对其进行调整,以使推理更有效,有时是以一种单调乏味或不可能手工完成的方式进行的。
2022-04-14 cs.LG cs.PL stat.ML
Modular Verification for Almost-Sure Termination of Probabilistic Programs
在这项工作中,我们考虑几乎肯定终止问题的概率程序,询问是否一个给定的概率程序终止概率为1。可伸缩的程序分析方法通常依赖于模块化作为其理论基础。在非概率程序中,Floyd-霍尔逻辑的经典变式规则(V-规则)为模块化分析提供了基础。将该规则扩展到概率程序的几乎确定终止是相当棘手的,并且在[Fioriti and Hermanns 2015]中提出了一个概率变体。虽然所提出的概率变量谨慎地解决了可积性的关键问题,我们表明,所提出的模块化规则仍然是不健全的几乎肯定终止的概率程序。除了建立以前的规则的不健全,我们的贡献如下:首先,我们提出了一个健全的模块规则几乎确定终止的概率程序。我们的方法是基于一个新的概念下降上鞅。其次,对于算法方法,我们考虑下降上鞅是线性的,并表明它们可以在多项式时间合成。最后,我们提出了各种基准测试和几个自然的例子,模拟各种类型的嵌套而循环的概率程序的实验结果,并证明我们的方法是能够有效地证明其几乎肯定的终止属性。
2019-08-12 cs.LO cs.PL
Concentration-Bound Analysis for Probabilistic Programs and Probabilistic Recurrence Relations
分析概率程序和随机算法是计算机科学中的经典问题。在随机过程分析中的第一个基本问题是考虑期望或平均值,另一个基本问题是考虑浓度界限,即表明偏离平均值的大概率很小。同样,在概率程序和随机算法中,期望终止时间/运行时间及其集中度的分析也是基本问题,本文主要研究概率程序的集中度和随机算法的概率递归性.对于概率规划,获得浓度界的基本技术是考虑鞅并应用经典的Azuma不等式。对于随机算法的概率递归,卡普的经典“食谱”方法,这是类似于递归的主定理,是标准的方法来获得浓度界。在这项工作中,我们提出了一种新的方法,通过合成指数上鞅的概率规划和概率递归关系的浓度界。对于概率程序,我们提出了在几种情况下合成这种上鞅的算法。我们还表明,我们的方法可以得到更好的浓度范围比简单地应用经典的Azuma不等式在文献中考虑的各种概率程序。对于概率递归,我们的方法可以得到更严格的界限比卡普的成熟的方法对经典算法。此外,我们表明,我们的方法可以得到的界限可比的最佳界快速排序,由McDiarmid和海沃德提出。我们还提出了一个原型实现,可以自动推断这些界限
2020-08-12 cs.DS cs.PL
Translating Recursive Probabilistic Programs to Factor Graph Grammars
University of Notre Dame(圣母大学);Indiana University(印第安纳大学)
对于概率程序来说,使用条件句来表达模型中的替代子结构,使用循环(递归)来表达模型中的重复子结构是很自然的。因此,概率程序与条件和递归激发了人们对有效和一般推理的兴趣。因子图语法(FGG)生成一组因子图,这些因子图不需要全部被枚举以执行推理。我们提供了从具有条件和递归的一阶概率程序到FGG的保留语义的翻译。
2020-10-22 cs.LG cs.PL
Modular probabilistic programming with algebraic effects (MSc Thesis 2019)
University of Edinburgh(爱丁堡大学)
本文提出Koka Bayes库,结合代数效应处理与模块化设计,解决概率编程中推理算法的模块化实现问题。
2024-12-18 cs.PL stat.CO
Static Analysis for Probabilistic Programs
概率编程是统计机器学习的一个强大的抽象。将静态分析方法应用于概率程序,可以优化学习过程,自动验证模型的性质,改善用户编程界面。这个领域的静态分析的概率规划(SAPP)是年轻的和无组织的,由一个星座的技术与各种目标和限制。这项工作的主要目的是在一个组织结构和背景下综合SAPP领域的主要贡献。我们提供了技术背景的静态分析和概率编程,建议概率程序设计语言的功能分类法,并分析在SAPP领域的主要思想的适用性。我们的结论是,虽然目前的概率程序的静态分析技术有实际的局限性,有一些未来的方向具有很大的潜力,以改善统计机器学习的状态。
2019-09-10 cs.LG cs.PL stat.ML
Generating Functions for Probabilistic Programs
本文研究了离散概率规划推理中生成函数(GF)在程序变量上的编码度量的使用。为此,我们定义了一个指称的GF-Transformer语义的概率while程序,并表明它实例化Kozen的种子分布Transformer语义。然后我们研究了GF在程序分析中的有效使用。我们表明,可表达的GF使检查超不变量的计算机代数工具,它们可以用来确定终止概率。最后,本文描述了一类-可能是无限状态-程序的语义是一个合理的GF编码离散相位型分布。
2020-07-13 cs.LO cs.PL
Probabilistic Programming Meets Automata Theory: Exact Inference using Weighted Automata
本文提出利用加权自动机实现有限概率程序的精确推断,通过将变量分布编码为自动机来计算后验分布。
2025-12-15 cs.FL cs.PL
An Abstract Monte-Carlo Method for the Analysis of Probabilistic Programs
本文介绍了一种新的方法,随机测试和抽象解释相结合,用于分析具有概率和非概率不确定性的程序。在介绍了“普通”测试后,我们展示了如何将测试和抽象解释相结合,并给出了将结果的精度与迭代次数联系起来的公式。然后,我们讨论了复杂性和优化问题,并结束了一些实验结果。
2007-01-30 cs.PF cs.PL
Multi-Model Probabilistic Programming
Columbia University(哥伦比亚大学)
概率编程使得将概率模型表示为程序变得容易。然而,建立个体模型只是概率建模的一个步骤。概率建模更广泛的挑战是理解和导航替代模型的空间。目前还没有好的方法来表示这些替代模型的空间,尽管它们发挥着核心作用。我们提出了一个扩展的概率规划,让每个程序表示一个网络的相互关联的概率模型。我们给出了这些多模型的概率程序,收集有效的算法网络的模型操作,并建立在流行的概率程序设计语言斯坦顶部的一个例子实现的正式语义。这种模型网络表示打开了许多门,包括模型空间中的搜索和自动化,模型开发的跟踪和通信,以及显式建模器自由度以减轻p-hacking等问题。我们演示了自动模型搜索和模型开发跟踪使用我们的斯坦实现,我们提出了许多可能的应用。
2022-08-12 cs.LG cs.PL stat.ME
Oblivious Probabilistic Outcome Logic: Verifying Probabilistic Programs with an Oblivious Adversary
Cornell University(康奈尔大学);New York University(纽约大学)
研究概率程序中由遗忘对手控制不确定性的推理问题,引入opOL逻辑,基于结果逻辑和概率分离逻辑建模,为随机和非确定性结果分析及证明终止性提供规则,经案例研究测试表现力并在Lean 4中实现机械化。
2026-07-21 cs.LO cs.PL
Spreadsheet Probabilistic Programming
Invrea(Invrea公司)
电子表格工作簿内容是简单的程序。正因为如此,概率编程技术可以用于执行电子表格计算的贝叶斯反演。更重要的是,电子表格应用程序(如Microsoft Excel)中的现有执行引擎可以仅使用内置功能来完成此任务。我们证明了这一点,通过开发一个本地的Excel实现的粒子马尔可夫链蒙特卡罗变量和黑盒变分推理的电子表格概率编程。由此产生的引擎在电子表格计算上执行概率一致的推理,特别是包括包含用户定义的黑盒函数的电子表格。选择集成我们在本文中描述的功能的电子表格引擎将使其用户能够轻松开发概率模型,并通过简单的用户界面机制包含实际值来随着时间的推移维护它们。对于电子表格最终用户来说,这意味着可以访问高效且概率一致的概率建模和推理,用于不确定性下的各种决策。
2016-06-14 cs.AI cs.PL
Refuting Equivalence in Probabilistic Programs with Conditioning
针对带 observe 与 score 的概率程序,本文提出基于 weighted restarting 变换的等价性反驳方法,可全自动给出可证明正确的不等价判定。
2025-01-11 cs.FL cs.PL
A Compilation Target for Probabilistic Programming Languages
University of Oxford(牛津大学)
通过创造性地使用标准化的操作系统功能,包括进程、分叉、互斥和共享存储器,可以用任何程序设计语言来实现诸如用于概率编程的顺序蒙特卡罗和粒子马尔可夫链蒙特卡罗的前向推理技术。利用这一点,我们已经定义,开发和测试的概率程序设计语言中间表示语言,我们称之为概率C,它本身可以被编译成机器码的标准编译器和链接到操作系统库产生一个有效的,可扩展的,便携式的概率编程编译目标。这为优化概率编程系统开辟了一条新的硬件和系统研究路径。
2014-07-10 cs.AI cs.PL stat.ML
Weakest Precondition Reasoning for Expected Run-Times of Probabilistic Programs
本文提出了一个wp风格的演算获得的概率程序的期望运行时间的界限。它的应用包括确定(可能无限)的期望终止时间的概率程序和证明积极的几乎必然终止-一个程序终止概率1在有限的期望时间?我们提供了几个证明规则的运行时间的循环,并证明了一个简单的操作模型的方法的可靠性。我们表明,我们的方法是一个保守的扩展Nielson的方法推理确定性程序的运行时。我们分析了一些示例程序的预期运行时间,包括一维随机游走和优惠券收集器问题。
2017-11-28 cs.LO cs.PL
Slice Sampling for Probabilistic Programming
University of Cambridge(剑桥大学)
我们介绍了第一个,通用的,切片采样推理机的概率程序。该引擎作为StocPy的一部分发布,StocPy是一种新的图灵完备概率程序设计语言,可作为Python库使用。我们提出了一个transdimensional概括切片采样,这是必要的推理机工作的痕迹与不同数量的随机变量。我们表明,StocPy相比其他PPL的灵活性和可用性方面,切片采样可以优于以前介绍的推理方法。我们的实验包括逻辑回归,HMM和贝叶斯神经网络。
2015-01-20 cs.AI cs.PL
Bayes Rule for Conditioning Probabilistic Programs
本文针对概率程序中概率为零的观测值条件化问题,提出一种基于几何测度论的健全贝叶斯规则,可兼容现有主流推断算法,支持含多种结构的实际概率模型。
2026-10-09 cs.LO cs.PL
Transforming Probabilistic Programs for Model Checking
Columbia University(哥伦比亚大学);Utrecht University(乌得勒支大学)
概率编程非常适合可靠和透明的数据科学,因为它允许用户用高级语言指定他们的模型,而不必担心如何拟合模型的复杂性。概率程序的静态分析通过自动化耗时且易出错的任务,为实现高级风格的编程提供了更进一步的机会。我们将静态分析应用于概率程序,以自动化两个关键模型检验方法的大部分:先验预测检验和基于仿真的校准。我们的方法将指定密度函数的概率程序转换为高效的前向采样形式。为了实现这种转换,我们提取一个因素图从概率程序使用静态分析,生成一组建议有向无环图使用SAT求解器,选择一个图形,这将产生可证明正确的采样代码,然后生成一个或多个采样程序。我们允许最少的用户交互,以扩大应用范围,超出单独使用静态分析的可能范围。我们提出了一个实现针对流行的斯坦概率程序设计语言,自动化大部分的强大的贝叶斯工作流程的概率编程用户广泛的社区。
2020-08-21 cs.AI cs.LG cs.PL
Automatic Probabilistic Program Verification through Random Variable Abstraction
最弱预期望演算已被证明是分析概率和不确定性规划定量性质的成熟理论。我们提出了一个自动的方法证明定量线性性质的任何可数状态空间使用迭代向后不动点计算的一般框架中的抽象解释。为了完成这一任务,我们提出了随机变量抽象(RVA)的技术,我们还假设了一个充分条件,实现精确的不动点计算的抽象域。我们的方法的可行性示出了两个例子,一个获得的概率程序的预期运行时间,和其他的赌博策略的预期收益。我们的方法适用于一般的保护概率和不确定性的过渡系统,而不是普通的pGCL程序,使我们能够很容易地模拟广泛的系统,包括分布式的和非结构化的程序。我们提出了该程序的操作和最弱前提语义,并证明了它的等价性。
2010-06-26 cs.LO cs.PL
Exact Bayesian Inference for Loopy Probabilistic Programs using Generating Functions
本文提出基于概率生成函数语义的精确贝叶斯推断方法,并实现 Prodigy 工具,以支持含无界循环的条件化概率程序的推断与定量验证。
2024-03-05 cs.LO cs.PL
An Assertion-Based Program Logic for Probabilistic Programs
概率程序的演绎验证研究已经考虑了基于期望的逻辑,其中前置条件和后置条件是状态上的实值函数,以及基于断言的逻辑,其中前置条件和后置条件是状态分布上的布尔谓词。这两种方法都发展了近40年,但今天它们有不同的地位。基于期望的系统已经成功地将许多复杂的案例研究形式化,而今天基于断言的系统具有更有限的表达能力,并且针对更简单的示例。我们目前Ellora,一个健全的和相对完整的断言为基础的程序逻辑,并证明其表现力通过验证几个经典的例子,随机算法使用的EasyCrypt证明助手的实现。Ellora为循环和对抗代码提供了新的证明规则,并支持比现有程序逻辑更丰富的断言。我们还表明,Ellora允许方便的推理复杂的概率概念,通过开发一个新的程序逻辑的概率独立性和分布规律,然后顺利地嵌入到Ellora。我们的工作表明,基于断言的方法并没有从根本上受到限制,并表明在基于断言的系统中,一些概念可能更容易推理。
2018-03-14 cs.LO cs.PL
Probabilistic Alias Analysis for Parallel Programming in SSA Forms
不同类型程序设计语言的静态别名分析一直是研究者关注的问题。然而,大多数现有的别名分析技术的结果是不够精确的现代编译器的需要相比。在现代编译器的优化技术中,需要这些结果的概率版本,其中结果元素与发生概率相关联。本文提出了一种新的并行程序别名分析的概率方法。所处理的并行模型是SPMD,其中在SPMD中,使用在不同数据上的分布式机器上运行的固定数量的程序线程来执行程序。被分析的程序被假定为在静态单分配(SSA)的形式,这是一个程序表示形式,方便程序分析。所提出的技术具有简单的推理规则系统的形式。这使得能够在诸如携带证明代码(PPC)的应用中使用该系统,PPC是用于证明现代程序的安全特性的通用技术。
2014-05-17 cs.PL cs.SE
Denotational Semantics for Probabilistic and Concurrent Programs
本文针对兼具概率动作与并行组合的命令式程序,提出具有良好域论性质的指称模型,并通过两个适当性定理证明其统一涵盖并发与概率非确定语义。
2025-06-07 cs.LO cs.PL
Expectation Programming: Adapting Probabilistic Programming Systems to Estimate Expectations Efficiently
University of Oxford(牛津大学)
我们表明,概率编程系统(PPS)的标准计算管道可能是低效的估计预期,并引入期望编程的概念来解决这个问题。在期望编程中,后端推理引擎的目的是直接估计程序的期望返回值,而不是近似它们的条件分布。这种区别虽然微妙,但使我们能够通过根据我们关心的期望量身定制计算来实现标准PPS计算管道的实质性性能改进。我们实现了一个特定的实例,我们的期望编程的概念,期望编程图灵(EPT),通过扩展PPS图灵允许所谓的目标感知推理自动运行。然后,我们从理论上验证了EPT的统计合理性,并表明它在实践中提供了大量的经验收益。
2022-06-21 cs.LG cs.PL
Towards representation agnostic probabilistic programming
Institute for Visual and Analytic Computing(视觉与分析计算研究所)
本文提出了一种因素抽象方法,实现表示无关的概率编程,允许在统一框架中混合不同表示进行复杂模型推断。
2025-12-25 cs.AI cs.PL
RefineStat: Efficient Exploration for Probabilistic Program Synthesis
University of Illinois Urbana–Champaign(伊利诺伊大学厄巴纳-香槟分校)
RefineStat通过引入语言模型驱动框架,在概率程序合成中强制语义约束并应用诊断感知细化,提升生成程序的语法正确性和统计可靠性。
2026-04-19 cs.LG cs.PL