math-skill 2.0.1 → 3.0.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.
Files changed (206) hide show
  1. package/README.en-US.md +167 -175
  2. package/README.md +167 -175
  3. package/agents/math-critic.en.md +235 -0
  4. package/agents/math-critic.md +10 -8
  5. package/commands/ask.md +3 -12
  6. package/design-patterns/attention/equivariant-attention.en.md +72 -0
  7. package/design-patterns/attention/equivariant-attention.md +72 -0
  8. package/design-patterns/attention/geometry-aware-attention.en.md +73 -0
  9. package/design-patterns/attention/geometry-aware-attention.md +72 -0
  10. package/design-patterns/attention/information-bottleneck-attention.en.md +72 -0
  11. package/design-patterns/attention/information-bottleneck-attention.md +72 -0
  12. package/design-patterns/attention/projection-attention.en.md +68 -0
  13. package/design-patterns/attention/projection-attention.md +68 -0
  14. package/design-patterns/attention/spectral-attention.en.md +71 -0
  15. package/design-patterns/attention/spectral-attention.md +71 -0
  16. package/design-patterns/compression/leverage-score-selection.en.md +71 -0
  17. package/design-patterns/compression/leverage-score-selection.md +71 -0
  18. package/design-patterns/compression/low-rank-kv-cache.en.md +60 -0
  19. package/design-patterns/compression/low-rank-kv-cache.md +60 -0
  20. package/design-patterns/compression/spectral-token-pruning.en.md +61 -0
  21. package/design-patterns/compression/spectral-token-pruning.md +61 -0
  22. package/design-patterns/compression/topology-preserving-compression.en.md +64 -0
  23. package/design-patterns/compression/topology-preserving-compression.md +64 -0
  24. package/design-patterns/loss/constraint-penalty.en.md +67 -0
  25. package/design-patterns/loss/constraint-penalty.md +78 -0
  26. package/design-patterns/loss/contrastive-loss.en.md +59 -0
  27. package/design-patterns/loss/contrastive-loss.md +68 -0
  28. package/design-patterns/loss/information-bottleneck-loss.en.md +69 -0
  29. package/design-patterns/loss/information-bottleneck-loss.md +74 -0
  30. package/design-patterns/loss/orthogonality-loss.en.md +56 -0
  31. package/design-patterns/loss/orthogonality-loss.md +60 -0
  32. package/design-patterns/loss/variational-loss.en.md +61 -0
  33. package/design-patterns/loss/variational-loss.md +71 -0
  34. package/design-patterns/representation/equivariant-split.en.md +87 -0
  35. package/design-patterns/representation/equivariant-split.md +89 -0
  36. package/design-patterns/representation/manifold-representation.en.md +85 -0
  37. package/design-patterns/representation/manifold-representation.md +87 -0
  38. package/design-patterns/representation/shared-private-decomposition.en.md +84 -0
  39. package/design-patterns/representation/shared-private-decomposition.md +86 -0
  40. package/design-patterns/representation/subspace-alignment.en.md +90 -0
  41. package/design-patterns/representation/subspace-alignment.md +92 -0
  42. package/design-patterns/routing/graph-routing.en.md +79 -0
  43. package/design-patterns/routing/graph-routing.md +81 -0
  44. package/design-patterns/routing/moe-routing.en.md +85 -0
  45. package/design-patterns/routing/moe-routing.md +87 -0
  46. package/design-patterns/routing/optimal-transport-routing.en.md +68 -0
  47. package/design-patterns/routing/optimal-transport-routing.md +72 -0
  48. package/design-patterns/routing/spectral-clustering-routing.en.md +88 -0
  49. package/design-patterns/routing/spectral-clustering-routing.md +90 -0
  50. package/knowledge-base/differential-geometry/connection.en.md +51 -0
  51. package/knowledge-base/differential-geometry/connection.md +51 -0
  52. package/knowledge-base/differential-geometry/curvature.en.md +49 -0
  53. package/knowledge-base/differential-geometry/curvature.md +49 -0
  54. package/knowledge-base/differential-geometry/geodesic.en.md +51 -0
  55. package/knowledge-base/differential-geometry/geodesic.md +51 -0
  56. package/knowledge-base/differential-geometry/manifold.en.md +47 -0
  57. package/knowledge-base/differential-geometry/manifold.md +47 -0
  58. package/knowledge-base/differential-geometry/metric-tensor.en.md +50 -0
  59. package/knowledge-base/differential-geometry/metric-tensor.md +50 -0
  60. package/knowledge-base/differential-geometry/tangent-space.en.md +48 -0
  61. package/knowledge-base/differential-geometry/tangent-space.md +48 -0
  62. package/knowledge-base/information-geometry/fisher-metric.en.md +56 -0
  63. package/knowledge-base/information-geometry/fisher-metric.md +56 -0
  64. package/knowledge-base/information-geometry/natural-gradient.en.md +54 -0
  65. package/knowledge-base/information-geometry/natural-gradient.md +54 -0
  66. package/knowledge-base/lie-theory/equivariance.en.md +54 -0
  67. package/knowledge-base/lie-theory/equivariance.md +54 -0
  68. package/knowledge-base/lie-theory/group-action.en.md +51 -0
  69. package/knowledge-base/lie-theory/group-action.md +51 -0
  70. package/knowledge-base/lie-theory/lie-algebra.en.md +51 -0
  71. package/knowledge-base/lie-theory/lie-algebra.md +51 -0
  72. package/knowledge-base/lie-theory/lie-group.en.md +51 -0
  73. package/knowledge-base/lie-theory/lie-group.md +51 -0
  74. package/knowledge-base/lie-theory/representation.en.md +52 -0
  75. package/knowledge-base/lie-theory/representation.md +52 -0
  76. package/knowledge-base/matrix-analysis/low-rank-approximation.en.md +49 -0
  77. package/knowledge-base/matrix-analysis/low-rank-approximation.md +49 -0
  78. package/knowledge-base/matrix-analysis/matrix-perturbation.en.md +49 -0
  79. package/knowledge-base/matrix-analysis/matrix-perturbation.md +49 -0
  80. package/knowledge-base/matrix-analysis/positive-semidefinite.en.md +50 -0
  81. package/knowledge-base/matrix-analysis/positive-semidefinite.md +50 -0
  82. package/knowledge-base/matrix-analysis/projection.en.md +47 -0
  83. package/knowledge-base/matrix-analysis/projection.md +47 -0
  84. package/knowledge-base/matrix-analysis/spectral-decomposition.en.md +48 -0
  85. package/knowledge-base/matrix-analysis/spectral-decomposition.md +48 -0
  86. package/knowledge-base/optimization/constrained-optimization.en.md +53 -0
  87. package/knowledge-base/optimization/constrained-optimization.md +53 -0
  88. package/knowledge-base/optimization/convex-optimization.en.md +50 -0
  89. package/knowledge-base/optimization/convex-optimization.md +50 -0
  90. package/knowledge-base/optimization/lagrangian-duality.en.md +50 -0
  91. package/knowledge-base/optimization/lagrangian-duality.md +50 -0
  92. package/knowledge-base/optimization/proximal-method.en.md +52 -0
  93. package/knowledge-base/optimization/proximal-method.md +52 -0
  94. package/knowledge-base/optimization/riemannian-optimization.en.md +51 -0
  95. package/knowledge-base/optimization/riemannian-optimization.md +51 -0
  96. package/knowledge-base/overview.en.md +39 -0
  97. package/knowledge-base/overview.md +29 -218
  98. package/knowledge-base/probability/concentration-inequality.en.md +45 -0
  99. package/knowledge-base/probability/concentration-inequality.md +45 -0
  100. package/knowledge-base/probability/entropy.en.md +47 -0
  101. package/knowledge-base/probability/entropy.md +47 -0
  102. package/knowledge-base/probability/fisher-information.en.md +48 -0
  103. package/knowledge-base/probability/fisher-information.md +48 -0
  104. package/knowledge-base/probability/information-bottleneck.en.md +49 -0
  105. package/knowledge-base/probability/information-bottleneck.md +49 -0
  106. package/knowledge-base/probability/kl-divergence.en.md +51 -0
  107. package/knowledge-base/probability/kl-divergence.md +51 -0
  108. package/knowledge-base/topology/euler-characteristic.en.md +54 -0
  109. package/knowledge-base/topology/euler-characteristic.md +54 -0
  110. package/knowledge-base/topology/fundamental-group.en.md +52 -0
  111. package/knowledge-base/topology/fundamental-group.md +52 -0
  112. package/knowledge-base/topology/persistent-homology.en.md +54 -0
  113. package/knowledge-base/topology/persistent-homology.md +54 -0
  114. package/lenses/algorithmic.en.md +49 -0
  115. package/lenses/algorithmic.md +49 -0
  116. package/lenses/axiomatization.en.md +48 -0
  117. package/lenses/axiomatization.md +48 -0
  118. package/lenses/categorical.en.md +48 -0
  119. package/lenses/categorical.md +48 -0
  120. package/lenses/causal.en.md +49 -0
  121. package/lenses/causal.md +49 -0
  122. package/lenses/duality.en.md +47 -0
  123. package/lenses/duality.md +47 -0
  124. package/lenses/game.en.md +50 -0
  125. package/lenses/game.md +50 -0
  126. package/lenses/geometric.en.md +53 -0
  127. package/lenses/geometric.md +53 -0
  128. package/lenses/local-to-global.en.md +52 -0
  129. package/lenses/local-to-global.md +52 -0
  130. package/lenses/perturbation.en.md +51 -0
  131. package/lenses/perturbation.md +51 -0
  132. package/lenses/probabilistic.en.md +48 -0
  133. package/lenses/probabilistic.md +48 -0
  134. package/lenses/projection.en.md +50 -0
  135. package/lenses/projection.md +50 -0
  136. package/lenses/spectral.en.md +52 -0
  137. package/lenses/spectral.md +52 -0
  138. package/lenses/symmetry.en.md +49 -0
  139. package/lenses/symmetry.md +49 -0
  140. package/lenses/topological.en.md +48 -0
  141. package/lenses/topological.md +48 -0
  142. package/lenses/variational.en.md +48 -0
  143. package/lenses/variational.md +48 -0
  144. package/package.json +11 -3
  145. package/references/agentic-workflow.en.md +53 -0
  146. package/references/agentic-workflow.md +2 -0
  147. package/references/books/abstract-algebra.md +9 -5
  148. package/references/books/algebraic-geometry-rising-sea.md +9 -5
  149. package/references/books/differential-geometry.md +7 -3
  150. package/references/books/matrix-analysis.md +8 -4
  151. package/references/books/micro-lie-theory.md +7 -3
  152. package/references/books/optimization-ml.md +5 -1
  153. package/references/books/smooth-manifolds.md +7 -3
  154. package/references/gpu-friendly-math.en.md +65 -0
  155. package/references/gpu-friendly-math.md +4 -2
  156. package/references/inspiration.en.md +113 -0
  157. package/references/inspiration.md +4 -2
  158. package/skills/math-research-activator/SKILL.en.md +187 -0
  159. package/skills/math-research-activator/SKILL.md +162 -108
  160. package/skills/math-research-activator/original-texts.en.md +105 -0
  161. package/skills/math-research-activator/original-texts.md +11 -11
  162. package/commands/abstraction.md +0 -13
  163. package/commands/algorithmic-thinking.md +0 -13
  164. package/commands/axiomatization.md +0 -13
  165. package/commands/causal-inference.md +0 -13
  166. package/commands/discrete-combinatorial.md +0 -13
  167. package/commands/game-theory.md +0 -13
  168. package/commands/induction-analogy.md +0 -13
  169. package/commands/information-theory.md +0 -13
  170. package/commands/logic-deduction.md +0 -13
  171. package/commands/modeling.md +0 -13
  172. package/commands/optimization.md +0 -13
  173. package/commands/probability-statistics.md +0 -13
  174. package/commands/symmetry-invariance.md +0 -13
  175. package/commands/topological-thinking.md +0 -13
  176. package/commands/transformation.md +0 -13
  177. package/skills/abstraction/SKILL.md +0 -119
  178. package/skills/abstraction/original-texts.md +0 -175
  179. package/skills/algorithmic-thinking/SKILL.md +0 -136
  180. package/skills/algorithmic-thinking/original-texts.md +0 -256
  181. package/skills/axiomatization/SKILL.md +0 -149
  182. package/skills/axiomatization/original-texts.md +0 -160
  183. package/skills/causal-inference/SKILL.md +0 -149
  184. package/skills/causal-inference/original-texts.md +0 -167
  185. package/skills/discrete-combinatorial/SKILL.md +0 -129
  186. package/skills/discrete-combinatorial/original-texts.md +0 -185
  187. package/skills/game-theory/SKILL.md +0 -121
  188. package/skills/game-theory/original-texts.md +0 -131
  189. package/skills/induction-analogy/SKILL.md +0 -150
  190. package/skills/induction-analogy/original-texts.md +0 -154
  191. package/skills/information-theory/SKILL.md +0 -138
  192. package/skills/information-theory/original-texts.md +0 -127
  193. package/skills/logic-deduction/SKILL.md +0 -133
  194. package/skills/logic-deduction/original-texts.md +0 -173
  195. package/skills/modeling/SKILL.md +0 -137
  196. package/skills/modeling/original-texts.md +0 -165
  197. package/skills/optimization/SKILL.md +0 -133
  198. package/skills/optimization/original-texts.md +0 -168
  199. package/skills/probability-statistics/SKILL.md +0 -149
  200. package/skills/probability-statistics/original-texts.md +0 -193
  201. package/skills/symmetry-invariance/SKILL.md +0 -137
  202. package/skills/symmetry-invariance/original-texts.md +0 -221
  203. package/skills/topological-thinking/SKILL.md +0 -126
  204. package/skills/topological-thinking/original-texts.md +0 -164
  205. package/skills/transformation/SKILL.md +0 -122
  206. package/skills/transformation/original-texts.md +0 -216
@@ -1,13 +0,0 @@
1
- ---
2
- name: optimization
3
- description: |
4
- 问题涉及约束下取舍与目标极值、需用拉格朗日/KKT/对偶分析,或为算法/算子/训练设计选择优化方法时调用。路由到 ../skills/optimization/SKILL.md。
5
- English: Trigger when a problem involves trade-offs and extrema under constraints, needs Lagrangian/KKT/duality analysis, or chooses optimization methods for algorithm/operator/training design. Routes to ../skills/optimization/SKILL.md.
6
- ---
7
-
8
- 读取并遵循 `../skills/optimization/SKILL.md`,按其操作规程输出(用于算法/算子/GPU 设计时含 [GPU 可行性] 项)。
9
-
10
- 如果输入包含 "in English",请使用英文输出;否则使用中文输出。
11
-
12
- 当前问题:
13
- $ARGUMENTS
@@ -1,13 +0,0 @@
1
- ---
2
- name: probability-statistics
3
- description: |
4
- 量化不确定性、做贝叶斯推断/假设检验/回归建模/实验设计,或为随机算法/采样/量化/训练动力学设计概率机制时调用。路由到 ../skills/probability-statistics/SKILL.md。
5
- English: Trigger when quantifying uncertainty, doing Bayesian inference/hypothesis testing/regression/experimental design, or designing probabilistic mechanisms for random algorithms/sampling/quantization/training dynamics. Routes to ../skills/probability-statistics/SKILL.md.
6
- ---
7
-
8
- 读取并遵循 `../skills/probability-statistics/SKILL.md`,按其操作规程输出(用于算法/算子/GPU 设计时含 [GPU 可行性] 项)。
9
-
10
- 如果输入包含 "in English",请使用英文输出;否则使用中文输出。
11
-
12
- 当前问题:
13
- $ARGUMENTS
@@ -1,13 +0,0 @@
1
- ---
2
- name: symmetry-invariance
3
- description: |
4
- 做群论/不变量/Noether 定理/对称性破缺分析,或为算法设计等变性/守恒量/不变结构时调用。路由到 ../skills/symmetry-invariance/SKILL.md。
5
- English: Trigger when doing group theory/invariant/Noether's theorem/symmetry-breaking analysis, or designing equivariance/conservation/invariant structures for algorithms. Routes to ../skills/symmetry-invariance/SKILL.md.
6
- ---
7
-
8
- 读取并遵循 `../skills/symmetry-invariance/SKILL.md`,按其操作规程输出(用于算法/算子/GPU 设计时含 [GPU 可行性] 项)。
9
-
10
- 如果输入包含 "in English",请使用英文输出;否则使用中文输出。
11
-
12
- 当前问题:
13
- $ARGUMENTS
@@ -1,13 +0,0 @@
1
- ---
2
- name: topological-thinking
3
- description: |
4
- 做拓扑数据分析/持续同调/同调与基本群计算,或为算法设计连通性/鲁棒性/上同调一致性判据时调用。路由到 ../skills/topological-thinking/SKILL.md。
5
- English: Trigger when doing topological data analysis/persistent homology/homology and fundamental group computation, or designing connectivity/robustness/cohomology-consistency criteria for algorithms. Routes to ../skills/topological-thinking/SKILL.md.
6
- ---
7
-
8
- 读取并遵循 `../skills/topological-thinking/SKILL.md`,按其操作规程输出(用于算法/算子/GPU 设计时含 [GPU 可行性] 项)。
9
-
10
- 如果输入包含 "in English",请使用英文输出;否则使用中文输出。
11
-
12
- 当前问题:
13
- $ARGUMENTS
@@ -1,13 +0,0 @@
1
- ---
2
- name: transformation
3
- description: |
4
- 问题在当前表示下难处理、需通过数学变换转为等价简单问题,或为算法/算子设计寻找更 GPU 友好的等价表示时调用。路由到 ../skills/transformation/SKILL.md。
5
- English: Trigger when a problem is intractable in its current form and needs a transform into an equivalent simpler problem, or when finding a more GPU-friendly equivalent representation for algorithm/operator design. Routes to ../skills/transformation/SKILL.md.
6
- ---
7
-
8
- 读取并遵循 `../skills/transformation/SKILL.md`,按其操作规程输出(用于算法/算子/GPU 设计时含 [GPU 可行性] 项)。
9
-
10
- 如果输入包含 "in English",请使用英文输出;否则使用中文输出。
11
-
12
- 当前问题:
13
- $ARGUMENTS
@@ -1,119 +0,0 @@
1
- ---
2
- name: abstraction
3
- description: |
4
- 触发:需要从复杂问题中提取数学结构、发现不同领域共性、构建通用理论;或为算法/算子设计寻找可迁移的抽象结构(范畴/代数/拓扑)时调用。
5
- English: Trigger when extracting mathematical structures from complex problems, discovering cross-domain commonalities, building general theories; or finding transferable abstract structures (category/algebra/topology) for algorithm/operator design.
6
- ---
7
-
8
- # 🧩 抽象化思想 / Abstraction
9
-
10
- > "数学的力量在于抽象:忽略偶然细节,揭示必然结构。"
11
- > "The power of mathematics lies in abstraction: ignoring contingent details to reveal necessary structures."
12
- >
13
- > —— 代数学、拓扑学、范畴论 / Algebra, Topology, Category Theory
14
-
15
- ## 核心原则 / Core Principle
16
-
17
- **抽象不是远离现实,而是深入现实——通过忽略表面的、偶然的细节,揭示深层的、本质的结构。不同领域的问题往往共享相同的抽象结构。** 在本技能包的语境里,抽象化是「跨领域激活」的核心操作:把代数几何/拓扑的结构迁移到算法设计,靠的就是识别两者共享的抽象结构。
18
-
19
- 抽象的三个层次(递进):**提炼**(从多实例识别共同结构)→ **推广**(定理从特殊扩展到一般)→ **结构化**(用结构语言重构整个问题域)。
20
-
21
- > **数学形式化 / Mathematical Formalization**
22
- >
23
- > 范畴论视角:对象与态射构成范畴 **C**;函子 **F, G : C → D** 保持结构;自然变换 **η : F ⇒ G** 联系函子;**Yoneda 引理**:Hom(Hom(−, A), F) ≅ F(A),即一个对象由所有指向它的态射完全确定。
24
- >
25
- > 代数视角:群(closure, associativity, identity, inverse);环(加法群+乘法半群+分配律);域(环+乘法可逆);模(环上的向量空间);格(偏序集+交与并)。
26
-
27
- ## GPU 友好性 / GPU-Friendliness(横切检查)
28
-
29
- 抽象结构能否落地 GPU,取决于其「具体化」后的计算形态——过 `../../references/gpu-friendly-math.md` 八维:
30
-
31
- - **范畴/代数结构 → GEMM**:若抽象结构可具体化为线性映射(如限制映射、群表示),则天然落到 Tensor Core GEMM(友好)。
32
- - **通用构造(积/余积/极限)**:若物化为大中间张量则显存爆炸(不友好)→ 改造为分块/流式或低秩近似。
33
- - **Yoneda 视角**:用 Hom 行为代替内部结构——若 Hom 集本身巨大则不可算;只在 Hom 可批量张量化时友好。
34
- - **反模式**:把一个本质离散/符号的抽象(如一般上同调的精确计算)硬塞进训练,往往"美但不可算"。
35
-
36
- 八维最低判定(正式术语):**张量化**看抽象对象能否具体化为批量张量;**GEMM 可映射**看态射/表示/限制映射能否落线性映射;**复杂度**看抽象层是否引入超线性全局构造;**显存与 KV-Cache**看是否物化积/极限/Hom 大表;**低精度稳定**看具体化后是否依赖病态求逆或精确符号等式;**并行与通信**看构造是否局部可分块;**稀疏结构**看是否为块/带状结构而非随机访存;**算子融合**看抽象接口能否收敛为少量 fused kernels。
37
-
38
- > 配合 `../../references/books/algebraic-geometry-rising-sea.md`、`abstract-algebra.md`、`smooth-manifolds.md`。
39
-
40
- ## 不适用场景 / When NOT to Use
41
-
42
- - **每个细节都至关重要**(如调试一个具体 bug)——抽象会丢失关键信息。
43
- - **需要具体数值答案**(如"这个积分等于多少")——抽象不提供具体计算。
44
- - **问题本身已是最简形式**——无需进一步抽象。
45
-
46
- ## 何时使用 / When to Use
47
-
48
- - 面对复杂问题不知从何入手——先抽象出核心结构。
49
- - 两个看似不同的问题有相似之处——寻找共同抽象框架。
50
- - 需要将具体经验推广为一般规律,或建立跨领域通用模型/理论。
51
- - **把现代数学结构迁移到算法/算子设计**——识别问题与代数几何/拓扑/李理论共享的抽象结构。
52
-
53
- ## 方法流程 / Method
54
-
55
- ### 第一步:描述具体问题 / Describe the Concrete Problem
56
- 用数学语言精确描述问题的所有要素——对象、关系、约束、目标。抽象始于具体:在抽象前必须充分了解具体对象。
57
-
58
- ### 第二步:区分本质与非本质特征 / Distinguish Essential from Non-Essential
59
- 逐项检查每个特征:若改变该特征,问题的核心结构是否改变?**本质特征**(改变后问题性质根本变化)必须保留;**非本质特征**(改变后结构不变)可忽略。例:研究矩阵可逆性时,具体数值非本质(相似变换下不变),而秩是本质的。
60
-
61
- ### 第三步:提取抽象结构 / Extract the Abstract Structure
62
- 从四个数学视角选最匹配的,执行其操作:
63
-
64
- - **范畴论视角**(关注对象间关系):识别"对象"与"映射/关系";检查映射可复合、有恒等→构成范畴;进一步看是否存在函子映到已知范畴、自然变换联系不同函子。
65
- - **代数视角**(关注运算与公理):识别"运算"及其性质(封闭/结合/交换/分配);对照群/环/域/模/格匹配公理;确定最匹配结构。
66
- - **拓扑视角**(关注连续与连通):识别"连续变化/邻近/连通-分离";构造开集结构验证拓扑公理;识别拓扑不变量(连通/紧致/基本群)。
67
- - **分析视角**(关注度量与范数):识别"距离/大小/收敛";验证度量/范数公理;确定完备/有界等性质,调用对应定理(如 Banach 空间理论)。
68
-
69
- ### 第四步:在抽象层级求解 / Solve at the Abstract Level
70
- 利用抽象结构已有理论求解。关键工具:
71
- - **通用构造**:积(统一投影)、余积(统一嵌入)、极限/余极限(兼容条件下合并与粘合)。
72
- - **Yoneda 引理洞察**:对象由所有指向它的态射完全确定;要理解 X,考察 Hom(A,X)/Hom(X,A) 即可;证明两对象同构只需证其态射行为一致。
73
-
74
- ### 第五步:具体化回原问题 / Concretize Back
75
- 将抽象解中每个要素精确翻译回原问题的数学语言,确保每步有对应。抽象之后必须回到具体,否则抽象失去意义。
76
-
77
- ### 第六步:验证 / Verify
78
- 往返过程中关键信息是否完整保留?原问题答案是否在抽象解中有明确对应?翻译回具体后是否确实解决原问题?是否有本质特征被意外忽略?
79
-
80
- ### 第七步:层级递进 / Level Progression
81
- - **提炼→推广**:当提炼出的概念已在多实例验证、定理自然延伸在更宽条件下似成立时→推广。
82
- - **推广→结构化**:当推广定理积累到支撑自洽体系、不同推广间有系统联系时→结构化。
83
- - **不可跃升**:提炼概念未在足够实例验证则不贸然推广;推广定理零散不成体系则不贸然结构化。
84
-
85
- ## 常见错误 / Common Errors
86
-
87
- | 错误 / Error | 批评 / Critique | 正确做法 / Correct Approach |
88
- |-------------|----------------|---------------------------|
89
- | 过度抽象 | 把本质细节也抽象掉,问题被扭曲(如丢掉群的逆元只剩半群) | 每次抽象后检查关键信息是否保留 |
90
- | 抽象不足 | 保留太多非本质细节,未达简化目的 | 反复问:这个细节真的必要吗 |
91
- | 抽象到错误层级 | 用范畴论处理只需群论的问题;或仅用集合论处理本有群结构的问题 | 选与问题复杂度匹配的层级 |
92
- | 忘记函子视角 | 仅看对象内部结构忽略态射,丢失一半信息 | 同时考察 Hom(A,X) 和 Hom(X,A) |
93
- | 忘记回到具体 | 停在抽象层面不翻译回原问题 | 抽象完成后必须具体化 |
94
- | 抽象结构不可算 | 把本质离散/符号的抽象硬塞进 GPU 训练 | 具体化后过 GPU 八维门,不可算则改造或放弃 |
95
-
96
- ## 操作规程 / Operating Procedure
97
-
98
- 当本 skill 被触发时,输出必须包含:
99
-
100
- 1. **[问题描述]:[具体]** — 用数学语言精确描述问题所有要素
101
- 2. **[本质/非本质]:[区分]** — 列出本质与非本质特征,逐项标注改变后是否影响核心结构
102
- 3. **[视角选择]:[四选一]** — 从范畴论/代数/拓扑/分析中选最匹配的,执行其操作步骤
103
- 4. **[抽象求解]:[构造]** — 利用通用构造或 Yoneda 视角,在抽象层级给出解法方向
104
- 5. **[具体化]:[翻译]** — 将抽象解精确翻译回原问题数学语言
105
- 6. **[验证]:[检查]** — 往返过程中关键信息是否完整保留
106
- 7. **[层级判定]:[递进]** — 标注当前处于提炼/推广/结构化哪一层,评估是否应跃升
107
- 8. **[GPU 可行性]**(若用于算法/算子设计)— 抽象结构具体化后过八维门,标注友好/可改造/不友好
108
-
109
- **输出不得只给分析而无结论。**
110
-
111
- ## 与其他 skill 的关系 / Relations to Other Skills
112
-
113
- - **公理化思想**:抽象化是公理化的前置——先抽象出本质,再选择公理。
114
- - **建模思想**:建模是抽象化的具体应用——把现实问题抽象为数学问题。
115
- - **变换思想**:变换可看作一种抽象——在新表示中寻找简单结构。
116
- - **归纳与类比**:类比本质就是识别两不同领域的共同抽象结构。
117
- - **拓扑思想**:拓扑抽象关注连续与连通,是抽象化在空间问题中的具体形态。
118
- - **算法思想**:算法抽象关注计算过程结构,将具体实现抽象为算法模式与复杂度类。
119
- - **现代数学激活**:`../../references/books/algebraic-geometry-rising-sea.md`(层/范畴→注意力)、`abstract-algebra.md`(群/半环→等变与路由)、`smooth-manifolds.md`(流形结构→隐空间几何)。
@@ -1,175 +0,0 @@
1
- # 数学出处与经典文献 / Mathematical Sources and Classic Texts
2
-
3
- ## 伽罗瓦理论 / Galois Theory (1830s)
4
-
5
- > "伽罗瓦理论的深刻之处在于:它将'方程是否有根式解'的问题,转化为'置换群是否可解'的结构问题。"
6
- > "The profundity of Galois theory: it transforms the question 'can an equation be solved by radicals?' into the structural question 'is the permutation group solvable?'"
7
-
8
- **抽象范式**:伽罗瓦理论是数学史上最早的系统抽象——从具体的方程求解,上升到群的对称性结构。
9
- - 根的置换群(permutation group of roots)决定了方程的可解性
10
- - 伽罗瓦对应(Galois correspondence):子群 ↔ 子域,将代数与结构直接联系
11
- - 影响深远:开启了"用结构代替计算"的思维方式,为抽象代数奠定基础
12
-
13
- **历史**:Evariste Galois (1811–1832),生前未获认可,手稿由 Liouville 于 1846 年发表。
14
-
15
- ## 戴德金与诺特 / Dedekind & Noether — 从数到结构 / From Numbers to Structures
16
-
17
- > "戴德金将整数从'计数工具'抽象为'环的理想';诺特将这一切系统化,使理想成为代数的核心对象。"
18
- > "Dedekind abstracted integers from 'counting tools' into 'ideals of rings'; Noether systematized this, making ideals the central objects of algebra."
19
-
20
- **关键贡献**:
21
- - **Dedekind (1831–1916)**:理想(ideals)理论的创始人——将"整除"抽象为"包含关系",将数论提升到结构层面
22
- - **Emmy Noether (1882–1935)**:
23
- - 诺特环(Noetherian rings):升链条件将"有限性"从具体对象抽象为结构性质
24
- - 诺定理(Noether's theorem, 1918):物理中的对称性 ↔ 守恒律——物理学中抽象结构的典范
25
- - 将抽象代数从"计算性"转向"结构性"
26
-
27
- > "Noether 的教学模式:'Es steht schon bei Dedekind'(Dedekind 已经写过了)——她总是追溯结构的思想根源。"
28
-
29
- ## 范畴论 / Category Theory (Eilenberg & Mac Lane, 1945)
30
-
31
- > "范畴论的核心思想是:研究对象之间的态射(映射)比研究对象本身更重要。"
32
- > "The key idea of category theory: studying the morphisms (maps) between objects is more important than studying the objects themselves."
33
-
34
- **核心概念**:
35
- - **对象(Objects)** 和 **态射(Morphisms)**
36
- - **函子(Functors)**:范畴之间的映射
37
- - **自然变换(Natural Transformations)**:函子之间的映射
38
- - **泛性质(Universal Properties)**:用关系定义对象
39
-
40
- **抽象的意义**:范畴论是"数学的数学"——它抽象到可以描述数学本身的结构。
41
-
42
- ## 米田引理 / Yoneda Lemma (1954)
43
-
44
- > "一个对象完全由它与其他对象之间的关系所决定——这是范畴论的基本定理。"
45
- > "An object is completely determined by its relationships to all other objects — this is the fundamental theorem of category theory."
46
-
47
- **数学含义**:
48
- - 形式化表述:Hom(Hom(A, —), F) ≅ F(A)——函子的自然变换与函子在 A 处的取值一一对应
49
- - 哲学意义:要了解一个事物,只需观察它与一切其他事物的交互——"你由你的关系所定义"
50
- - Yoneda 嵌入:每个对象 A ↦ Hom(—, A),对象可完全嵌入到其"关系世界"中
51
- - 被称为范畴论的"第一定理"(first theorem),地位相当于集合论中的外延公理
52
-
53
- **历史**:首次出现在 Nobuo Yoneda 的未发表笔记中,后由 Mac Lane 在 1954 年正式阐述。
54
-
55
- ## 布尔巴基 / Bourbaki (1935–)
56
-
57
- > "布尔巴基用'结构'作为统一语言重写了二十世纪数学——从母结构(代数、序、拓扑)出发,一切皆结构。"
58
- > "Bourbaki rewrote 20th-century mathematics with 'structures' as a unifying language — from mother structures (algebra, order, topology), everything is structure."
59
-
60
- **核心思想**:
61
- - 三大母结构(mother structures):代数结构(algebraic)、序结构(order)、拓扑结构(topological)
62
- - 复合结构(multiple structures):由母结构组合而来——拓扑群、有序域等
63
- - 《数学原理》(Éléments de mathématique):40 余卷的系统化重写
64
- - 影响深远:定义了现代数学教材的组织方式与抽象风格
65
-
66
- **争议**:布尔巴基的结构主义偏向过于抽象,忽视了概率论与计算数学——但也正是这种抽象化推动了范畴论的诞生。
67
-
68
- ## 代数结构 / Algebraic Structures
69
-
70
- 抽象代数展示了不同数学对象之间的深层共性:
71
-
72
- | 结构 | 运算要求 | 例子 |
73
- |------|---------|------|
74
- | 半群 (Semigroup) | 封闭、结合 | 函数复合、字符串拼接 |
75
- | 幺半群 (Monoid) | 半群 + 单位元 | 自然数加法、列表拼接(含空列表) |
76
- | 群 (Group) | 幺半群 + 逆元 | 对称群、整数加法群 |
77
- | 环 (Ring) | 群(加法)+ 半群(乘法)+ 分配律 | 整数环、多项式环 |
78
- | 域 (Field) | 环 + 乘法逆元(非零元) | 有理数域、实数域 |
79
- | 向量空间 (Vector Space) | 域上的加法群 + 标量乘法 | ℝⁿ, 函数空间 |
80
-
81
- **中间结构的意义**:半群和幺半群并非"不完整的群"——它们在自动机理论(automata theory)、形式语言(formal languages)、字符串处理中本身就是核心对象。抽象不是追求"最完整",而是提取恰好所需的性质。
82
-
83
- **抽象的力量**:一旦在抽象层面证明了某个结论,它就自动适用于所有满足该结构的实例。
84
-
85
- ## 泛代数 / Universal Algebra (Birkhoff, 1935)
86
-
87
- > "泛代数的核心问题是:什么样的等式类(equational classes)可以被一组等式公理所定义?"
88
- > "The central question of universal algebra: which equational classes can be defined by a set of equational axioms?"
89
-
90
- **关键贡献**:
91
- - **Birkhoff 定理**:一个代数类是等式类(variety) iff 它对同态像、子代数、直积封闭(HSP 定理)
92
- - 系统地研究"代数结构本身"——不是某个具体群或环,而是"一切满足给定公理的结构的共同性质"
93
- - 泛代数是范畴论的前驱:泛性质、自由对象等概念在此已经有了雏形
94
- - 与范畴论的关系:等式类 = 由自由代数生成的范畴中的泛对象
95
-
96
- ## 表示论 / Representation Theory (Frobenius, 1896–)
97
-
98
- > "表示论将抽象群'实现'为具体的线性变换——让不可见的对称性变得可见。"
99
- > "Representation theory 'realizes' abstract groups as concrete linear transformations — making invisible symmetries visible."
100
-
101
- **核心思想**:
102
- - 群表示(group representation):群 G → GL(V),将抽象群元素映射为矩阵
103
- - Frobenius (1849–1917):开创群的特征标理论(character theory),用迹函数捕捉不可约表示
104
- - 不可约表示(irreducible representations):群的"原子"——一切表示由它们组合
105
- - Schur 引理、Maschke 定理等构成了半单代数的完整理论
106
-
107
- **抽象的双重意义**:一方面,表示论让抽象对象变得可计算;另一方面,表示的分类本身就是更高层次的抽象问题。
108
-
109
- ## 自由对象与泛构造 / Free Objects and Universal Constructions
110
-
111
- > "自由对象是'没有任何额外关系'的最一般的对象——它仅由公理强制的关系所决定。"
112
- > "A free object is the most general object with 'no extra relations' — determined only by relations forced by axioms."
113
-
114
- **核心概念**:
115
- - **自由群(Free group)**:由字母表生成,除群的公理外无任何额外关系
116
- - **自由幺半群(Free monoid)**:就是字符串集合——字符串拼接是"最自由的"结合运算
117
- - **泛性质表述**:自由对象 F(A) 满足——任意映射 A → X(X 为目标结构中的对象)唯一延伸为 F(A) → X 的态射
118
- - **左伴随(Left adjoint)**:遗忘函子(forgetful functor)的左伴随就是自由对象——抽象的"最一般解"
119
-
120
- **意义**:自由对象展示了泛构造的典型模式——用"最少的约束"定义"最一般的解",然后通过附加关系得到更具体的对象。
121
-
122
- ## 格罗滕迪克与概形 / Grothendieck & Schemes (1950s–60s)
123
-
124
- > "格罗滕迪克将代数几何彻底重构:不再研究具体曲线,而是研究概形——最一般的'空间'概念。"
125
- > "Grothendieck completely reconstructed algebraic geometry: no longer studying specific curves, but schemes — the most general notion of 'space'."
126
-
127
- **革命性抽象**:
128
- - **概形(Schemes)**:将代数簇(algebraic varieties)推广到允许零因子、任意基的改变——"空间"不再是点集,而是环的谱(spectrum of a ring)
129
- - **拓扑斯(Topoi)**:比拓扑空间更一般的"空间"概念——一个拓扑斯就是一个范畴,足以支撑内部逻辑
130
- - **动机(Motives)**:猜想中的"万能上同调理论"——不同上同调理论的共同根源
131
- - **泛构造哲学**:Grothendieck 总是先找到"最一般"的框架,再在其中解决具体问题
132
-
133
- **影响**:EGA/SGA 四千余页的重写,使代数几何成为最抽象也最强大的数学分支之一。Weil 猜想(Weil conjectures)的证明正是这一抽象框架的直接成果。
134
-
135
- ## 拓扑学 / Topology
136
-
137
- > "拓扑学是研究在连续变形下保持不变的性质的学科。"
138
- > "Topology studies properties that remain unchanged under continuous deformations."
139
-
140
- **抽象层次**:
141
- - 度量空间 → 拓扑空间:去掉距离,只保留"开集"概念
142
- - 连续函数 → 态射:去掉 ε-δ,只保留"开集的原像是开集"
143
- - 同胚 → 等价:拓扑意义下"相同"的空间
144
-
145
- **经典案例**:咖啡杯和甜甜圈在拓扑意义下是同构的——它们都有一个洞。
146
-
147
- ## 同伦类型论 / Homotopy Type Theory (Voevodsky, 2009–)
148
-
149
- > "同伦类型论的唯一性公理宣称:同构的结构就是相同的——这是抽象的终极形式。"
150
- > "The univalence axiom of homotopy type theory asserts: isomorphic structures are identical — the ultimate form of abstraction."
151
-
152
- **核心思想**:
153
- - **唯一性公理(Univalence Axiom)**:(A ≃ B) ≃ (A = B)——同构与相等等价
154
- - 哲学冲击:如果两个结构在所有可观测性质上一致,它们就"是"同一个——没有"不可观测的"同一性
155
- - **同伦层级(h-levels)**:命题(h-level 1)、集合(h-level 2)、群对象(h-level 3)……——将经典逻辑与拓扑直觉统一
156
- - Voevodsky (1966–2017):Fields 奖得主,后期致力于将数学建立在计算可靠性更高的新基础之上
157
-
158
- **与范畴论的关系**:同伦类型论可视为范畴论的"内部语言"——在 (∞,1)-范畴的语境中,唯一性公理是自然的。
159
-
160
- ## 抽象的本质 / The Nature of Abstraction
161
-
162
- > "所谓抽象,就是忽略具体的、偶然的特征,提取一般的、本质的结构。"
163
- > "Abstraction means ignoring specific, contingent features and extracting general, essential structures."
164
-
165
- 抽象不是远离现实,而是深入现实——通过找到不同事物的共同结构,我们可以用统一的框架处理它们。
166
-
167
- **抽象的谱系**:
168
- - Galois (1830s):方程 → 群结构
169
- - Dedekind (1870s):数 → 理想
170
- - Birkhoff (1935):具体代数 → 等式类
171
- - Eilenberg–Mac Lane (1945):具体数学 → 范畴
172
- - Grothendieck (1960s):具体空间 → 概形与拓扑斯
173
- - Voevodsky (2010s):同构 → 同一
174
-
175
- 每一次抽象,都让我们看到更深的结构,处理更广的问题。
@@ -1,136 +0,0 @@
1
- ---
2
- name: algorithmic-thinking
3
- description: |
4
- 触发:问题需要有限步骤求解、算法设计、复杂度分析(时间/空间)、可行性与并行性评估(P/NP-hard/不可判定);或需证明终止性/正确性;或为 GPU 设计可执行算法/算子(评估复杂度阶、并行度、访存与融合)时调用。
5
- English: Trigger when a problem needs finite-step solving, algorithm design, complexity analysis (time/space), tractability & parallelism assessment (P/NP-hard/undecidable); or termination/correctness proofs; or designing executable algorithms/operators for GPU (assessing complexity order, parallelism, memory access & fusion).
6
- ---
7
-
8
- # 🖥️ 算法与计算思想 / Algorithmic Thinking
9
-
10
- > "算法是思想的自动化——将洞察转化为可重复执行的精确步骤。"
11
- > "An algorithm is the automation of thought — turning insight into precisely repeatable steps."
12
- >
13
- > —— 计算理论、算法分析、复杂度理论 / Computability Theory, Algorithm Analysis, Complexity Theory
14
-
15
- ## 核心原则 / Core Principle
16
-
17
- **把问题拆解为可执行步骤,评估代价,判断可行性。算法思想的第一原则不是"如何求解",而是"是否可解、代价几何"——某些问题本质困难(NP 完全),某些本质不可解(不可判定),了解这些极限与找到解同样重要。**
18
-
19
- **Break problems into executable steps, assess cost, judge feasibility. The first principle is not "how to solve" but "whether it is solvable and at what cost" — some problems are inherently hard (NP-complete), some inherently unsolvable (undecidable); knowing these limits is as important as finding solutions.**
20
-
21
- > **数学形式化 / Mathematical Formalization**
22
- >
23
- > 图灵机 M: Σ* → Σ* 在有限步骤内停机。时间复杂度 T(n) = 长度为 n 的输入的最大执行步数;空间复杂度 S(n) = 最大使用单元数。丘奇-图灵论题:任何可计算的都可由图灵机计算。
24
- >
25
- > 三级层次:可计算(算法存在)→ 可行(多项式时间算法存在)→ 难解(仅指数时间或无算法)。可计算但不可行在实践中等同不可计算——蛮力 2^n 对 n=100 毫无价值。P vs NP 正是可行与难解的分界。
26
- >
27
- > 复杂度符号:O(f(n)) 上界,Ω(f(n)) 下界,Θ(f(n)) 精确界。常见递推:T(n)=2T(n/2)+O(n)→O(n log n);T(n)=T(n-1)+O(n)→O(n²);T(n)=T(n/2)+O(1)→O(log n)。复杂度类:O(1)⊂O(log n)⊂O(n)⊂O(n log n)⊂O(n^k)⊂O(2^n)⊂O(n!)。
28
- >
29
- > 复杂度类定义:P = 多项式时间可判定;NP-hard = 至少与所有 NP 问题同等困难;不可判定 = 无任何算法可判定。NP-hard 应对:近似(误差界限)或启发式(概率保证);不可判定应对:寻找可判定的受限版本。
30
- >
31
- > 循环不变量:每次迭代前后成立的性质,加终止条件蕴含输出正确。Hoare 逻辑:{P} S {Q}——前置条件 P 经语句 S 产生后置条件 Q。
32
-
33
- ## GPU 友好性 / GPU-Friendliness(横切检查)
34
-
35
- 算法思想是与 GPU 最直接相关的武器——复杂度阶、并行度、访存/通信、算子融合直接决定一个算法能否在 GPU 上高效跑起来。每个算法须过 `../../references/gpu-friendly-math.md` 八维门:
36
-
37
- - **复杂度阶**:亚二次 O(n log n)/O(n) 友好(吃满并行核);O(n²) 边界(GEMM 例外,Tensor Core 可救);O(2^n)/O(n!) 反模式。
38
- - **并行与通信**:分治/数据并行友好(子问题独立、可批量);动规的依赖链、回溯的串行搜索需改造(分块/斜扫描)。
39
- - **显存与 KV-Cache / 并行与通信**:coalesced 访问友好;butterfly 归约、前缀扫描的依赖需注意带宽;随机 scatter/gather 不友好。
40
- - **算子融合**:多步 elementwise 可融合为单 kernel;反复读写显存的"美丽但不可算"算法应重排为一次过。
41
-
42
- 八维最低判定(正式术语):**张量化**要求主循环可批量化;**GEMM 可映射**优先把核心计算写成 GEMM/conv/scan;**复杂度**必须给时间与空间阶;**显存与 KV-Cache**检查中间表、状态、缓存是否可分块;**低精度稳定**检查归约、排序、迭代误差;**并行与通信**检查依赖图与跨设备同步;**稀疏结构**只接受结构化稀疏;**算子融合**要求减少小 kernel 与往返显存。
43
-
44
- | 算法特征 | GPU 分类 | 说明 |
45
- |---|---|---|
46
- | 分治/归并/FFT | 友好 | 亚二次、可批量、结构规则 |
47
- | 动规(依赖链) | 可改造 | 分块/斜扫描打破串行依赖 |
48
- | 回溯/DFS 串行搜索 | 反模式 | 分支不可预测、无法填满 SIMD |
49
- | 蛮力 O(2^n) | 反模式 | 复杂度阶本身不可算 |
50
-
51
- > 配合 `../../references/books/matrix-analysis.md`(GEMM/低秩分解降阶)、`../../references/books/optimization-ml.md`(一阶/二阶法可行性)、`../../references/books/abstract-algebra.md`(半环/有限域上的并行算法)。
52
-
53
- ## 不适用场景 / When NOT to Use
54
-
55
- - **问题有闭式解,不需要逐步计算**——如二次方程求根公式直接给答案,算法化反增复杂度。
56
- - **问题本质是定性的而非程序性的**——如"这个结构是否优美""这个证明是否有洞察力"无法化为有限步骤。
57
- - **输入无结构、无法离散化**——如连续感知数据流无法直接作为算法输入;预处理比核心问题更复杂时算法化未必最优。
58
-
59
- ## 何时使用 / When to Use
60
-
61
- - 需要自动化重复过程——同一操作对大量数据反复执行,手动不可扩展。
62
- - 需要验证程序终止——证明算法在有限步内停机,是可靠性的基石。
63
- - 需要估算计算代价——大规模运行前评估时间/空间消耗,避免资源耗尽。
64
- - 面对组合爆炸——搜索空间随输入指数增长,需剪枝策略。
65
- - 需要判断问题可行性——确定 P / NP-hard / 不可判定,决定求解策略。
66
- - 需要设计高效求解步骤——从蛮力到精巧算法,效率差异可达数个量级。
67
- - **为 GPU 设计可执行算法/算子**——评估复杂度阶、并行度、访存与融合,使算法在硬件上真正可算。
68
-
69
- ## 方法流程 / Method
70
-
71
- ### 第一步:形式化输入输出规格 / Formalize I/O Spec
72
- 定义输入域、输出域、约束条件。输入规格明确数据类型(整数/浮点/字符串/图)、规模范围 n∈[1,10^6]、合法性条件(前置条件);输出规格明确返回类型、精度、边界处理;约束覆盖时间/空间限制与正确性保证(后置条件)。检验:若写不出前置/后置条件谓词,则规格尚未足够形式化。
73
-
74
- ### 第二步:分解子问题 / Decompose into Sub-problems
75
- 将大问题拆为可独立求解的小块,子问题边界清晰、接口明确。分解策略:按数据(处理不同子集)、按功能(完成不同子任务)、按层次(先粗后细逐层精化)。好的分解使每个子问题可独立验证,整体可递归验证;子问题间依赖须显式标注,避免隐式耦合。
76
-
77
- ### 第三步:设计程序 / Design the Procedure
78
- 选择算法范式——核心决策,选错则后续努力白费:
79
-
80
- - **分治 (Divide-and-Conquer)**:分割、求解子部分、合并。子问题独立、合并代价低于整体。经典:归并/快速排序、Strassen 矩阵乘。递推 T(n)=aT(n/b)+f(n) 由主定理求解。
81
- - **动态规划 (DP)**:重叠子问题、备忘录化避免重复。最优子结构成立。经典:最短路、背包、序列对齐。
82
- - **贪心 (Greedy)**:每步局部最优,期望全局。贪心选择性质成立。经典:Dijkstra、Huffman、MST。
83
- - **回溯 (Backtracking)**:系统性搜索、遇死路剪枝回退。搜索空间有结构。经典:N 皇后、TSP 精确解、CSP。
84
- - **随机化 (Randomized)**:概率捷径,以随机换效率。确定性代价过高。经典:随机快排、Monte Carlo、Las Vegas。
85
-
86
- 选择原则:独立→分治、重叠→动规、贪心性质→贪心、结构化搜索→回溯、确定性代价过高→随机化。实际问题常混合多种范式。
87
-
88
- ### 第四步:分析复杂度 / Analyze Complexity
89
- 时间 O(f(n))、空间 O(g(n)),区分最坏与平均。识别基本操作计数、求解递推(主定理)、关注输入分布对平均复杂度的影响;除 O(上界)外关注 Ω(下界)与 Θ(精确界)。复杂度分析是设计中的持续评估,非事后验证。实际意义:n=10^6 时 O(n)≈10^6 步(秒级),O(n²)≈10^12 步(不可行),O(2^n) 远超宇宙年龄。
90
-
91
- ### 第五步:证明正确性 / Prove Correctness
92
- 使用循环不变量、结构归纳、终止证明、前置/后置条件。未经证明的算法是猜测。循环不变量:初始化(循环前成立)、维护(每次迭代保持)、终止(不变量加终止条件给后置条件);结构归纳:假设子调用正确证当前调用;终止:构造递减度量证其严格递减;Hoare 逻辑:{P} S {Q}。
93
-
94
- ### 第六步:检查可行性 / Check Tractability
95
- 问题属 P?NP-hard?不可判定?P → 追求最优精确算法;NP-hard → 近似/启发式,明确误差界限或概率保证;不可判定 → 寻找可判定的受限版本。常见 NP-hard:TSP、图着色、子集和、SAT;常见不可判定:停机问题、希尔伯特第十问题。
96
-
97
- ### 第七步:优化与改进 / Optimize and Improve
98
- 减少常数因子、利用数据结构、并行化,基于瓶颈分析而非盲目调参。优化层次:(1) 算法级——换更优范式(O(n²)→O(n log n) 收益最大);(2) 数据结构级——换更优存储/查询;(3) 实现级——缓存、并行、SIMD、算子融合;(4) 问题级——换表述使更易求解(可能质的飞跃)。优先级:算法级 > 数据结构级 > 实现级,问题级可能跃迁。每次优化后重新验证正确性。
99
-
100
- ## 常见错误 / Common Errors
101
-
102
- | 错误 / Error | 批评 / Critique | 正确做法 / Correct Approach |
103
- |---|---|---|
104
- | 假设指数算法可接受 | NP-hard 对大 n 需启发式而非精确;2^50 步即使每步 1ns 需 35 年 | 对大 n 用近似/启发式,明确误差界限 |
105
- | 未证明终止性 | 无限循环是真实风险,挂起远比慢结果危险 | 用递减度量证终止,构造良序集上递减函数 |
106
- | 混淆最坏与平均情况 | 快排最坏 O(n²) 但平均 O(n log n),最坏可能在实中出现 | 明确分析场景,注明假设 |
107
- | 混淆存在性与可构造性 | 解可能存在但不可计算;存在性≠可构造性 | 区分存在性证明与算法构造 |
108
- | 低估常数因子 | 巨大常数的 O(n log n) 可能比小常数 O(n²) 慢 | 实测比较,关注常数与缓存效应 |
109
- | 忽略空间复杂度 | 时间高效的算法可能爆内存;DFS 需 O(n) 但 BFS 需 O(2^n) | 同时分析时间与空间 |
110
- | 过早优化 | 未证正确就优化,方向可能全错 | 先证正确→析复杂度→再优化 |
111
- | 忽视输入分布 | 平均复杂度依赖分布假设,随机输入≠实际输入 | 标明分布假设,分析实际场景 |
112
- | 串行/不可融合算法上 GPU | 分支不可预测、依赖链串行、反复读写显存——"美但不可算" | 改造为并行/可融合/亚二次,过 GPU 八维门 |
113
-
114
- ## 操作规程 / Operating Procedure
115
-
116
- 当本 skill 被触发时,输出必须包含:
117
-
118
- 1. **输入规格**:`[输入]: [描述]` — 例如:`[输入]: 无序整数数组 A[1..n],n∈[1,10^6]`
119
- 2. **输出规格**:`[输出]: [描述]` — 例如:`[输出]: A 的升序排列`
120
- 3. **算法范式**:`[范式]: [分治/动规/贪心/回溯/随机化] 因为 [理由]`
121
- 4. **复杂度**:`[时间]: O([f(n)]) [空间]: O([g(n)]) [场景]: [最坏/平均]`
122
- 5. **正确性**:`[循环不变量/归纳策略]: [内容] ✅ 已证 / ❌ 未证`
123
- 6. **可行性**:`[类别]: [P/NP-hard/不可判定] [应对]: [精确/近似/启发式/重新表述]`
124
- 7. **改进建议**:`[优化方向]: [具体建议]`
125
- 8. **[GPU 可行性]**(若用于算法/算子设计)— 复杂度阶/并行度/访存/融合评估,标注友好/可改造/反模式 + 改造建议
126
-
127
- **输出不得只给分析而无结论。**
128
-
129
- ## 与其他 skill 的关系 / Relations to Other Skills
130
-
131
- - **优化思想**:梯度下降、分支定界等优化算法是算法思想的实例——优化关注最优值,算法关注达到最优值的步骤与代价。
132
- - **变换思想**:FFT 是算法思想应用于变换的典范——O(n²)→O(n log n);变换把问题映到易解空间,算法在变换空间高效求解。
133
- - **逻辑演绎**:正确性证明使用演绎推理(循环不变量、归纳)——算法正确性证明本质是一串演绎步骤。
134
- - **归纳与类比**:分治用结构类比——子问题与原问题同构——正是归纳思想的算法化。
135
- - **离散/组合思想**:算法处理离散对象,组合计数支撑复杂度分析——组合爆炸是算法思维要克服的核心障碍。
136
- - **现代数学激活**:`../../references/books/matrix-analysis.md`(GEMM/低秩分解降阶)、`../../references/books/optimization-ml.md`(一阶/二阶法 GPU 可行性)、`../../references/books/abstract-algebra.md`(半环/有限域上的并行算法)。