【算法笔记】混合整数规划(MIP, mixed integer programming)
标签: #数学优化 #线性规划 #高等难度 #组合优化 #决策优化 #核心思想: 在满足线性约束条件下,优化包含连续变量和整数变量的线性目标函数,解决复杂的组合优化问题。 #算法原理:MIP是线性规划(LP)的扩展,其中部分变量被限制为整数值。通过分支定界法、割平面法等方法,系统地在可行解空间中搜索最优解,结合线性松弛和整数约束处理来找到满足所有约束的最佳整数解。 #复杂度分析 时间复杂度: NP难问题,最坏情况下指数级复杂度 空间复杂度: O(2ⁿ) 在最坏情况下,其中n为整数变量个数 #代码实现: 123456789101112131415161718192021222324252627282930313233343536#include <iostream>#include <vector>#include <ilcplex/ilocplex.h>ILOSTLBEGINvoid solveMIP() { IloEnv env; try { IloModel model(env); ...
【算法笔记】广度优先搜索算法(BFS, breadth-first search)
标签: #图算法 #搜索算法 #中等难度 #路径查找 #连通性分析 #核心思想: 从起始节点开始,逐层向外扩展探索所有可达节点,确保先访问距离起点更近的节点。 #算法原理:BFS通过队列实现层次遍历,首先将起始节点入队并标记已访问,然后不断从队列中取出节点,访问其所有未访问的相邻节点并入队,重复此过程直到队列为空。 #复杂度分析 时间复杂度: O(V + E),其中V为顶点数,E为边数 空间复杂度: O(V),最坏情况下需要存储所有节点 #代码实现: 1234567891011121314151617181920212223242526272829#include <queue>#include <vector>#include <unordered_set>using namespace std;void BFS(int startNode, vector<vector<int>>& graph) { int n = graph.size(); vector<bool> v...
Claude Code 学习笔记
Claude Code 是人工智能助手Claude具备的代码理解、生成和优化能力的统称,它基于大型语言模型训练而成,能够处理多种编程语言(如Python、C++、Java等)的编程任务。具体而言,Claude Code能够分析用户需求并生成相应的代码片段,调试和解释现有代码的逻辑错误,优化算法实现以提高性能,在不同编程语言之间进行转换,以及生成技术文档和测试用例。它深度理解编程范式、数据结构和算法,并能结合具体应用场景(如网络优化、数学建模、系统设计等)提供专业级编码解决方案。Claude Code的特点在于能够上下文关联地理解复杂需求,提供符合工程最佳实践的代码,同时给出清晰的技术解释,相当于一个具备全栈开发能力的AI编程助手。 一、常用指令行 /init - 初始化阅读工程,输出到md文件 两次按shift+tab 进入plan mode(做计划) think hard/ harder/ ultrathink -代表思考力度(越右消耗token越多) creat a task to xxxx - 创建todo list,分步骤执行操作 add a task to xxx - ...
Markdown 学习笔记
Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。因简洁、高效、易读、易写,Markdown被大量使用,如Github、Wikipedia、简书**等。 标题语法(#)要创建标题,请在单词或短语前面添加井号 (#) 。# 的数量代表了标题的级别。 不同的 Markdown 应用程序处理 # 和标题之间的空格方式并不一致。为了兼容考虑,请用一个空格在 # 和标题之间进行分隔。 段落语法不要用空格(spaces)或制表符( tabs)缩进段落。 换行语法(<br>)在一行的末尾添加两个或多个空格,然后按回车键,即可创建一个换行(<br>)。 几乎每个 Markdown 应用程序都支持两个或多个空格进行换行,称为 结尾空格(trailing whitespace) 的方式,但这是有争议的,因为很难在编辑器中直接看到空格,并且很多人在每个句子后面都会有意或无意地添加两个空格。由于这个原因,你可能要使用除结尾空格以外的其...






