强化学习实现智能城市规划,清华团队最新成果登Nature子刊

2023-11-17

507c07b83480a8a091a2f29a572bd43b.png

29f1f608e6f8a6538ac2d66953576ca5.jpeg

由于城市地理空间的多样性和巨大的动作空间,给城市布局用地和道路是一件非常复杂而困难的任务,长久以来一直依靠人类规划师的经验和直觉。如今,城市规划领域也有了自己的AlphaGo。

近日,清华大学电子系城市科学与计算研究中心与建筑学院跨学科合作,首次提出了强化学习的城市社区空间规划模型与方法,并实现了人类规划师与人工智能算法协作的城市规划流程,为智能城市的自动化规划提供了全新思路。该成果以“基于深度强化学习的城市社区空间规划方法”(Spatial Planning of Urban Communities via Deep Reinforcement Learning)为题在《自然·计算科学》(Nature Computational Science)上在线发表。该成果展示了人工智能技术在城市规划领域解决复杂规划问题的潜力,所建模型相比已有方法能够提高社区的空间效率50%。使用现有的真实社区作为初始条件时,该模型可以生成社区改造计划,将居民对各种服务的可访问性提高 18.5% 以上。在同期的新闻与观点文章中,MIT 可感知城市实验室(MIT Senseable City Lab)的研究科学家 Paolo Santi 评价道:“该成果解决了城市规划概念和计算上的关键难题,成功展示了人类与AI协作完成空间布局规划任务的可行性,为城市科学提供了丰富的未来研究方向。“

153d796333acae3064c382394865e382.png

论文链接:

https://www.nature.com/articles/s43588-023-00503-5

代码及数据链接:

https://github.com/tsinghua-fib-lab/DRL-urban-planning

城市规划是一门既古老又年轻的学科,从城市诞生时就有了城市规划,而其理论与实践又在不断快速发展和完善。自上个世纪中叶开始,城市科学领域的学者就一直在研究城市规划的自动化问题,通过开发城市计算模型及规划支持工具,努力将城市规划师从繁琐的工作中解放出来。比如美国系统科学家福雷斯特在1970年提出城市动力学模型,英国学者迈克尔·巴蒂在1995年提出规划支持系统。然而,由于数据、算法、算力等方面的限制,当前的规划实践中用地和道路布局仍然主要依靠人类规划师的经验和直觉,自动化程度很低。

随着人工智能技术在近10年的突破性发展,尤其是强化学习算法在巨大解空间中进行多目标优化的强大能力被发掘,很多之前依赖人类直觉的规划类问题(如围棋、芯片设计等)都得到了有效解决,这使得利用人工智能强大的计算能力进行土地利用和道路布局成为可能。开发人工智能支持的城市规划工具能够解放人类规划师的生产力,使人类规划师更加专注于创意性的工作,具有很大的科学与应用价值。

针对城市社区“15分钟生活圈“ 规划,研究团队创新地提出了基于深度强化学习的城市社区空间规划方法。通过在虚拟城市环境中数百万次的规划,提出的人工智能模型能够从海量数据中学习城市规划能力,不断优化空间效率,并最终达到超越人类专家的规划水平。

8c0c8a01cf4212f893affed41dba33e2.jpeg

城市规划序列决策过程

技术要点

由于城市社区形式多样且不规则,无法使用在围棋和芯片设计等具有规则输入的任务中广泛采纳的卷积神经网络。为了克服这一难题,研究团队首次提出从拓扑层面完成城市规划任务。具体而言,研究团队提出了一个城市拓扑图,用于描述城市地理元素的拓扑结构,其中城市地理元素作为节点,包括地块、道路、交叉口等,而空间邻接关系作为边。使用图模型能够为任意形式的城市社区给出统一的表示,将城市规划成功转化为图上马尔科夫决策过程,从而能够发挥深度强化学习算法在巨大解空间中高效搜索的能力,并实现城市社区用地和道路的智能布局。

b08a5298cbbdfc21cc8fb3605678e8ec.jpeg

(a)用地布局的图表示。(b)道路布局的图表示。

空间规划的另一个主要挑战是巨大的动作空间。为了减小动作空间,研究人员构建了一个价值网络预测空间规划的质量,和两个策略网络选择土地和道路的位置。通过从策略网络中采样动作并使用价值网络估计奖励,动作空间得到了大幅缩小。

为了获得城市地理元素的有效表示,研究人员又进一步开发了基于图神经网络(GNN)的状态编码器,GNN 状态编码器在价值网络和策略网络之间共享,它利用城市拓扑图上的消息传递和邻居聚合,捕捉城市地理元素之间的空间关系。通过在巨大的动作空间中进行高效的探索和利用来寻找良好的规划策略,所提模型相比于人类专家能够生成更高效的规划方案。

3602231995fe9b95bda8680aefecf36f.jpeg

提出的强化学习模型(a)图神经网络状态编码器。(b)用地布局策略网络。(c)社区规划价值判断网络。(d)道路布局策略网络。(e)社区规划图上马尔科夫决策过程示意图。

在北京两个社区上的规划模拟实验表明,所提方法得到的社区规划方案能够显著提高“15分钟城市”的各项指标,生成的土地利用改造计划,能够将居民对各种设施的可访问性显著提高 18.5% 以上。

15019170298c1e9e515f8761212c587b.jpeg

所提模型规划方案与已有算法性能对比(a-e)不同算法的规划方案:a 中心化启发式方法,b 去中心化启发式方法,c 遗传算法,d 多层感知机强化学习算法,e 所提方法。(f-g)15分钟城市性能指标对比:f 服务指标,g 生态指标。

同时,研究团队提出了一个 AI 与人类设计师协作的工作流程,其中人类设计师专注于概念原型设计,并利用该模型完成繁重和耗时的规划工作。通过设计人类规划师与人工智能的协作工作流,能够大幅提升人类规划师的工作效率,高效地生成不同风格的社区规划方案。

02f7aa3ead07dc076aa34751c1f6e7a0.jpeg

所提模型规划方案与人类专家性能对比(a-b)北京两社区服务与生态指标对比:a 回龙观社区,b 大红门社区。(c-d)北京两社区主观盲测结果:c 回龙观社区,d 大红门社区。

作者介绍

清华大学电子系城市科学与计算研究中心博士生郑瑜为论文第一作者,李勇副教授为通信作者;清华电子系博士后研究员林雨铭、清华大学建筑学院赵亮副教授、武廷海教授、清华大学电子系金德鹏教授为共同作者。

3a4413c799b9f9e49d078776afb7cda7.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强化学习实现智能城市规划,清华团队最新成果登Nature子刊 的相关文章

  • 6种JavaScript判断数组是否包含某个值的方法

    我们在项目开发过程中 经常会要检查一个数组 无序 是否包含一个特定的值 这是一个在JavaScript中经常用到的并且非常有用的操作 下面给出几种实现方式 方式一 利用循环 这种方式是比较老的实现方案 但不可否认的是在浏览器中效率较高 fu
  • 标识符与关键字,常量和变量

    标识符 标识符是有效字符序列 是一个对象的名字 用于标识用户自己定义大的变量 符号常量 函数名 数组名 类型名等 前面学习大的例子中的整型变量num 浮点型变量fnum 字符变量ch等等 均为用户定义的标识符 命名规则 不能是关键字 只能由
  • 使用HTTPS模式建立高效爬虫IP服务器详细步骤

    嘿 各位爬虫小伙伴们 想要自己建立一个高效的爬虫IP服务器吗 今天我就来分享一个简单而强大的解决方案 使用HTTPS模式建立工具 本文将为你提供详细的操作步骤和代码示例 让你快速上手 轻松建立自己的爬虫IP服务器 1 准备工作 在开始之前
  • 漏洞复现----ThinkCMF框架任意内容包含漏洞分析复现

    0x00 简介 ThinkCMF是一款基于ThinkPHP MySQL开发的中文内容管理框架 ThinkCMF提出灵活的应用机制 框架自身提供基础的管理功能 而开发者可以根据自身的需求以应用的形式进行扩展 每个应用都能独立的完成自己的任务
  • Error - Found cycle in the ListNode

    这是我在刷力扣206题时遇到的问题 报错的原因很简单 在我反转链表的时候 先定义了一个新的头结点first 把原来的头结点head放在了新的链表的第一个 然后以此遍历原有链表 把每个链表加到新链表头结点first的后面 形成了链表的反转 但
  • 迷惑度/困惑度/混乱度(preplexity)

    语言模型构造完成后 如何确定好坏呢 目前主要有两种评价方法 实用方法 通过查看该模型在实际应用 如拼写检查 机器翻译 中的表现来评价 优点是直观 实用 缺点是缺乏针对性 不够客观 理论方法 迷惑度 困惑度 混乱度 preplexity 其基
  • 【VS安装记录】Visual Studio 2022安装教程(超详细)

    大家好 我是雷工 由于更换了电脑 很多软件需要重新安装 为了方便学习C 今天有时间安装下Visual Studio 2022 顺便记录安装过程 1 从官网下载并解压软件压缩包 然后打开文件夹 2 双击 visual studio 2022
  • 搭建微服务下统一认证授权服务,鉴权客户端大致流程(基于无状态)

    1 简介 基于无状态令牌 jwt 的认证方案 服务端无需保存用户登陆状态 基于spring security框架 oauth2协议 搭建 基于spring cloud nacos 服务调用使用RestTemplate 前置知识 jwt 也就
  • VUE 常用指令

    目录 Vue概念 同类产品 官网 特点 渐进式框架 入门案例 html 改造入门案例 html MVVM框架 基础语法 运算符 operator 方法 methods Vue解析数据 三种data值的写法 高级用法 v 命令 指令集 双向绑
  • Java中GET请求与POST请求,前端传参与后端接收实例

    此示例以代码方式展现 可直接结合controller层每个接口上方注释与其接口传递参数方式理解 前端传参直接就以apiPost工具来代替 apiPost调用后端接口几种方式 代码 controller层 package com chensi
  • 读写ini配置文件(C++)

    文章目录 1 为什么要使用ini或者其它 例如xml json 配置文件 2 ini文件基本介绍 3 ini配置文件的格式 4 C 读写ini配置文件 5 代码示例 6 配置文件的解析库 文章转载于 https blog csdn net
  • Proteus中继电器详解

    目录 一 引言 二 继电器实物 三 Proteus继电器选择 四 继电器工作原理及Proteus中继电器引脚 五 Proteus中继电器正确接法举例及仿真视频记录 一 引言 我们都知道继电器可以利用小信号控制大功率 有四两拨千斤功效 同时还
  • 一些关于TV的概念

    文章目录 TTX FVP BML MTS BTSC 一些关于TV的属于解释 TTX TTX是一种电视机上的文字广播系统 可以在电视屏幕上显示文字信息 如新闻 天气预报 股票行情 电视剧剧情介绍等 它是通过电视信号的一部分传输的 不需要额外的
  • springboot 2.0.4 关闭程序————我走过的那些坑

    首次接触springboot项目 在本地测试的时候 发现不知道怎么关闭程序 虽然后来不得不用杀死进程的方式解决 但总觉得这种方式太简单粗暴 就准备问问度娘别人都是怎么做的 结果普遍答案是 步骤 第一步 引入依赖
  • 中央和省级产业政策匹配数据(含完整stata代码)

    1 数据来源 国泰安数据库 2 时间跨度 中央产业政策 2001 2020年 和省份产业政策 2006 2020年 3 区域范围 全国 4 指标说明 具体匹配代码详见分享文件中的do文件 匹配流程 1 整理证监会2001年分类标准和证监会2
  • Python 进阶(七): Word 基本操作

    1 概述 Word 是一个十分常用的文字处理工具 通常我们都是手动来操作它 本节我们来看一下如何通过 Python 来操作 Python 提供了 python docx 库 该库就是为 Word 文档量身定制的 安装使用 pip insta
  • openwrt 格式化_如何在路由器上格式化 U 盘、硬盘

    本教程适用于梅林 padavan LEDE openwrt 等固件 以下具体方法都基于 ext4 NTFS 相关错误不做回答 使用ssh连接路由器 把U盘插到路由器上 我们需要在命令行进行以下4步操作 安装fdisk 一般梅林 Padava
  • Keil(MDK-ARM-STM32)系列教程(六)Configuration(Ⅱ)

    写在前面 本文接着上一篇文章 Configuration 进行讲述Configuration后面三项Shortcut Keys快捷键 Text Completion代码完形 Other其他的内容 Shortcut Keys快捷键 Keil软
  • 精学JS:宏任务 & 微任务的运行机制

    首先分析宏任务和微任务的运行机制 并针对日常开发中遇到的各种宏任务 微任务的方法 结合一些例子来看看代码运行的顺序逻辑 把这部分知识点重新归纳和梳理 在日常开发中 例如 setTimeout和 promise都是经常会使用到的 JS方法 当
  • 操作系统【六】虚拟内存

    传统存储管理方式的不足 一次性 作业必须一次性全部装入内存后才能开始运行 这会造成 当作也很大时不能全部装入内存 当大量作业要求运行时 由于内存无法容纳所有作业 因此只有少量作业能够运行 导致多道程序并发度下降 驻留性 一旦作业被装入内存

随机推荐

  • 【计算机视觉】Visual Transformer (ViT)模型结构以及原理解析

    文章目录 一 简介 二 Vision Transformer如何工作 三 ViT模型架构 四 ViT工作原理解析 4 1 步骤1 将图片转换成patches序列 4 2 步骤2 将patches铺平 4 3 步骤3 添加Position e
  • Python——LSTM、GRU 时间序列股票数据预测(文末完整代码)

    GRU 是在 LSTM 基础上的简化 将 LSTM 内部的三个闸门简化成两个 往往 GRU 的计算效果会优于 LSTM 目录 1 导入工具包 2 获取数据集 3 数据预处理 4 时间序列滑窗 5 数据集划分 6 构造网络模型 7 网络训练
  • tracert命令返回的三个时间为什么有时会出现1个或2个星号?

    如图 三个时间里有1个或者2个显示星号 这是为什么呢 如果是配置了ACL丢弃了响应报文的话按理应该3个都显示星号呀 直接ping这个ip的话不会出现丢包 时延也很稳定 这个问题很诡异 演绎一下 仅供参考 首先traceroute 是利用 T
  • 后台系统切换主题颜色(换肤) Vue+ elementUi

    文章目录 前言 一 css color function 二 使用步骤 1 下载依赖项 2 引入 3 使用 定义data数据 3 定义方法 4 调用方法使用 5 模板 6 AllCode 总结 前言 不断学习demo中 有好的demo会记录
  • antd pro protable request请求有数据 页面不渲染或postdata里的data一直是undefined

    异常原因 protable的request请求默认的数据格式为 data pageSize 10 current 1 total 28 success true request请求如果返回的数据格式不是以上形式就会获取不到data page
  • STM32 DMA 应用之(二) DMA 串口 数据传输--发送

    一 DMA请求映像 由此我们知道如果需要使用串口1的发送功能需要用到的是DMA1 Channel4 使用串口1的接收功能需要用到的是DMA1 Channel5 二 怎样配置软件来使用DMA 把数据传到串口发送 1 配置dma 函数名称 Dm
  • vim退出时提示:q:未找到命令的解决办法

    有一天 我在WSL上快乐的用vim编游戏 可就在我输入 q时 bash提醒我 q 未找到命令 平常程序都在WSL上 cat不自动在行尾加换行违反了我的强迫症 然后我就开始修理vim了 然后我又试了 wq等等和q有关的命令 甚至连 q都没问题
  • C#编程,.NTE调用java类、jar包方法

    基本思路 用C 实现调用Java编写的类中的方法 重点是将Java编写的程序打包成Jar 然后使用开源工具IKVM将其转化成DLL控件 在 NET环境下调用 一 使用IKVM NET组件 首先到IKVM官网 http www ikvm ne
  • React学习(JSX+组件+state+表单)

    React JSX 声明元素 渲染元素 组件 练习 this props children PropTypes 默认值 获取真实的DOM节点 this state 表单 组件的生命周期 例子 JSX JSX是一种JavaScript语法的拓
  • 链式前向星存树图和遍历它的两种方法【dfs、bfs】

    目录 一 链式前向星存图 二 两种遍历方法 一 链式前向星存图 n个点 n 1条边 链式前向星把上面的树图存下来 输入 9 代表要存进去n个点 1 2 下面是n 1条边 每条边连接两个点 1 3 1 7 2 4 4 5 4 6 3 8 3
  • json-server在vscode终端运行文件报错

    错误 无法加载文件 D 因为在此系统上禁止运行脚本 json server 无法加载文件 D ruanjian nodejs node global json server ps1 因为在此系 统上禁止运行脚本 有关详细信息 请参阅 htt
  • 关于宝塔面板无法访问的解决方法

    前言 本篇文章主要介绍宝塔面板无法访问的几种情况以及如何解决 正文 1 没有开放相应端口 这种情况比较常见 服务商默认情况下会将所有的端口关闭 你需要使用哪个端口就得手动去打开这个端口 例如 http 47 8888 adminuser 中
  • ubuntu如何开放22端口 ubuntu22端口开启

    ubuntu开放22端口的操作步骤 1 打开终端命令行模式 2 依次输入以下命令进行开放22端口即可 输入以下命令打开22端口 sudo ufw allow 22 重启防火墙使其生效即可 sudo ufw reload 附加 sudo ap
  • 详解混合类型文件(Polyglot文件)的应用生成与检测

    1 引入 混合类型文件 Polyglot文件 是指一个文件 既可以是合法的A类型 也可以是合法的B类型 比如参考3中的文件 是一个html文件 可以用浏览器正常打开 它也是一个一个 jar文件 可以用JVM正常运行 参考4 如下图所示 这样
  • Spring源码:PropertyValues类及属性注入一

    概要 相关类 属性注入 概要 Spring获取Bean的实例时 需要把配置的属性值解析到PropertyValues 然后填充入BeanWrapper中 相关类 MutablePropertyValues类 PropertyValues接口
  • http://www.limodev.cn/blog/archives/category/gtk

    The linux mobile development gt http www limodev cn blog 致力于基于linux的嵌入式系统的学习和研究 包括内核 驱动 GUI MMI 软件设计和优化等 欢迎交换友情链接 代码请到Pr
  • Docker实战-NFS安装

    Docker安装 1 使用官方安装脚本自动安装 curl fsSL https get docker com bash s docker mirror Aliyun 2 启动 Docker 服务 systemctl start docker
  • Struts2框架详解(二)

    Struts2结果页面配置 全局结果页面 场景 多个action 有相同的方法返回值 且都到同一个结果页面 需求 创建两个action 执行默认的方法execute方法 让两个action的方法都返回success 返回success之后
  • Nerf 训练自有数据

    1 拍摄序列图像 放置在文件夹 如duck images 2 使用colmap使用COLMAP获取相机位姿 1 参考官方文档安装colmap 2 使用win 可执行程序 3 点击 File 选择 new project 点击 New 在du
  • 强化学习实现智能城市规划,清华团队最新成果登Nature子刊

    由于城市地理空间的多样性和巨大的动作空间 给城市布局用地和道路是一件非常复杂而困难的任务 长久以来一直依靠人类规划师的经验和直觉 如今 城市规划领域也有了自己的AlphaGo 近日 清华大学电子系城市科学与计算研究中心与建筑学院跨学科合作