数学建模--禁忌搜索
目录
算法基本原理
关键要素
应用实例
实现细节
python代码示例
总结
禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效?
禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究?
如何动态更新禁忌表以提高禁忌搜索算法的效率和性能?
禁忌搜索算法与其他元启发式优化算法(如遗传算法、粒子群优化)相比,有哪些优势和劣势?
优势:
劣势:
在实际应用中,禁忌搜索算法处理大规模问题的性能表现如何?
禁忌搜索(Tabu Search,TS)是一种元启发式优化算法,最早由美国工程院院士Fred Glover提出。它通过模拟人类智能的记忆机制来避免迂回搜索,并在局部搜索的基础上引入记忆机制以实现全局优化。
算法基本原理
禁忌搜索算法的基本流程如下:
- 初始化:从搜索空间中随机生成一个初始解 x0x0,并初始化禁忌表 H=∅H=∅。
- 邻域搜索:在当前解 xixi 的邻域内进行搜索,构造出候选集 CN(xi,s)CN(xi,s),其中 ss 是当前的禁忌表。
- 选择和更新:在候选集中选择评价值最佳的解 xnextxnext,并更新禁忌表 HH。
- 终止条件:如果满足终止条件(如达到最大迭代次数或解的质量不再提升),则停止计算;否则,进入下一次迭代。
关键要素
- 禁忌表(Tabu List) :用于记录已经访问过的解,防止算法陷入循环。禁忌表长度有限,称为Tabu-Size,可以是固定的常数或动态变化的。
- 邻域结构:定义了当前解的邻域范围,通常通过某种方式对当前解进行小幅度修改得到新的解。
- 评价函数:用于评估候选解的好坏,目标是找到最优解。
- 藐视准则(Perturbation Rule) :在某些情况下允许违反禁忌规则,以避免陷入局部最优解。
应用实例
禁忌搜索算法广泛应用于组合优化问题,如旅行商问题(TSP)、车辆路径问题(VRP)等。例如,在求解TSP问题时,可以通过构建一个包含城市间距离的图,并利用禁忌搜索算法找到最短的环路。在VRP问题中,该算法可以有效处理带有时间窗和多配送人员的复杂情况。
实现细节
- 初始解的获取:通常采用随机生成的方式,或者使用其他启发式方法如贪婪算法生成初始解。
- 禁忌表的管理:禁忌表需要动态更新,每次迭代后将新的禁忌对象加入表中,并移除最旧的对象以保持表的长度固定。
- 邻域搜索策略:根据具体问题的特点设计邻域结构,确保能够覆盖足够的搜索空间。
- 终止条件的设计:设定合理的最大迭代次数或其他终止条件,以保证算法在合理的时间内完成求解。
python代码示例
import random# 定义距离矩阵
distance_matrix = [[0, 2, 9, 10],[1, 0, 6, 4],[15, 7, 0, 8],[6, 3, 12, 0]
]# 计算路径总距离
def calculate_distance(path, distance_matrix):distance = 0for i in range(len(path) - 1):distance += distance_matrix[path[i]][path[i + 1]]distance += distance_matrix[path[-1]][path[0]] # 回到起点return distance# 生成初始解
def generate_initial_solution(num_cities):solution = list(range(num_cities))random.shuffle(solution)return solution# 生成邻域解
def generate_neighbors(solution):neighbors = []for i in range(len(solution)):for j in range(i + 1, len(solution)):neighbor = solution[:]neighbor[i], neighbor[j] = neighbor[j], neighbor[i]neighbors.append(neighbor)return neighbors# 禁忌搜索算法
def tabu_search(distance_matrix, num_iterations, tabu_list_size):num_cities = len(distance_matrix)best_solution = generate_initial_solution(num_cities)best_distance = calculate_distance(best_solution, distance_matrix)current_solution = best_solution[:]tabu_list = []for _ in range(num_iterations):neighbors = generate_neighbors(current_solution)neighbors = [n for n in neighbors if n not in tabu_list]if not neighbors:breakcurrent_solution = min(neighbors, key=lambda s: calculate_distance(s, distance_matrix))current_distance = calculate_distance(current_solution, distance_matrix)if current_distance < best_distance:best_solution = current_solution[:]best_distance = current_distancetabu_list.append(current_solution[:])if len(tabu_list) > tabu_list_size:tabu_list.pop(0)return best_solution, best_distance# 参数设置
num_iterations = 100
tabu_list_size = 10# 执行禁忌搜索
best_solution, best_distance = tabu_search(distance_matrix, num_iterations, tabu_list_size)print(f"最佳路径: {best_solution}")
print(f"最短距离: {best_distance}")
总结
禁忌搜索算法通过引入记忆机制和禁忌表来避免重复搜索,从而提高全局搜索能力。它在组合优化问题中的成功应用展示了其强大的求解能力和灵活性。通过不断改进禁忌表管理和邻域搜索策略,禁忌搜索算法在解决实际问题中表现出色。
禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效?
禁忌搜索算法(Tabu Search, TS)是一种非常有效的启发式全局优化方法,广泛应用于各种组合优化问题中。以下是一些具体类型的组合优化问题,禁忌搜索算法在其中表现尤为突出:
旅行商问题(Vehicle Routing Problem, VRP) :
VRP 是一个经典的组合优化问题,旨在找到一组最优的路径,使得一组车辆能够在满足一定约束条件的情况下,访问一系列客户点并返回起始点。禁忌搜索算法通过引入禁忌表和禁忌策略,避免陷入局部最优解,从而寻找更好的解决方案。多维背包问题(Multi-Dimensional Knapsack Problem, MDCVRP) :
多维背包问题也是组合优化中的一个重要问题,禁忌搜索算法在解决该问题时也取得了显著效果。
生产调度问题涉及如何安排生产任务以最大化效率或最小化成本。禁忌搜索算法在此类问题中同样表现出色,能够有效地处理复杂的约束条件。
装箱问题通常指的是如何将物品放入最小数量的箱子中,以达到某种最优目标(如最小化总重量或体积)。禁忌搜索算法在解决这类问题时也展示了其强大的能力。
在通信领域,多用户检测是一个关键的组合优化问题,禁忌搜索算法在此类应用中也表现良好。
神经网络的训练过程是一个典型的组合优化问题,禁忌搜索算法在此类问题中也有应用。
模糊神经网络的设计同样需要解决复杂的组合优化问题,禁忌搜索算法在此类应用中也取得了成功。
生理信号的情感识别也是一个复杂的组合优化问题,禁忌搜索算法在此类应用中也展示了其有效性。
基站选址是通信网络规划中的一个重要环节,禁忌搜索算法在此类问题中能够提供有效的解决方案。
这种问题涉及到多工厂、多产品、多客户供应网络的优化策略,禁忌搜索算法在此类复杂供应链模型中表现出了优越的鲁棒性和解的质量。
总结来说,禁忌搜索算法在旅行商问题、多维背包问题、生产调度、装箱问题、通信中的多用户检测、前向神经网络训练、模糊神经网络设计、生理信号情感识别以及基站选址优化等多个具体的组合优化问题中都表现出了极高的有效性和优越性。
禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究?
禁忌搜索算法(Tabu Search, TS)是一种高效的全局优化算法,其性能在很大程度上依赖于邻域结构的设计。以下是一些最佳实践和案例研究:
-
多邻域结构设计:
- 在交通网络旅行商路径优化中,通过使用交换、简单逆序、插入和移位变异算子来构建初始回路的邻域,可以显著增加解空间的多样性。
- 自适应禁忌搜索算法(Adaptive Tabu Search, ATS)采用多邻域随机变换策略,每次随机选择一种邻域对当前解进行变换,以获取候选解。这种多邻域结构有助于增强邻域解的丰富性,避免算法过早收敛,并且通过随机挑选邻域策略快速访问多个邻域。
-
特定类型的邻域结构:
- 2-opt和2-interchange交换邻域被广泛用于生产—库存—配送协同计划问题中,因为它们能够有效地拓展解空间并保证候选解的可行性。
- 在基于最小负荷初始化的改进遗传算法求解柔性作业车间调度问题的研究中,介绍了OS邻域结构和MS邻域结构,这些结构通过生成邻域解并评估选择最佳邻域解作为当前解,不断迭代直至达到最大迭代次数或禁忌步长达到指定长度。
-
结合其他优化技术:
- 结合快速邻域切换和建立禁忌表的方法,可以增强局部寻优能力并减少重复计算时间。例如,在探针部署算法中,通过结合禁忌搜索构建禁忌表对重复的邻域动作进行限制,从而避免陷入循环搜索。
- 混合禁忌搜索算法将最近邻算法和禁忌搜索算法相结合,用于优化配送车辆行驶路径,以降低配送成本和时间惩罚成本。
-
理论与实际应用结合:
文献指出,选择合适的搜索空间和邻域结构是设计禁忌搜索启发式算法的关键步骤,需要充分利用对问题的理解和知识。此外,禁忌表的概念用于防止搜索陷入局部最优解之外的非改善移动,从而避免回溯到之前的步骤。
通过以上方法和案例研究,可以看出禁忌搜索算法在不同领域中的应用非常广泛且有效。
如何动态更新禁忌表以提高禁忌搜索算法的效率和性能?
为了提高禁忌搜索算法的效率和性能,动态更新禁忌表是一个关键策略。以下是几种有效的方法:
随着搜索的进行,一些先前标记为禁忌的解可能因为禁忌期限的到达而被移除禁忌表,这时新的解就可以被添加进禁忌表中以保持表的动态更新。这种方法可以避免禁忌表过载,并确保算法在不同阶段能够灵活地选择新的候选解。
禁忌表可以通过循环队列实现,这样可以保证每个被禁忌的对象都有一个固定的周期。队列长度与任务中的节点相关,通常将队列长度设置为√n,其中n表示任务图的节点数量。由于队列的先进先出特性,被禁忌对象的禁忌周期即为队列的长度。
为了避免反复遍历禁忌表,可以使用禁忌状态数组来标示所有候选邻域的禁忌状态。如果该候选解为禁忌的,则标示为1;否则为0。这样可以在每次对禁忌表进行更新时同时更新缓存数组,从而提高查询效率。
可以采用随机动态禁忌期限或系统性动态禁忌期限两种方式来确定禁忌期限。随机动态禁忌期限通常由一个定义了tmin和tmax参数的期限范围决定,其值在给定范围内随机选择,并遵循均匀分布。系统性动态禁忌期限则是在每个属性成为禁忌时为每个属性选择一个新的禁忌期限。
在某些应用中,如图像匹配问题,可以构造两种禁忌表:永久禁忌表和暂时禁忌表。永久禁忌表中的点在接下来的迭代过程中不再作为初始值,而暂时禁忌表中的点只在一定迭代次数之内禁忌被作为初始值,过了一定迭代次数后,这些点就可以成为迭代初始值,用来构建候选解邻域。
禁忌搜索算法与其他元启发式优化算法(如遗传算法、粒子群优化)相比,有哪些优势和劣势?
禁忌搜索算法(Tabu Search, TS)与其他元启发式优化算法如遗传算法(Genetic Algorithm, GA)和粒子群优化(Particle Swarm Optimization, PSO)相比,具有以下优势和劣势:
优势:
- 快速收敛:禁忌搜索算法在求解过程中具有较快的收敛速度。这是因为该算法通过记忆机制避免了重复探索已访问过的解空间,从而加快了全局搜索的速度。
- 强大的局部搜索能力:禁忌搜索算法特别擅长于从一个较好的初始结构开始,迅速找到并优化该结构,这使得它在某些问题上能够更快地达到全局最优解。
- 鲁棒性:在处理复杂的优化问题时,禁忌搜索算法表现出较强的鲁棒性。例如,在多工厂、多产品、多客户供应网络的优化策略中,禁忌搜索算法比混合遗传算法更有效。
- 解的质量:在特定问题如软硬件划分问题中,禁忌搜索算法能够提供比其他启发式算法更好的解质量。
劣势:
- 搜索空间限制:禁忌搜索算法的搜索空间是有限的,因为其依赖于记忆机制来避免重复探索。这意味着在某些情况下,它可能无法覆盖整个解空间,从而影响最终解的质量。
- 参数设置复杂:禁忌搜索算法需要合理设置多个参数,如邻域结构、禁忌列表长度等,这些参数的选择对算法性能有显著影响。不当的参数设置可能导致算法效率低下或效果不佳。
- 计算资源消耗:尽管禁忌搜索算法在某些情况下表现优异,但其计算资源消耗通常较大,特别是在大规模问题中,这可能限制其应用范围。
总结来说,禁忌搜索算法在快速收敛和局部搜索能力方面具有明显优势,尤其适用于那些需要快速找到高质量解的问题。
在实际应用中,禁忌搜索算法处理大规模问题的性能表现如何?
在实际应用中,禁忌搜索算法处理大规模问题的性能表现总体上是积极的。根据多项研究和实验结果,禁忌搜索算法在解决大规模优化问题时具有显著的优势。
禁忌搜索算法被认为比较适合解决大规模问题。其基本思想是在极值附近设置禁忌标识,以避免陷入局部最优解,并通过多样的遍历策略保证种群多样性,从而提高全局搜索能力。这种全局邻域搜索方法使得禁忌搜索能够有效地探索解空间,找到较好的近似解。
具体来说,在一些实际应用中,禁忌搜索算法的表现尤为突出。例如,在多选择软硬件划分问题的研究中,禁忌搜索算法求得的近似解比模拟退火算法更接近精确解,且在大规模问题上的表现优于其他启发式算法。此外,针对带时间窗车辆路径问题的研究也表明,禁忌搜索算法能够在较大规模的问题上找到可行解,而其他方法如CPLEX可能无法求解成功。
然而,尽管禁忌搜索算法在处理大规模问题时表现出色,但其性能还受到多种因素的影响。例如,领域结构和操作方式对算法的优化时间性能有重要影响。若领域结构决定了大量的领域解(尤其对大规模问题),则可以仅尝试部分互换的结果,以改善算法效率。另外,禁忌列表长度、邻域构造算子的选择以及随机搜索策略等参数设置也会直接影响算法的运行时间和最终解的质量。
总结而言,禁忌搜索算法在处理大规模问题时表现良好,特别是在需要全局搜索和多样化解空间的情况下。
相关文章:
数学建模--禁忌搜索
目录 算法基本原理 关键要素 应用实例 实现细节 python代码示例 总结 禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效? 禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究? 如何动态更新禁忌表以提高禁忌搜索算法的效率和性能&#…...
LeetCode 第136场双周赛个人题解
Q1. 求出胜利玩家的数目 原题链接 Q1. 求出胜利玩家的数目 思路分析 直接模拟 时间复杂度:O(N) AC代码 class Solution { public:int winningPlayerCount(int n, vector<vector<int>>& pick) {unordered_map<int, unordered_map<int, …...
The operation was rejected by your operating system. code CERT_HAS_EXPIRED报错解决
各种报错,试了清缓存,使用管理员权限打开命令行工具,更新npm,都不好使 最终解决:删除 c:/user/admin/ .npmrc...
[Git][基本操作]详细讲解
目录 1.创建本地仓库2.配置 Git3.添加文件1.添加文件2.提交文件3.其他 && 说明 4.删除文件5.跟踪修改文件6.版本回退7.撤销修改0.前言1.未add2.已add,未commit3.已add,已commit 1.创建本地仓库 创建⼀个Git本地仓库:git init运行该命…...
springMVC中从Excel文件中导入导出数据
目录 1. 数据库展示2. 导入依赖3. 写方法3.1 导入数据3.2 导出数据 4. 效果5. 不足6. 参考链接 1. 数据库展示 2. 导入依赖 pom.xml <!--文件上传处理--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId>&…...
C++的STL简介(三)
目录 1.vector的模拟实现 1.1begin() 1.2end() 1.3打印信息 1.4 reserve() 1.5 size() 1.6 capacity() 1.7 push_back() 1.8[ ] 1.9 pop_back() 1.10 insert&…...
BERT模型
BERT模型是由谷歌团队于2019年提出的 Encoder-only 的 语言模型,发表于NLP顶会ACL上。原文题目为:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》链接 在前大模型时代,BERT模型可以算是一个参数量比…...
举例说明计算机视觉(CV)技术的优势和挑战
计算机视觉(CV)技术是通过计算机模拟和处理图像与视频数据来模拟人类视觉的能力。它可以带来许多优势,也面临一些挑战。 优势: 自动化:CV技术可以自动处理大量的图像和视频数据,从而提高工作效率和准确性。…...
Animate软件基础:关于补间动画中的图层
Animate 文档中的每一个场景都可以包含任意数量的时间轴图层。使用图层和图层文件夹可组织动画序列的内容和分隔动画对象。在图层和文件夹中组织它们可防止它们在重叠时相互擦除、连接或分段。若要创建一次包含多个元件或文本字段的补间移动的动画,请将每个对象放置…...
mac|安装hashcat(压缩包密码p解)
一、安装Macports(如果有brew就不用这一步) 根据官网文档:The MacPorts Project -- Download & Installation,安装步骤如下 1、下载MacPorts,这里我用的是tar.gz ,可以通过keka(keka安装在…...
【保姆级系列:锐捷模拟器的下载安装使用全套教程】
保姆级系列:锐捷模拟器的下载安装使用全套教程 1.介绍2.下载3.安装4.实践教程5.验证 1.介绍 锐捷目前可以通过EVE-NG来模拟自己家的路由器,交换机,防火墙。实现方式是把自己家的镜像导入到EVE-ng里面来运行。下面主要就是介绍如何下载镜像和…...
virtualbox7安装centos7.9配置静态ip
1.背景 我大概在一年之前安装virtualbox7centos7.9的环境,但看视频说用vagrant启动的窗口可以不用第三方工具(比如xshell、secure等)连接centos7.9,于是尝鲜试了下还可以,导致系统文件格式是vmdk了(网上有vmdk转vdi的方法…...
结构型设计模式:桥接/组合/装饰/外观/享元
结构型设计模式:适配器/代理 (qq.com)...
vLLM初识(一)
vLLM初识(一) 前言 在LLM推理优化——KV Cache篇(百倍提速)中,我们已经介绍了KV Cache技术的原理,从中我们可以知道,KV Cache本质是空间换时间的技术,对于大型模型和长序列…...
【Apache Doris】周FAQ集锦:第 18 期
【Apache Doris】周FAQ集锦:第 18 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户…...
docker部署可执行的jar
1.将项目打包,上传到服务器的指定目录 2.在该目录下创建Dockerfile文件 3.Dockerfile写入如下指令 # 基于哪个镜像 FROM java:8 # 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar ADD springboot-file-0.0.1.jar file.jar RUN bash -c touch /…...
OpenCV||超详细的图像处理模块
一、颜色变换cvtColor dst cv2.cvtColor(src, code[, dstCn[, dst]]) src: 输入图像,即要进行颜色空间转换的原始图像。code: 转换代码,指定要执行的颜色空间转换类型。这是一个必需的参数,决定了源颜色空间到目标颜色空间的转换方式。dst…...
java面向对象期末总结
子类父类方法执行顺序?多态中和子类打印不一样; 子类在实现父类方法的时候没有用super关键字进行调用也会先执行父类的构造方法吗? 是的,当子类实例化时,先执行父类的构造方法,再执行子类的构造方法。即使在…...
文件搜索 36
删除文件 文件搜索 package File;import java.io.File;public class file3 {public static void main(String[] args) {search(new File("D :/"), "qq");}/*** 去目录搜索文件* param dir 目录* param filename 要搜索的文件名称*/public static void sear…...
IO多路转接
文章目录 五种IO模型fcntl多路转接selectpollepollepoll的工作模式 五种IO模型 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式.阻塞IO是最常见的IO模型。非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULD…...
基于深度学习的面部表情分类识别系统
:温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 面部表情识别是计算机视觉领域的一个重要研究方向, 它在人机交互、心理健康评估、安全监控等领域具有广泛的应用。近年来,随着深度学习技术的快速发展…...
日志远程同步实验
目录 一.实验环境 二.实验配置 1.node1发送方配置 (1)node1写udp协议 (2)重启服务并清空日志 2.node2接收方配置 (1)node2打开接受日志的插件,指定插件用的端口 (2ÿ…...
数据结构之《二叉树》(中)
在数据结构之《二叉树》(上)中学习了树的相关概念,还了解的树中的二叉树的顺序结构和链式结构,在本篇中我们将重点学习二叉树中的堆的相关概念与性质,同时试着实现堆中的相关方法,一起加油吧! 1.实现顺序结构二叉树 在…...
php json_encode 参数 JSON_PRETTY_PRINT
https://andi.cn/page/621642.html...
【UE 网络】Gameplay框架在DS架构中的扮演的角色
目录 0 引言1 核心内容1.1 Gameplay各部分创建的流程1.2 Gameplay框架在DS和客户端的存在情况1.3 数据是独立存在于DS和客户端的 2 Gameplay框架各自负责的功能2.1 GameMode2.2 GameState2.3 PlayerController2.4 PlayerState2.5 Pawn2.6 AIController2.7 Actor2.8 HUD2.9 UI &…...
【云原生】StatefulSet控制器详解
StatefulSet 文章目录 StatefulSet一、介绍与特点1.1、介绍1.2、特点1.3、组成部分1.4、为什么需要无头服务1.5、为什么需要volumeClaimTemplate 二、教程2.1、创建StatefulSet2.2、查看部署资源 三、StatefulSet中的Pod3.1、检查Pod的顺序索引3.2、使用稳定的网络身份标识3.3、…...
使用 Python 制作一个属于自己的 AI 搜索引擎
1. 使用到技术 OpenAI KEYSerper KEYBing Search 2. 原理解析 使用Google和Bing的搜搜结果交由OpenAI处理并给出回答。 3. 代码实现 import requests from lxml import etree import os from openai import OpenAI# 从环境变量中加载 API 密钥 os.environ["OPENAI_AP…...
rust读取csv文件,匹配搜索字符
1.代码 use std::fs::File; use std::io::{BufRead, BufReader}; use regex::{Regex};fn main() {let f File::open("F:\\0-X-RUST\\1-systematic\\ch2-fileRead\\data\\test.csv").unwrap();let mut reader BufReader::new(f);let re Regex::new("45asd&qu…...
隐藏采购订单类型
文章目录 1 Introduction2 code 1 Introduction The passage is that how to hiden purchase type . 2 code DATA: ls_shlp_selopt TYPE ddshselopt. IF ( sy-tcode ME21N OR sy-tcode ME22N OR sy-tcode ME23N or sy-tcode ME51N OR sy-tcode ME52N OR sy-tcode ME5…...
ESP32人脸识别开发- 基础介绍(一)
一、ESP32人脸识别的方案介绍 目前ESP32和ESP32S3都是支持的,官方推的开发板有两种,一种 ESP-EYE ,没有LCD 另一种是ESP32S3-EYE,有带LCD屏 二、ESP32人脸识别选用ESP32的优势 ESP32S3带AI 加速功能,在人脸识别的速度是比ESP32快了不少 | S…...
北京有一个公司打电话做网站认证/自己建立网站步骤
用线段树进行区间赋值,最后将每个小segment的颜色求出来,再扫一遍判断连续的段数即可。 1 #include <iostream>2 #include <cstring>3 #include <cstdio>4 using namespace std;5 6 const int N 8001;7 int color[N];8 int ans[N];9 …...
想做个网站/软文什么意思
目录一 版本查询命令1 查看当前使用Linux内核版本2 搜索目前存在的内核版本3 查看Linux系统版本4 glibc版本二 UNIX标准1 ANSI C2、POSIX3 SVID4 XPG5 Glibc三 相关库1 libc2 glibc3 eglibc4 glib5 libc/libstdc四 RFC五 MIME六 Linux启动流程1 BIOS2 第一阶段引导加载程序3 第…...
做网站领券收佣金/保定seo博客
优秀的战士需要出色的剑才能战斗。同样,在现代IT中,每个编码人员都需要最好的Android开发人员工具来提高他们的技能和效率。在Android应用程序开发这个残酷的竞争行业中,只有优秀的开发人员才能生存下去。您需要向客户展示您拥有最佳技术和资…...
无锡高端网站建设/郑州网站推广多少钱
1.SIGGRAPH(ACM SIGGRAPH Annual Conference) 论文提交时间:1月中旬 会议时间:8月初 2.SIGKDD(ACM Knowledge Discovery and Data Mining) 论文提交时间:2月中旬 会议时间:8月中旬 3.ICML(International Co…...
一键安装网站运行环境/谷歌官网网址
通过MediaRecorder录制。然后绑定一个localsocket,可以获取编码后的视频数据传输;代码如下:package com.pei;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import android.app.Activity;import an…...
网站规划/重庆网站优化
需求:后端返回数据流,前端进行下载。 1.定义js文件,包含所有的blobType export const blobType {xls: application/vnd.ms-excel,xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,csv: text/csv,doc: applicatio…...