@stevenvo780/st-lang 4.7.0 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/namespaces/reasoning.d.ts +2 -1
- package/dist/namespaces/reasoning.d.ts.map +1 -1
- package/dist/namespaces/reasoning.js +3 -1
- package/dist/namespaces/reasoning.js.map +1 -1
- package/dist/reasoning/combinatorial-games/index.d.ts +105 -0
- package/dist/reasoning/combinatorial-games/index.d.ts.map +1 -0
- package/dist/reasoning/combinatorial-games/index.js +377 -0
- package/dist/reasoning/combinatorial-games/index.js.map +1 -0
- package/dist/reasoning/mechanism-design/auctions.d.ts +49 -0
- package/dist/reasoning/mechanism-design/auctions.d.ts.map +1 -0
- package/dist/reasoning/mechanism-design/auctions.js +179 -0
- package/dist/reasoning/mechanism-design/auctions.js.map +1 -0
- package/dist/reasoning/mechanism-design/index.d.ts +5 -0
- package/dist/reasoning/mechanism-design/index.d.ts.map +1 -0
- package/dist/reasoning/mechanism-design/index.js +39 -0
- package/dist/reasoning/mechanism-design/index.js.map +1 -0
- package/dist/reasoning/mechanism-design/myerson.d.ts +64 -0
- package/dist/reasoning/mechanism-design/myerson.d.ts.map +1 -0
- package/dist/reasoning/mechanism-design/myerson.js +253 -0
- package/dist/reasoning/mechanism-design/myerson.js.map +1 -0
- package/dist/reasoning/mechanism-design/types.d.ts +44 -0
- package/dist/reasoning/mechanism-design/types.d.ts.map +1 -0
- package/dist/reasoning/mechanism-design/types.js +22 -0
- package/dist/reasoning/mechanism-design/types.js.map +1 -0
- package/dist/reasoning/mechanism-design/vcg.d.ts +29 -0
- package/dist/reasoning/mechanism-design/vcg.d.ts.map +1 -0
- package/dist/reasoning/mechanism-design/vcg.js +305 -0
- package/dist/reasoning/mechanism-design/vcg.js.map +1 -0
- package/dist/reasoning/probabilistic/distributions.d.ts +44 -0
- package/dist/reasoning/probabilistic/distributions.d.ts.map +1 -0
- package/dist/reasoning/probabilistic/distributions.js +207 -0
- package/dist/reasoning/probabilistic/distributions.js.map +1 -0
- package/dist/reasoning/probabilistic/examples.d.ts +31 -0
- package/dist/reasoning/probabilistic/examples.d.ts.map +1 -0
- package/dist/reasoning/probabilistic/examples.js +85 -0
- package/dist/reasoning/probabilistic/examples.js.map +1 -0
- package/dist/reasoning/probabilistic/index.d.ts +6 -0
- package/dist/reasoning/probabilistic/index.d.ts.map +1 -0
- package/dist/reasoning/probabilistic/index.js +42 -0
- package/dist/reasoning/probabilistic/index.js.map +1 -0
- package/dist/reasoning/probabilistic/inference.d.ts +45 -0
- package/dist/reasoning/probabilistic/inference.d.ts.map +1 -0
- package/dist/reasoning/probabilistic/inference.js +579 -0
- package/dist/reasoning/probabilistic/inference.js.map +1 -0
- package/dist/reasoning/probabilistic/types.d.ts +153 -0
- package/dist/reasoning/probabilistic/types.d.ts.map +1 -0
- package/dist/reasoning/probabilistic/types.js +37 -0
- package/dist/reasoning/probabilistic/types.js.map +1 -0
- package/dist/solver/smt-z3/index.d.ts +3 -0
- package/dist/solver/smt-z3/index.d.ts.map +1 -0
- package/dist/solver/smt-z3/index.js +11 -0
- package/dist/solver/smt-z3/index.js.map +1 -0
- package/dist/solver/smt-z3/types.d.ts +52 -0
- package/dist/solver/smt-z3/types.d.ts.map +1 -0
- package/dist/solver/smt-z3/types.js +6 -0
- package/dist/solver/smt-z3/types.js.map +1 -0
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts +88 -0
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -0
- package/dist/solver/smt-z3/z3-wasm-backend.js +437 -0
- package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -0
- package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts +2 -0
- package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts.map +1 -0
- package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js +203 -0
- package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js.map +1 -0
- package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts +2 -0
- package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts.map +1 -0
- package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js +290 -0
- package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js.map +1 -0
- package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts +2 -0
- package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts.map +1 -0
- package/dist/tests/reasoning/probabilistic/probabilistic.test.js +370 -0
- package/dist/tests/reasoning/probabilistic/probabilistic.test.js.map +1 -0
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts +2 -0
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts.map +1 -0
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js +394 -0
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -0
- package/dist/tests/tooling/proof-guidance/features.test.d.ts +2 -0
- package/dist/tests/tooling/proof-guidance/features.test.d.ts.map +1 -0
- package/dist/tests/tooling/proof-guidance/features.test.js +72 -0
- package/dist/tests/tooling/proof-guidance/features.test.js.map +1 -0
- package/dist/tests/tooling/proof-guidance/model.test.d.ts +2 -0
- package/dist/tests/tooling/proof-guidance/model.test.d.ts.map +1 -0
- package/dist/tests/tooling/proof-guidance/model.test.js +165 -0
- package/dist/tests/tooling/proof-guidance/model.test.js.map +1 -0
- package/dist/tests/tooling/proof-guidance/search.test.d.ts +2 -0
- package/dist/tests/tooling/proof-guidance/search.test.d.ts.map +1 -0
- package/dist/tests/tooling/proof-guidance/search.test.js +238 -0
- package/dist/tests/tooling/proof-guidance/search.test.js.map +1 -0
- package/dist/tests/type-theory/cubical/cubical.test.d.ts +2 -0
- package/dist/tests/type-theory/cubical/cubical.test.d.ts.map +1 -0
- package/dist/tests/type-theory/cubical/cubical.test.js +207 -0
- package/dist/tests/type-theory/cubical/cubical.test.js.map +1 -0
- package/dist/tooling/proof-guidance/features.d.ts +10 -0
- package/dist/tooling/proof-guidance/features.d.ts.map +1 -0
- package/dist/tooling/proof-guidance/features.js +97 -0
- package/dist/tooling/proof-guidance/features.js.map +1 -0
- package/dist/tooling/proof-guidance/index.d.ts +5 -0
- package/dist/tooling/proof-guidance/index.d.ts.map +1 -0
- package/dist/tooling/proof-guidance/index.js +25 -0
- package/dist/tooling/proof-guidance/index.js.map +1 -0
- package/dist/tooling/proof-guidance/model.d.ts +42 -0
- package/dist/tooling/proof-guidance/model.d.ts.map +1 -0
- package/dist/tooling/proof-guidance/model.js +149 -0
- package/dist/tooling/proof-guidance/model.js.map +1 -0
- package/dist/tooling/proof-guidance/search.d.ts +7 -0
- package/dist/tooling/proof-guidance/search.d.ts.map +1 -0
- package/dist/tooling/proof-guidance/search.js +102 -0
- package/dist/tooling/proof-guidance/search.js.map +1 -0
- package/dist/tooling/proof-guidance/types.d.ts +77 -0
- package/dist/tooling/proof-guidance/types.d.ts.map +1 -0
- package/dist/tooling/proof-guidance/types.js +8 -0
- package/dist/tooling/proof-guidance/types.js.map +1 -0
- package/dist/type-theory/cubical/equality.d.ts +4 -0
- package/dist/type-theory/cubical/equality.d.ts.map +1 -0
- package/dist/type-theory/cubical/equality.js +78 -0
- package/dist/type-theory/cubical/equality.js.map +1 -0
- package/dist/type-theory/cubical/index.d.ts +14 -0
- package/dist/type-theory/cubical/index.d.ts.map +1 -0
- package/dist/type-theory/cubical/index.js +71 -0
- package/dist/type-theory/cubical/index.js.map +1 -0
- package/dist/type-theory/cubical/infer.d.ts +18 -0
- package/dist/type-theory/cubical/infer.d.ts.map +1 -0
- package/dist/type-theory/cubical/infer.js +241 -0
- package/dist/type-theory/cubical/infer.js.map +1 -0
- package/dist/type-theory/cubical/interval.d.ts +12 -0
- package/dist/type-theory/cubical/interval.d.ts.map +1 -0
- package/dist/type-theory/cubical/interval.js +118 -0
- package/dist/type-theory/cubical/interval.js.map +1 -0
- package/dist/type-theory/cubical/normalize.d.ts +5 -0
- package/dist/type-theory/cubical/normalize.d.ts.map +1 -0
- package/dist/type-theory/cubical/normalize.js +191 -0
- package/dist/type-theory/cubical/normalize.js.map +1 -0
- package/dist/type-theory/cubical/path-algebra.d.ts +12 -0
- package/dist/type-theory/cubical/path-algebra.d.ts.map +1 -0
- package/dist/type-theory/cubical/path-algebra.js +109 -0
- package/dist/type-theory/cubical/path-algebra.js.map +1 -0
- package/dist/type-theory/cubical/substitute.d.ts +3 -0
- package/dist/type-theory/cubical/substitute.d.ts.map +1 -0
- package/dist/type-theory/cubical/substitute.js +109 -0
- package/dist/type-theory/cubical/substitute.js.map +1 -0
- package/dist/type-theory/cubical/types.d.ts +77 -0
- package/dist/type-theory/cubical/types.d.ts.map +1 -0
- package/dist/type-theory/cubical/types.js +258 -0
- package/dist/type-theory/cubical/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Probabilistic Programming — Programas de ejemplo
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Mini-biblioteca de programas canónicos para exámenes/demos:
|
|
7
|
+
// - `coinExample()` Bernoulli(0.5) sin conditioning.
|
|
8
|
+
// - `biasedCoinExample(p)` Bernoulli(p) sin conditioning.
|
|
9
|
+
// - `twoCoinsExample()` AND de dos monedas (sanity check).
|
|
10
|
+
// - `bayesianLinearRegression(xs, ys)`
|
|
11
|
+
// priors gaussianos sobre slope/intercept
|
|
12
|
+
// + likelihood gaussiana del residuo.
|
|
13
|
+
// - `gaussianMeanModel(data)` posterior sobre mu | data,
|
|
14
|
+
// prior Normal(0, 10), σ conocido = 1.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.coinExample = coinExample;
|
|
17
|
+
exports.biasedCoinExample = biasedCoinExample;
|
|
18
|
+
exports.twoCoinsExample = twoCoinsExample;
|
|
19
|
+
exports.bayesianLinearRegression = bayesianLinearRegression;
|
|
20
|
+
exports.gaussianMeanModel = gaussianMeanModel;
|
|
21
|
+
const distributions_1 = require("./distributions");
|
|
22
|
+
const types_1 = require("./types");
|
|
23
|
+
/** Bernoulli simétrica: prior trivial sobre {true, false}. */
|
|
24
|
+
function coinExample() {
|
|
25
|
+
return (s) => s.sample((0, types_1.bernoulli)(0.5));
|
|
26
|
+
}
|
|
27
|
+
/** Bernoulli con bias arbitrario p ∈ [0,1]. */
|
|
28
|
+
function biasedCoinExample(p) {
|
|
29
|
+
return (s) => s.sample((0, types_1.bernoulli)(p));
|
|
30
|
+
}
|
|
31
|
+
/** AND de dos monedas Bernoulli(0.5): P(true) = 0.25 esperado. */
|
|
32
|
+
function twoCoinsExample() {
|
|
33
|
+
return (s) => {
|
|
34
|
+
const a = s.sample((0, types_1.bernoulli)(0.5));
|
|
35
|
+
const b = s.sample((0, types_1.bernoulli)(0.5));
|
|
36
|
+
return a && b;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Bayesian linear regression univariado:
|
|
41
|
+
* slope ~ Normal(0, 5)
|
|
42
|
+
* intercept ~ Normal(0, 5)
|
|
43
|
+
* yᵢ | slope, intercept ~ Normal(slope·xᵢ + intercept, 1)
|
|
44
|
+
*
|
|
45
|
+
* Devuelve la pareja (slope, intercept). Las observaciones se
|
|
46
|
+
* codifican como factor(logPdf(...)) sobre el residuo — equivale
|
|
47
|
+
* a una likelihood gaussiana, suitable para importance/MH.
|
|
48
|
+
*/
|
|
49
|
+
function bayesianLinearRegression(xs, ys) {
|
|
50
|
+
if (xs.length !== ys.length) {
|
|
51
|
+
throw new Error('bayesianLinearRegression: xs e ys deben tener la misma longitud');
|
|
52
|
+
}
|
|
53
|
+
return (s) => {
|
|
54
|
+
const slope = s.sample((0, types_1.normal)(0, 5));
|
|
55
|
+
const intercept = s.sample((0, types_1.normal)(0, 5));
|
|
56
|
+
for (let i = 0; i < xs.length; i++) {
|
|
57
|
+
const x = xs[i];
|
|
58
|
+
const y = ys[i];
|
|
59
|
+
const predicted = slope * x + intercept;
|
|
60
|
+
// Likelihood: y ~ Normal(predicted, σ=1). Usamos factor con
|
|
61
|
+
// log-pdf para que el peso de la traza refleje la calidad
|
|
62
|
+
// del fit sin descartar.
|
|
63
|
+
s.factor((0, distributions_1.logPdf)((0, types_1.normal)(predicted, 1), y));
|
|
64
|
+
}
|
|
65
|
+
return { slope, intercept };
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Posterior sobre la media de una gaussiana con σ conocido.
|
|
70
|
+
* mu ~ Normal(0, 10)
|
|
71
|
+
* xᵢ | mu ~ Normal(mu, 1)
|
|
72
|
+
*
|
|
73
|
+
* Útil como caso de test analítico: el posterior verdadero es
|
|
74
|
+
* Normal((Σxᵢ) / (n + 1/100), 1/√(n + 1/100)).
|
|
75
|
+
*/
|
|
76
|
+
function gaussianMeanModel(data) {
|
|
77
|
+
return (s) => {
|
|
78
|
+
const mu = s.sample((0, types_1.normal)(0, 10));
|
|
79
|
+
for (const x of data) {
|
|
80
|
+
s.factor((0, distributions_1.logPdf)((0, types_1.normal)(mu, 1), x));
|
|
81
|
+
}
|
|
82
|
+
return mu;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/examples.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAC/D,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,+DAA+D;AAC/D,mEAAmE;AACnE,yCAAyC;AACzC,uEAAuE;AACvE,mEAAmE;AACnE,2DAA2D;AAC3D,oEAAoE;;AAMpE,kCAEC;AAGD,8CAEC;AAGD,0CAMC;AAYD,4DAqBC;AAUD,8CAQC;AAvED,mDAAyC;AACzC,mCAA2D;AAE3D,8DAA8D;AAC9D,SAAgB,WAAW;IACzB,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,+CAA+C;AAC/C,SAAgB,iBAAiB,CAAC,CAAS;IACzC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,kEAAkE;AAClE,SAAgB,eAAe;IAC7B,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,wBAAwB,CACtC,EAAY,EACZ,EAAY;IAEZ,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,IAAA,cAAM,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,IAAA,cAAM,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;YACxC,4DAA4D;YAC5D,0DAA0D;YAC1D,yBAAyB;YACzB,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAM,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,IAAc;IAC9C,OAAO,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAA,cAAM,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAM,EAAC,IAAA,cAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { enumerate, importanceSample, metropolisHastings, rejectionSample } from './inference';
|
|
2
|
+
export { enumerateSupport, logPdf, sampleFrom } from './distributions';
|
|
3
|
+
export { bayesianLinearRegression, biasedCoinExample, coinExample, gaussianMeanModel, twoCoinsExample, } from './examples';
|
|
4
|
+
export { bernoulli, categorical, discrete, normal, poisson, uniform } from './types';
|
|
5
|
+
export type { BernoulliDist, CategoricalDist, DiscreteDist, Distribution, InferenceOptions, NormalDist, PProgram, PoissonDist, PosteriorSummary, Sampler, UniformDist, } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAErF,YAAY,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Probabilistic Programming — Barrel
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// PPL minimal: define un `PProgram<T>` como `(sampler) => T`, donde
|
|
7
|
+
// `sampler` ofrece `sample(dist)`, `observe(condition)` y
|
|
8
|
+
// `factor(logWeight)`. Cuatro motores de inferencia:
|
|
9
|
+
//
|
|
10
|
+
// - `enumerate` Exacto, soporta solo discreto finito.
|
|
11
|
+
// - `rejectionSample` Muestreo del prior + rechazo por observe.
|
|
12
|
+
// - `importanceSample` Muestreo del prior + log-weights.
|
|
13
|
+
// - `metropolisHastings` Single-site MCMC (proposal = prior).
|
|
14
|
+
//
|
|
15
|
+
// Más distribuciones (`sampleFrom`, `logPdf`, `enumerateSupport`) y
|
|
16
|
+
// programas de ejemplo (`coinExample`, `bayesianLinearRegression`,
|
|
17
|
+
// `gaussianMeanModel`).
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.uniform = exports.poisson = exports.normal = exports.discrete = exports.categorical = exports.bernoulli = exports.twoCoinsExample = exports.gaussianMeanModel = exports.coinExample = exports.biasedCoinExample = exports.bayesianLinearRegression = exports.sampleFrom = exports.logPdf = exports.enumerateSupport = exports.rejectionSample = exports.metropolisHastings = exports.importanceSample = exports.enumerate = void 0;
|
|
20
|
+
var inference_1 = require("./inference");
|
|
21
|
+
Object.defineProperty(exports, "enumerate", { enumerable: true, get: function () { return inference_1.enumerate; } });
|
|
22
|
+
Object.defineProperty(exports, "importanceSample", { enumerable: true, get: function () { return inference_1.importanceSample; } });
|
|
23
|
+
Object.defineProperty(exports, "metropolisHastings", { enumerable: true, get: function () { return inference_1.metropolisHastings; } });
|
|
24
|
+
Object.defineProperty(exports, "rejectionSample", { enumerable: true, get: function () { return inference_1.rejectionSample; } });
|
|
25
|
+
var distributions_1 = require("./distributions");
|
|
26
|
+
Object.defineProperty(exports, "enumerateSupport", { enumerable: true, get: function () { return distributions_1.enumerateSupport; } });
|
|
27
|
+
Object.defineProperty(exports, "logPdf", { enumerable: true, get: function () { return distributions_1.logPdf; } });
|
|
28
|
+
Object.defineProperty(exports, "sampleFrom", { enumerable: true, get: function () { return distributions_1.sampleFrom; } });
|
|
29
|
+
var examples_1 = require("./examples");
|
|
30
|
+
Object.defineProperty(exports, "bayesianLinearRegression", { enumerable: true, get: function () { return examples_1.bayesianLinearRegression; } });
|
|
31
|
+
Object.defineProperty(exports, "biasedCoinExample", { enumerable: true, get: function () { return examples_1.biasedCoinExample; } });
|
|
32
|
+
Object.defineProperty(exports, "coinExample", { enumerable: true, get: function () { return examples_1.coinExample; } });
|
|
33
|
+
Object.defineProperty(exports, "gaussianMeanModel", { enumerable: true, get: function () { return examples_1.gaussianMeanModel; } });
|
|
34
|
+
Object.defineProperty(exports, "twoCoinsExample", { enumerable: true, get: function () { return examples_1.twoCoinsExample; } });
|
|
35
|
+
var types_1 = require("./types");
|
|
36
|
+
Object.defineProperty(exports, "bernoulli", { enumerable: true, get: function () { return types_1.bernoulli; } });
|
|
37
|
+
Object.defineProperty(exports, "categorical", { enumerable: true, get: function () { return types_1.categorical; } });
|
|
38
|
+
Object.defineProperty(exports, "discrete", { enumerable: true, get: function () { return types_1.discrete; } });
|
|
39
|
+
Object.defineProperty(exports, "normal", { enumerable: true, get: function () { return types_1.normal; } });
|
|
40
|
+
Object.defineProperty(exports, "poisson", { enumerable: true, get: function () { return types_1.poisson; } });
|
|
41
|
+
Object.defineProperty(exports, "uniform", { enumerable: true, get: function () { return types_1.uniform; } });
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAC/D,EAAE;AACF,oEAAoE;AACpE,0DAA0D;AAC1D,qDAAqD;AACrD,EAAE;AACF,kEAAkE;AAClE,sEAAsE;AACtE,8DAA8D;AAC9D,iEAAiE;AACjE,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,wBAAwB;;;AAExB,yCAA+F;AAAtF,sGAAA,SAAS,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAEzE,iDAAuE;AAA9D,iHAAA,gBAAgB,OAAA;AAAE,uGAAA,MAAM,OAAA;AAAE,2GAAA,UAAU,OAAA;AAE7C,uCAMoB;AALlB,oHAAA,wBAAwB,OAAA;AACxB,6GAAA,iBAAiB,OAAA;AACjB,uGAAA,WAAW,OAAA;AACX,6GAAA,iBAAiB,OAAA;AACjB,2GAAA,eAAe,OAAA;AAGjB,iCAAqF;AAA5E,kGAAA,SAAS,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,gGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { InferenceOptions, PProgram, PosteriorSummary } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Enumera todas las trayectorias del programa, multiplicando la
|
|
4
|
+
* probabilidad de cada decisión discreta y descartando ramas con
|
|
5
|
+
* `observe(false)`. Soporta `factor(logW)` agregando exp(logW) al
|
|
6
|
+
* peso. No soporta distribuciones continuas (uniform, normal) ni
|
|
7
|
+
* `poisson` — lanza error si las encuentra.
|
|
8
|
+
*
|
|
9
|
+
* `maxStates` protege de explosión combinatoria: corta la
|
|
10
|
+
* enumeración cuando el número de ramas pendientes la supera.
|
|
11
|
+
*/
|
|
12
|
+
export declare function enumerate<T>(program: PProgram<T>, maxStates?: number): PosteriorSummary<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Muestrea N trazas del prior; cualquier traza con `observe(false)`
|
|
15
|
+
* o `factor(-Infinity)` se descarta y se reintenta.
|
|
16
|
+
*
|
|
17
|
+
* `factor(logW)` con `logW < 0` se trata como aceptación
|
|
18
|
+
* probabilística: con prob `exp(logW)` la traza se acepta, en
|
|
19
|
+
* caso contrario se descarta. `logW > 0` es legal pero raro;
|
|
20
|
+
* se acepta siempre (rejection no maneja pesos > 1).
|
|
21
|
+
*/
|
|
22
|
+
export declare function rejectionSample<T>(program: PProgram<T>, opts?: InferenceOptions): PosteriorSummary<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Muestrea trazas del prior y acumula log-pesos de `observe`
|
|
25
|
+
* (treated as -Infinity si false, 0 si true) y `factor`. Devuelve
|
|
26
|
+
* los samples + sus pesos normalizados; el histograma y mean/std
|
|
27
|
+
* reflejan estos pesos.
|
|
28
|
+
*
|
|
29
|
+
* Reporta ESS = (Σwᵢ)² / Σwᵢ² como diagnóstico de degeneración.
|
|
30
|
+
*/
|
|
31
|
+
export declare function importanceSample<T>(program: PProgram<T>, opts?: InferenceOptions): PosteriorSummary<T>;
|
|
32
|
+
/**
|
|
33
|
+
* MCMC Metropolis-Hastings sobre el espacio de trazas del programa.
|
|
34
|
+
*
|
|
35
|
+
* Convenciones:
|
|
36
|
+
* - `burnIn` itera sin contar (default 1000).
|
|
37
|
+
* - `thin` toma 1 de cada N (default 1).
|
|
38
|
+
* - Single-site: en cada iteración, re-muestrea UN sample site
|
|
39
|
+
* (elegido uniforme) y re-ejecuta. Si el número de sample sites
|
|
40
|
+
* cambia entre trazas, igual funciona (re-ejecutamos forzando
|
|
41
|
+
* el valor anterior en los sites que coinciden).
|
|
42
|
+
* - Reporta `acceptanceRate` para diagnóstico.
|
|
43
|
+
*/
|
|
44
|
+
export declare function metropolisHastings<T>(program: PProgram<T>, opts?: InferenceOptions): PosteriorSummary<T>;
|
|
45
|
+
//# sourceMappingURL=inference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/inference.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAC;AA8HnG;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,SAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAiD3F;AAsED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,gBAAqB,GAC1B,gBAAgB,CAAC,CAAC,CAAC,CAoBrB;AAkCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,gBAAqB,GAC1B,gBAAgB,CAAC,CAAC,CAAC,CAkCrB;AA+CD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,gBAAqB,GAC1B,gBAAgB,CAAC,CAAC,CAAC,CAqErB"}
|