AI-Governance-Lab/governed-quantum-agents
GitHub: AI-Governance-Lab/governed-quantum-agents
一个企业级AI智能体系统,在严格的AI治理框架下将自然语言发现目标转化为量子计算并返回人类可读结果。
Stars: 0 | Forks: 0
# ⚛️ Venus: 治理型量子智能体 (GQA)
**一个受治理的、面向量子驱动发现的自然语言接口。**
[](https://python.org)
[](https://quantumai.google/cirq)
[](https://cloud.google.com/vertex-ai)
[](#)
[](LICENSE)
[]()
## 目录
- [🎯 TL;DR: 终极目标](#-tldr-the-ultimate-goal)
- [什么是治理型量子智能体?](#what-are-governed-quantum-agents)
- [核心主旨](#the-core-thesis)
- [架构](#architecture)
- [无冗余软件栈](#bloat-free-software-stack)
- [工作原理](#how-it-works)
- [🚀 快速开始](#-quick-start)
- [企业级就绪与 ROI](#enterprise-readiness--roi)
- [用例](#use-cases)
- [混合基础设施与 LLM 路由](#hybrid-infrastructure--llm-routing)
- [技术栈](#tech-stack)
- [项目状态与路线图](#project-status--roadmap)
- [为什么是现在?](#why-now)
- [与 AI Governance Lab 的关系](#relationship-to-ai-governance-lab)
## 🎯 TL;DR: 终极目标
Venus 的终极目标是作为人类意图与复杂量子计算机之间的**转换层**。
科学家无需拥有量子线性代数博士学位即可编写电路代码,只需简单输入:
以下是 AI Agents 在幕后所做的工作:
1. **理解:** 主 LLM 解析纯英语请求。
2. **转换为数学:** 智能体确定需要哪种量子算法,并编写 Python/Cirq 代码来生成实际的量子电路。
3. **执行:** 执行电路(目前是在模拟器上,最终将在真实硬件上)。
4. **解释:** 量子计算机返回原始概率分布(1 和 0)。LLM 读取这些统计数据并将其转换回人类的答案。
5. **治理:** 一个独立的 LLM“治理评判器”监视整个过程,以确保 AI 没有产生幻觉,没有违反合规性(如 GDPR/HIPAA),并且科学上合理。
**简而言之:一个代表您安全地编写和执行量子程序的 AI Agent。**
## 什么是治理型量子智能体?
量子计算机不仅仅是更快的经典计算机;它们有着本质的区别。它们同时探索庞大的组合空间——这些解空间如此庞大,以至于没有任何经典系统能在人类有生之年遍历它们。然而,利用这种力量通常需要具备量子电路设计、线性代数和算法映射方面的深厚专业知识。历史上,量子计算的接口一直需要博士学位。
**Venus: Governed Quantum Agents (GQA)** 消除了这一障碍。
rVenus (GQA) 是一个企业级的智能体 AI 系统,它将自然语言的发现目标转化为量子计算,执行计算,并返回人类可读的结果——所有这些都在严格的 **AI 治理框架**下进行。您只需描述想要寻找的内容——候选药物分子、最优材料结构、新颖的合成路径或工程解决方案——智能体就会安全地统筹一切。
```
"Find me candidate molecules that inhibit the BACE-1 enzyme
with minimal off-target effects."
↓
[ Governed Quantum Agent ]
↓
"Here are 7 high-potential candidates ranked by binding affinity
score, validated for toxicity, with structural rationale for each."
```
## 核心主旨
人机量子接口是企业级普及的主要障碍。
量子硬件正在快速发展,用于药物发现、金融优化和材料科学的算法也已得到验证。目前缺失的是转换层——一个接收人类目标并将其转化为量子计算,而无需用户了解什么是 qubit 或参数化电路的系统。
此外,要让这种转换层被企业采用,它不能是一个“黑盒” LLM。它必须是**受治理的、可观察的和可验证的**。Venus 正是为了成为这样一个安全的转换层而构建的,它在今天已经为一个清晰可见的拐点做好了准备。
## 架构
该系统充当**量子-经典混合编排器**,围绕专门的智能体构建:
```
graph TB
USER["🧑 Researcher / Scientist / Engineer\nNatural language discovery goal"]
USER -->|"Plain English"| LANG
subgraph GQA ["⚛️ Venus: Governed Quantum Agents System"]
LANG["🗣️ Language Interface Agent\nVertex AI Gemini 2.5 Pro\nIntent parsing & Context"]
LANG --> PLANNER
PLANNER["🧠 Planner Agent\nGoal decomposition\nStrategy selection"]
PLANNER --> BRIDGE
subgraph BRIDGE ["🔁 Classical–Quantum Bridge"]
direction LR
PROB["Problem Encoder"]
ALG["Algorithm Selector\n(QAOA, VQE, QSVM, Grover)"]
CIRC["Circuit Generator\n(Cirq)"]
PROB --> ALG --> CIRC
end
BRIDGE --> QEX
QEX["⚛️ Quantum Execution Layer\nCirq simulator / Cloud Backends"]
QEX --> INTERP
INTERP["🔬 Result Interpreter Agent\nTranslates bitstring distributions\nback to domain language"]
INTERP --> MEM
MEM["💾 Discovery Memory\nVector Store (ChromaDB/FAISS)"]
MEM -->|"Refined goal"| PLANNER
MEM --> OUT
JUDGE["⚖️ LLM-as-Judge Evaluator\nGovernance & Output Safety"]
INTERP -.->|"Verification"| JUDGE
JUDGE -.->|"Approved"| OUT
end
OUT["📋 Human-Readable Output\nRanked discoveries & rationale"]
style GQA fill:#0F0A1A,stroke:#7C3AED,stroke-width:2px
style BRIDGE fill:#0D1117,stroke:#3B82F6,stroke-width:1.5px
style JUDGE fill:#4A044E,stroke:#EF4444,stroke-width:1.5px
```
### 无冗余软件栈
为了确保严格的企业治理和性能,Venus 避免使用沉重的抽象框架(如 LangChain 或 AutoGen),而是采用精简、确定性的软件栈:
```
graph TD
subgraph "Software Architecture"
A["Python Asyncio Event Loop
Orchestrates non-blocking parallel tasks"] B["Pydantic (v2)
Enforces strict I/O schemas & data validation"] C["LiteLLM Gateway
Normalized routing, fallbacks & FinOps tracking"] D[("LLMs
Gemini / vLLM / Ollama")] A -->|"Constructs request via"| B B -->|"Routes prompt via"| C C -->|"Calls APIs"| D D -->|"Raw Text Output"| C C -->|"Returns to"| B B -->|"Validates schema & returns to"| A end ``` **为什么采用这种方法?** - **确定性执行:** 通过使用原生的 `asyncio`,编排器的行为完全透明、可预测且易于调试。 - **严格治理:** Pydantic 确保 LLM 的原始文本输出被显式强制转换为经过验证的 JSON schema。如果 LLM 幻觉出缺失的字段或错误的数据类型,Pydantic 会在其到达敏感的量子执行层之前捕获并拒绝它。 - **供应商中立:** LiteLLM 提供了一个单一、统一的接口。我们可以在几毫秒内将 Vertex AI 热切换为本地的 NVIDIA vLLM 节点,而无需更改任何智能体逻辑。 ## 工作原理 ### 步骤 1 — 意图解析 语言接口(由 Gemini 2.5 Pro 或本地模型驱动)理解用户想要发现的内容。它能安全地提取领域(化学、物流等)、目标函数(最小化、最大化、寻找候选者)以及约束条件。 ### 步骤 2 — 问题分解 Planner Agent 将目标拆解为映射到量子算法的子问题: | 问题类型 | 量子算法 | 示例 | |---|---|---| | 组合优化 | **QAOA** | 药物-蛋白结合优化 | | 分子模拟 | **VQE** | 候选分子的基态能量 | | 非结构化空间搜索 | **Grover's** | 化合物库中的模式搜索 | | 分类 | **QSVM** | 毒性预测 | ### 步骤 3 — 量子电路执行 电路通过 **Google Cirq** 构建,并在可扩展的云基础设施或本地服务器上执行。该架构旨在随着真正的量子后端(IonQ, Google Sycamore)的成熟,实现向其无缝迁移。 ### 步骤 4 — 结果解释与记忆 没有上下文,原始的量子输出(bitstrings 上的概率分布)是没有意义的。Interpreter Agent 将这些结果转换回领域语言。每次运行都会存储在向量数据库中,允许智能体在跨会话中构建发现空间的映射——从而完善假设并避免死胡同。 ### 步骤 5 — LLM-as-Judge 治理(验证器) 在任何结果呈现给用户之前,一个独立的 `Judge Agent` 会根据安全性、合规性和科学有效性指南对输出进行评估。幻觉或不安全的解释会在这里被捕获。 ## 🚀 快速开始 ### 前置条件 - Python 3.11+ - 您首选的 LLM 供应商的凭证(例如 `GEMINI_API_KEY`、`OPENAI_API_KEY`,或运行本地的 `vLLM`/`Ollama`) ### 安装说明 1. 克隆仓库: git clone https://github.com/AI-Governance-Lab/governed-quantum-agents.git cd governed-quantum-agents 2. 创建虚拟环境并安装依赖: python -m venv venv source venv/bin/activate pip install -r requirements.txt 3. 配置环境变量: cp .env.example .env # 编辑 .env 以添加您的 API 密钥 ### 运行发现目标 ``` python src/main.py --goal "Find a lightweight alloy composition with tensile strength above 900 MPa" ``` ## 企业级就绪与 ROI Venus 专为需要严格监督、预算控制以及从 AI 投资中获得可衡量 ROI 的管理层和高管利益相关者设计。 ### 1. AI FinOps 与成本管理 运行混合量子-经典工作负载可能会很昂贵。通过将所有智能体 LLM 调用通过 **LiteLLM** 进行路由,Venus 提供了内置的 **FinOps 能力**: * **单次发现成本跟踪**:量化每次成功发现所花费的确切 API 和计算成本。 * **预算上限**:通过对每个项目或部门的 token 使用量和云 API 支出设定硬性限制,防止预算超支。 ### 2. 不可变的审计跟踪与合规性 对于受严格监管的行业(制药、金融、国防),**LLM-as-Judge** 评估器通过为每个决策生成**不可变的审计日志**来确保合规性。这提供了分子如何被选择或路线如何被优化的端到端可追溯性,从而加速 FDA、HIPAA 或 SOC2 的合规审查。 ### 3. 基于角色的访问控制 (RBAC) Venus 支持企业组织结构: * **科学家 / 研究人员**:发起发现目标并与结果互动。 * **治理官**:定义安全指南、科学边界并审查审计日志。 * **FinOps 管理员**:控制硬件路由规则(例如,在云 API 预算耗尽时强制执行本地 NVIDIA vLLM)。 ## 用例 **🛡️ 网络安全与威胁情报** *(高需求)* **💹 金融风险与欺诈检测** *(高需求)* **🌍 气候技术与碳捕获** **💊 制药发现** **🔬 材料科学** **📦 物流与运营** ## 混合基础设施与 LLM 路由 Venus 在设计上是模型无关且基础设施灵活的。所有 LLM 调用都通过 **LiteLLM** 路由——这是一个统一的代理,可将 100 多个供应商标准化为一个单一的 API。这使得 Venus 能够根据企业需求在两种不同的模式下运行: ### 模式 1:企业云(默认) Venus 利用 **Google Cloud Platform (GCP)** 和 **Vertex AI** 作为其主要的认知引擎,以提供无与伦比的推理能力。 | 智能体角色 | 主模型 | 回退策略 | |---|---|---| | **语言接口** | `vertex_ai/gemini-2.5-pro` | `groq/llama-3.3-70b` | | **Planner Agent** | `vertex_ai/gemini-2.5-pro` | `anthropic/claude-3-5-haiku` | | **Interpreter Agent**| `vertex_ai/gemini-2.5-pro` | `gemini/gemini-1.5-flash` | | **治理评判器** | `vertex_ai/gemini-2.5-pro` | `groq/llama-3.3-70b` | ### 模式 2:私有本地(严格的数据驻留) 对于有绝对数据驻留要求的组织,Venus 可以使用本地 LLM 在**本地私有基础设施**(例如,NVIDIA DGX,Dell 服务器)上运行。在这种模式下,发现目标永远不会离开内部网络。我们根据硬件容量支持两种本地推理引擎: #### 高吞吐量(NVIDIA A100/H100 + vLLM) 对于企业级发现和大规模并发智能体操作,Venus 会路由到 **vLLM** 进行兼容 OpenAI 的高吞吐量模型服务。 | 通过 vLLM 的模型 | 大小 | 最适合 | |---|---|---| | `vllm/meta-llama/Llama-3.3-70B-Instruct` | 70B | 主要规划与治理 | | `vllm/Qwen/Qwen2.5-Coder-32B-Instruct` | 32B | 复杂规划与工具使用 | #### 轻量级(CPU/入门级 GPU + Ollama) 适用于边缘环境或较轻的工作负载。 | 通过 Ollama 的模型 | 大小 | 最适合 | |---|---|---| | `ollama/llama3.3` | 70B | 主要规划与治理 | | `ollama/llama3.2` | 3B / 1B | 快速意图解析 | | `ollama/gemma2` | 27B | 推理、结果解释 | | `ollama/deepseek-r1` | 14B | 复杂规划 | LiteLLM 在所有模式和后端中透明地处理重试、回退、成本跟踪和供应商标准化。 ## 技术栈 | 组件 | 技术 | |---|---| | **主推理引擎** | Google Vertex AI (Gemini 2.5 Pro) / 本地 vLLM / Ollama | | **LLM 网关与路由** | LiteLLM | | **量子执行** | Google Cirq | | **量子算法** | QAOA, VQE, Grover's, QSVM | | **智能体框架** | Python 3.11, asyncio | | **发现记忆** | FAISS / ChromaDB (向量存储) | | **数据验证** | Pydantic v2 | | **基础设施** | GCP / NVIDIA DGX (A100/H100) / 本地 Dell 服务器 | ## 项目状态与路线图 | 阶段 | 里程碑 | 状态 | |---|---|---| | **v0.1** | Cirq 模拟核心与云 LLM 路由 (LiteLLM) | ✅ 完成 | | **v0.2** | 面向智能体循环的 Vertex AI Gemini 2.5 Pro 集成 | 🔄 活跃 | | **v0.3** |治理评估器 (LLM-as-Judge pipeline) | 📅 计划中 | | **v0.4** | 化学领域分子模拟的 VQE | 📅 计划中 | | **v0.5** | 多会话发现记忆 | 📅 计划中 | | **v1.0** | 真实量子硬件后端集成 | 📅 长期 | ## 为什么是现在? 量子硬件正处于 aggressive 的改进曲线上。在药物发现和材料科学方面能够实现实用量子优势的系统距离我们还有 3 到 5 年的时间。到那时,瓶颈将不再是硬件,而是量子能力与人类意图之间的接口。Venus (GQA) 正是那个接口,并且今天就已经在构建中。 ## 与 AI Governance Lab 的关系 Venus (Governed Quantum Agents) 是 **AI Governance Lab** 旗下的旗舰项目。Venus 中使用的内部 **LLM-as-Judge 评估 pipeline** 代表了该实验室的核心理念:将企业级的 LLM 可观测性、安全性和严格合规性引入最前沿的 AI 领域。 *Venus: Governed Quantum Agents · 量子-经典混合发现引擎 · Cirq · Gemini · 为下一个拐点而生*
Orchestrates non-blocking parallel tasks"] B["Pydantic (v2)
Enforces strict I/O schemas & data validation"] C["LiteLLM Gateway
Normalized routing, fallbacks & FinOps tracking"] D[("LLMs
Gemini / vLLM / Ollama")] A -->|"Constructs request via"| B B -->|"Routes prompt via"| C C -->|"Calls APIs"| D D -->|"Raw Text Output"| C C -->|"Returns to"| B B -->|"Validates schema & returns to"| A end ``` **为什么采用这种方法?** - **确定性执行:** 通过使用原生的 `asyncio`,编排器的行为完全透明、可预测且易于调试。 - **严格治理:** Pydantic 确保 LLM 的原始文本输出被显式强制转换为经过验证的 JSON schema。如果 LLM 幻觉出缺失的字段或错误的数据类型,Pydantic 会在其到达敏感的量子执行层之前捕获并拒绝它。 - **供应商中立:** LiteLLM 提供了一个单一、统一的接口。我们可以在几毫秒内将 Vertex AI 热切换为本地的 NVIDIA vLLM 节点,而无需更改任何智能体逻辑。 ## 工作原理 ### 步骤 1 — 意图解析 语言接口(由 Gemini 2.5 Pro 或本地模型驱动)理解用户想要发现的内容。它能安全地提取领域(化学、物流等)、目标函数(最小化、最大化、寻找候选者)以及约束条件。 ### 步骤 2 — 问题分解 Planner Agent 将目标拆解为映射到量子算法的子问题: | 问题类型 | 量子算法 | 示例 | |---|---|---| | 组合优化 | **QAOA** | 药物-蛋白结合优化 | | 分子模拟 | **VQE** | 候选分子的基态能量 | | 非结构化空间搜索 | **Grover's** | 化合物库中的模式搜索 | | 分类 | **QSVM** | 毒性预测 | ### 步骤 3 — 量子电路执行 电路通过 **Google Cirq** 构建,并在可扩展的云基础设施或本地服务器上执行。该架构旨在随着真正的量子后端(IonQ, Google Sycamore)的成熟,实现向其无缝迁移。 ### 步骤 4 — 结果解释与记忆 没有上下文,原始的量子输出(bitstrings 上的概率分布)是没有意义的。Interpreter Agent 将这些结果转换回领域语言。每次运行都会存储在向量数据库中,允许智能体在跨会话中构建发现空间的映射——从而完善假设并避免死胡同。 ### 步骤 5 — LLM-as-Judge 治理(验证器) 在任何结果呈现给用户之前,一个独立的 `Judge Agent` 会根据安全性、合规性和科学有效性指南对输出进行评估。幻觉或不安全的解释会在这里被捕获。 ## 🚀 快速开始 ### 前置条件 - Python 3.11+ - 您首选的 LLM 供应商的凭证(例如 `GEMINI_API_KEY`、`OPENAI_API_KEY`,或运行本地的 `vLLM`/`Ollama`) ### 安装说明 1. 克隆仓库: git clone https://github.com/AI-Governance-Lab/governed-quantum-agents.git cd governed-quantum-agents 2. 创建虚拟环境并安装依赖: python -m venv venv source venv/bin/activate pip install -r requirements.txt 3. 配置环境变量: cp .env.example .env # 编辑 .env 以添加您的 API 密钥 ### 运行发现目标 ``` python src/main.py --goal "Find a lightweight alloy composition with tensile strength above 900 MPa" ``` ## 企业级就绪与 ROI Venus 专为需要严格监督、预算控制以及从 AI 投资中获得可衡量 ROI 的管理层和高管利益相关者设计。 ### 1. AI FinOps 与成本管理 运行混合量子-经典工作负载可能会很昂贵。通过将所有智能体 LLM 调用通过 **LiteLLM** 进行路由,Venus 提供了内置的 **FinOps 能力**: * **单次发现成本跟踪**:量化每次成功发现所花费的确切 API 和计算成本。 * **预算上限**:通过对每个项目或部门的 token 使用量和云 API 支出设定硬性限制,防止预算超支。 ### 2. 不可变的审计跟踪与合规性 对于受严格监管的行业(制药、金融、国防),**LLM-as-Judge** 评估器通过为每个决策生成**不可变的审计日志**来确保合规性。这提供了分子如何被选择或路线如何被优化的端到端可追溯性,从而加速 FDA、HIPAA 或 SOC2 的合规审查。 ### 3. 基于角色的访问控制 (RBAC) Venus 支持企业组织结构: * **科学家 / 研究人员**:发起发现目标并与结果互动。 * **治理官**:定义安全指南、科学边界并审查审计日志。 * **FinOps 管理员**:控制硬件路由规则(例如,在云 API 预算耗尽时强制执行本地 NVIDIA vLLM)。 ## 用例 **🛡️ 网络安全与威胁情报** *(高需求)* **💹 金融风险与欺诈检测** *(高需求)* **🌍 气候技术与碳捕获** **💊 制药发现** **🔬 材料科学** **📦 物流与运营** ## 混合基础设施与 LLM 路由 Venus 在设计上是模型无关且基础设施灵活的。所有 LLM 调用都通过 **LiteLLM** 路由——这是一个统一的代理,可将 100 多个供应商标准化为一个单一的 API。这使得 Venus 能够根据企业需求在两种不同的模式下运行: ### 模式 1:企业云(默认) Venus 利用 **Google Cloud Platform (GCP)** 和 **Vertex AI** 作为其主要的认知引擎,以提供无与伦比的推理能力。 | 智能体角色 | 主模型 | 回退策略 | |---|---|---| | **语言接口** | `vertex_ai/gemini-2.5-pro` | `groq/llama-3.3-70b` | | **Planner Agent** | `vertex_ai/gemini-2.5-pro` | `anthropic/claude-3-5-haiku` | | **Interpreter Agent**| `vertex_ai/gemini-2.5-pro` | `gemini/gemini-1.5-flash` | | **治理评判器** | `vertex_ai/gemini-2.5-pro` | `groq/llama-3.3-70b` | ### 模式 2:私有本地(严格的数据驻留) 对于有绝对数据驻留要求的组织,Venus 可以使用本地 LLM 在**本地私有基础设施**(例如,NVIDIA DGX,Dell 服务器)上运行。在这种模式下,发现目标永远不会离开内部网络。我们根据硬件容量支持两种本地推理引擎: #### 高吞吐量(NVIDIA A100/H100 + vLLM) 对于企业级发现和大规模并发智能体操作,Venus 会路由到 **vLLM** 进行兼容 OpenAI 的高吞吐量模型服务。 | 通过 vLLM 的模型 | 大小 | 最适合 | |---|---|---| | `vllm/meta-llama/Llama-3.3-70B-Instruct` | 70B | 主要规划与治理 | | `vllm/Qwen/Qwen2.5-Coder-32B-Instruct` | 32B | 复杂规划与工具使用 | #### 轻量级(CPU/入门级 GPU + Ollama) 适用于边缘环境或较轻的工作负载。 | 通过 Ollama 的模型 | 大小 | 最适合 | |---|---|---| | `ollama/llama3.3` | 70B | 主要规划与治理 | | `ollama/llama3.2` | 3B / 1B | 快速意图解析 | | `ollama/gemma2` | 27B | 推理、结果解释 | | `ollama/deepseek-r1` | 14B | 复杂规划 | LiteLLM 在所有模式和后端中透明地处理重试、回退、成本跟踪和供应商标准化。 ## 技术栈 | 组件 | 技术 | |---|---| | **主推理引擎** | Google Vertex AI (Gemini 2.5 Pro) / 本地 vLLM / Ollama | | **LLM 网关与路由** | LiteLLM | | **量子执行** | Google Cirq | | **量子算法** | QAOA, VQE, Grover's, QSVM | | **智能体框架** | Python 3.11, asyncio | | **发现记忆** | FAISS / ChromaDB (向量存储) | | **数据验证** | Pydantic v2 | | **基础设施** | GCP / NVIDIA DGX (A100/H100) / 本地 Dell 服务器 | ## 项目状态与路线图 | 阶段 | 里程碑 | 状态 | |---|---|---| | **v0.1** | Cirq 模拟核心与云 LLM 路由 (LiteLLM) | ✅ 完成 | | **v0.2** | 面向智能体循环的 Vertex AI Gemini 2.5 Pro 集成 | 🔄 活跃 | | **v0.3** |治理评估器 (LLM-as-Judge pipeline) | 📅 计划中 | | **v0.4** | 化学领域分子模拟的 VQE | 📅 计划中 | | **v0.5** | 多会话发现记忆 | 📅 计划中 | | **v1.0** | 真实量子硬件后端集成 | 📅 长期 | ## 为什么是现在? 量子硬件正处于 aggressive 的改进曲线上。在药物发现和材料科学方面能够实现实用量子优势的系统距离我们还有 3 到 5 年的时间。到那时,瓶颈将不再是硬件,而是量子能力与人类意图之间的接口。Venus (GQA) 正是那个接口,并且今天就已经在构建中。 ## 与 AI Governance Lab 的关系 Venus (Governed Quantum Agents) 是 **AI Governance Lab** 旗下的旗舰项目。Venus 中使用的内部 **LLM-as-Judge 评估 pipeline** 代表了该实验室的核心理念:将企业级的 LLM 可观测性、安全性和严格合规性引入最前沿的 AI 领域。 *Venus: Governed Quantum Agents · 量子-经典混合发现引擎 · Cirq · Gemini · 为下一个拐点而生*
标签:AI代理, AI治理, AI风险缓解, Cirq, Python, Vertex AI, 人工智能, 无后门, 用户模式Hook绕过, 计算机取证, 逆向工具, 量子计算