Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /** * يبني خريطة سببية تربط السياسات بالتغييرات والنتائج. */ import { EvolutionConfig } from '../../config/evolution.config'; import { ConsciousConfig } from '../../config/conscious.config'; export function buildCausalMap(registryBefore, registryAfter, metricsBefore, metricsAfter) { const links = []; for (const policy of registryAfter) { const before = registryBefore.find((p) => p.policyId === policy.policyId); if (!before) continue; const deltaWeight = policy.weight - before.weight; const deltaScore = metricsAfter.evolutionScore - metricsBefore.evolutionScore; const correlation = correlateChange(deltaWeight, deltaScore); if ( Math.abs(deltaScore) >= ConsciousConfig.insightThreshold && Math.abs(correlation) >= ConsciousConfig.minCorrelation ) { links.push({ policyId: policy.policyId, deltaWeight, deltaScore, correlation, cause: correlation > 0 ? 'positive' : 'negative', }); } } return links; } /** * خوارزمية بسيطة لتقدير العلاقة بين التغيرات. */ function correlateChange(deltaWeight, deltaScore) { if (deltaWeight === 0) return 0; return deltaScore / deltaWeight; // تقريب بسيط للعلاقة } |