人工智能之搜索算法

article/2025/10/24 5:00:41

通过搜索来解决问题

文章目录

  • 通过搜索来解决问题
    • 1. 什么是算法?
    • 2. 什么是搜索?
    • 3. 搜索算法
      • 3.1 如何做路径规划?
      • 3.2 搜索过程
      • 3.3 通用搜索算法
      • 3.4 盲目的搜索算法
        • 3.4.1 深度优先遍历(Deep First Search)
        • 3.4.2 广度优先遍历(BFS)
        • 3.4.3 Dijkstra 算法
      • 3.5 启发式搜索算法(有信息的图搜索算法)
        • 3.5.1 贪婪最佳优先搜索算法(Greedy Best-First Search)
        • 3.5.2 基于BFS的A*寻路算法
    • 声明
    • 参考文献

狄更斯的《双城记》中第一句话是: 这是最好的时代,也是最坏的时代。

在这里插入图片描述

这本首次出版于1859年的书距离我们已经150多年了。如果狄更斯来到今天,我们可以坚定地告诉他:“这是最好的时代,也是最坏的时代。”

因为我们正在从信息时代跨入智能时代。曾经,我们要学习如何操作机器,掌握机器的语言,向机器靠拢。而今天,机器在向人类靠拢,试图理解人类、用我们的语言与我们对话。这就是“智能时代”,这个时代的基础是数据和算法。

我们还没有经历过机器在智能上全面超越人类的时代,我们需要在这样的环境中学会生存。这将是一个让我们振奋的时代,也是一个给我们带来空前挑战的时代。

这两年,出尽风头的人工智能是阿尔法狗。阿尔法狗(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序,由谷歌(Google)旗下DeepMind公司戴密斯·哈萨比斯领衔的团队开发。具体到下棋的策略,阿尔法狗里面有两个关键的技术:

第一个是把棋盘上当前的状态变成一个获胜概率的数学模型,这个模型的关键是靠大数据训练(学习)出来的。

第二个是启发式搜索算法——蒙特卡洛树搜索算法(Monte Carlo Tree Search),这个算法能将搜索的空间限制在非常有限的范围内,保证计算机能够快速找到好的下法。

由此可见,下围棋这个看似智能型的问题,从本质上讲,是一个大数据和算法的问题。

数据和算法是驱动智能时代的两架马车。“大数据”这个时髦的词听得我们耳朵都要长茧了。今天我们不说数据,来谈谈算法,并重点引入上文提到的搜索算法及其应用。

1. 什么是算法?

在很多人眼里,很多人认为算法是这样的:

在这里插入图片描述

或者是这样的:

在这里插入图片描述

恭喜你,你的感觉是对的😹😂

但是你想过没有,最开始的它其实是这样的,又萌又直接:<{=....(嘎嘎~)

在这里插入图片描述

这个图诠释了纳兰性德的词:“人生若只如初见”,再回首:“哇的一声哭出来~ ”

谁si谁知道~,憋着"你行你上"内心,可能是这样的:

在这里插入图片描述

这说明什么的呢?我们还是得从基础入手,而不是一步跳到算法的深海中去,不信来看看😂

按照老传统,我们对算法给出一个定义,算法在百度百科中的定义如下:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

一个算法应该具有以下五个重要的特征:
有穷性:(Finiteness)算法的有穷性是指算法必须能在执行有限个步骤之后终止;
确切性:(Definiteness)算法的每一步骤必须有确切的定义;
输入项:(Input)一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
输出项:(Output)一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
可行性:(Effectiveness)算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

是不是看着很迷糊?是的,定义总是那么晦涩难懂,先不用管它。简单一句话总结:算法就是解决问题的过程。

这个听起来高大上的词,实际上在我们生活中随处可见,每一天我们都会用到各种算法,只是你不知道而已。

比如菜谱就是一个算法。它就是一个饭菜制作的流程,解决我们如何做饭的问题。

按照算法的定义,菜谱具有算法的五个特征。

举个栗子:

菜谱:拍黄瓜
1、黄瓜洗干净。
2、放在案板上,用刀拍开,切小块。
3、蒜切末,花生用刀碾碎。
4、


http://chatgpt.dhexx.cn/article/UVxMHUB6.shtml

相关文章

人工智能:搜索策略

一、无信息的搜索策略 1.宽度优先搜索 2.一致代价搜索 当每一步的行动代价都相等时宽度优先搜索是最优的,因为它总是先扩展深度最浅的未扩展结点。 一致代价搜索( uniform-cost search)扩展的是路径消耗(gn)最小的结点n。这可以通过将边缘结点集组织成按g值排序的队列来实现…

人工智能中的搜索

最近在mooc学习人工智能&#xff1a;模型于算法&#xff0c;下面记录课上的例子和学到的东西。 首先&#xff0c;人工智能搜索是从海量的信息源中通过约束条件和额外信息运用算法找到问题所对应的答案。 正所谓&#xff0c;你见&#xff0c;或者不见我&#xff0c;我就在那里不…

人工智能——搜索技术

转载&#xff1a;https://blog.csdn.net/Sun7_She/article/details/40344329 AI-3的80~84不懂 A*算法不懂 引言&#xff1a; 什么是搜索&#xff1a; 根据问题的实际情况不断寻找可利用的知识&#xff0c;构造出一条代价较少的推理路线&#xff0c;使问题得到圆满的解决的过程称…

新一代智能搜索引擎,让搜索一击即中

什么是搜索&#xff1f; 搜索引擎的英文为search engine。 搜索引擎是一个对互联网信息资源进行搜索整理和分类&#xff0c;并储存在专属网络数据库中供用户查询的系统&#xff0c;包括信息搜集、信息分类、用户查询三部分。 从使用者的角度看&#xff0c;搜索引擎提供一个包含…

浅谈人工智能搜索技术论文

摘要&#xff1a;本文简单阐述了人工智能中的智能搜索技术的概念以及启发式搜索算法&#xff0c;介绍了几种启发式搜索函数的选择及其研究中遇到的难题&#xff0c;并从中求解来探讨解决问题的思路。 关键词&#xff1a;智能搜索&#xff1b;状态空间&#xff1b;与/或树&…

Python搭建代理IP池(三)- 检测 IP

在获取 IP 时&#xff0c;已经成功将各个网站的代理 IP 获取下来了&#xff0c;然后就需要一个检测模块来对所有的代理进行一轮轮的检测&#xff0c;检测可用就设置为满分&#xff0c;不可用分数就减 1&#xff0c;这样就可以实时改变每个代理的可用情况&#xff0c;在获取有效…

ProxyPool 爬虫代理IP池(分享)

GitHub - jhao104/proxy_pool: Python爬虫代理IP池(proxy pool)https://github.com/jhao104/proxy_pool/ProxyPool 爬虫代理IP池项目,主要功能为定时采集网上发布的免费代理验证入库&#xff0c;定时验证入库的代理保证代理的可用性&#xff0c;提供API和CLI两种使用方式。同时…

python爬虫设置代理ip池【源代码】(存入数据库)

python爬虫设置代理ip池【源代码】 在爬取各大网站时&#xff0c;经常遇到一些由于访问次数过多或者访问频率过高&#xff0c;而导致你的ip被“封”。所以我们运用 代理ip池 来解决这个由于访问频率过高而终止爬取进行。 下面介绍一下免费获取代理ip池的方法&#xff1a; 一…

python3之爬虫代理IP的使用+建立代理IP池

爬虫代理IP的使用建立代理IP池 代理IP的使用建立代理IP池完整代码 代理IP的使用 先了解一下百度百科定义的IP 为什么要使用代理IP? 反爬(反网络爬虫) 示例: 测试网址 http://httpbin.org/get 用浏览器先访问测试网址下看看 再用我们写的代码简单请求一下网页看看 impo…

教你创建一个免费的代理IP池(txt存储版本)

教你创建一个免费的代理IP池&#xff08;txt存储版本&#xff09; 很多人可能会为爬虫被ban&#xff0c;IP被封等反爬机制苦恼&#xff0c;接下来我就教给大家如何白嫖做一个代理IP池。 准备工作 首先是准备工作&#xff0c;因为是第一个版本&#xff0c;因此我打算先用txt存…

什么是代理IP池,如何构建?

什么是代理ip池&#xff1f; 通俗地比喻一下&#xff0c;它就是一个池子&#xff0c;里面装了很多代理ip。它有如下的行为特征&#xff1a; 1.池子里的ip是有生命周期的&#xff0c;它们将被定期验证&#xff0c;其中失效的将被从池子里面剔除。 2.池子里的ip是有补充渠道的&…

Python爬虫——怎么搭建和维护一个本地IP池

目录 背景 一、什么是本地代理IP池 二、代理IP池功能架构图 三、各个组件功能说明及示例代码 1. IP池管理器 2. 代理IP获取器 3. IP质量检测器 4、数据存储器 5、API接口层 6、应用程序 总结 背景 在我们进行爬虫工作时&#xff0c;经常需要使用代理IP。大多数代理…

搭建代理IP池的方法

突破次数的限制就可以使爬虫更高效的工作,代理IP是突破次数限制,提高爬虫高效工作的最好的工具。所以,很多人都想通过建立IP池的方法,实现换IP突破限制,那么这IP池如何进行搭建呢? 一,免费搭建代理IP池的方法 1.主要用途 当进行数据爬取的时候,有一部分网站是设置了一些…

scrapy中添加ip池的方法

scrapy中添加ip池的方法 我使用的是scrapy2.2 setting 中写下ip池 IPPOOL [{ipaddr:221.230.72.165:80}, {ipaddr:175.154.50.162:8118}, {ipaddr:111.155.116.212:8123},]在在中间件midllewares添加代码 from mypython.settings import IPPOOLfrom scrapy import signals …

Python爬虫 教程:IP池的使用

一、简介 爬虫中为什么需要使用代理 一些网站会有相应的反爬虫措施&#xff0c;例如很多网站会检测某一段时间某个IP的访问次数&#xff0c;如果访问频率太快以至于看起来不像正常访客&#xff0c;它可能就会禁止这个IP的访问。所以我们需要设置一些代理IP&#xff0c;每隔一…

如何建立爬虫代理ip池

目录 一、为什么需要建立爬虫代理ip池 二、如何建立一个爬虫代理ip池 原文地址&#xff1a;https://www.cnblogs.com/TurboWay/p/8172246.html 一、为什么需要建立爬虫代理ip池 在众多的网站防爬措施中&#xff0c;有一种是根据ip的访问频率进行限制的&#xff0c;在…

requests模块代理IP池搭建视频爬取

requests模块&代理IP池搭建 一 requests模块使用1.1 get请求1.2 url编码和解码1.3 携带请求头1.4 携带cookie1.5 发送post请求1.6 requests.session1.7 Response1.8 获取二进制数据1.9 解析json 二 使用代理三 django后端获取客户端ip地址四 爬取视频网站五 爬取新闻六 Bau…

Python之爬虫 搭建代理ip池

文章目录 前言一、User-Agent二、发送请求三、解析数据四、构建ip代理池&#xff0c;检测ip是否可用五、完整代码总结 前言 在使用爬虫的时候&#xff0c;很多网站都有一定的反爬措施&#xff0c;甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁&#xff0c;…

如何构建一个自己的代理ip池

一、默认自动切换IP 登录线程IP池客户端时&#xff0c;默认情况下会自动切换IP。 如果不想自动切换IP&#xff0c;或者还没有准备开始使用&#xff0c;请在客户端右侧将“在IP过期前几秒自动申请切换”设置为“0”。 0无效。 二.默认情况下不需要授权 默认情况下&#xff0c…

搭建代理IP池

目录 爬取前的准备 爬取有IP内容 检查IP的可用性 上一期讲到在爬取豆瓣电影Top250时&#xff0c;出现ip被封的情况&#xff0c;解决方案给出了两种&#xff1a; 1. 换个WiFi或者热点&#xff1b; 2. 搭建代理IP池。 那么这期就来搭建代理IP池。通常来说&#xff0c;搭建代理…