脑机辅助推导算法

目录

一,背景

二,华容道中道

1,问题

2,告诉脑机如何编码一个正方形格子

3,让脑机汇总信息

4,观察图,得到启发式算法

5,根据启发式算法求出具体解

6,可视化


一,背景

畅想一下脑机接口成熟之后,当我们遇到一个问题,可能会怎么样使用脑机去解决。
如果思路比较明确,且时间复杂度比较低,可以直接让脑机采用***算法解决问题。
如果有一些灵感,但是没有明确的思路,只有一个非P时间复杂度的垃圾算法,那就可以在脑机的辅助下,逐步推导出什么才是合适的算法。
PS:推导出的可能是比较适合当下情况的算法,而不是通用算法。

二,华容道中道

以最强大脑的《华容道中道》这个项目为例,来模拟一下如何逐步推导出什么才是合适的算法。

1,问题

把数字华容道的数字格变成迷宫格,拼出一条路径出来。

题面(选手比赛玩的就是这个):

2,告诉脑机如何编码一个正方形格子

我的指令:

对于每个正方形格子,边长为3,即由12个单位线段组成。
依次编号1-12,找到缺失的线段,一般都是2个缺口,把2个缺口id记为pair(a,b),1<=a<b<=12

脑机回复:

是这样吗?

我的回复:

是的

3,让脑机汇总信息

我的指令:

统计某个格子,如果有哪个格子的缺口数不是2,单独报告给我。
对于缺口数是2的,按照迷宫规则,判定这2个缺口是否连通,如果不连通,单独报告给我。
对于连通的格子,汇总所有的pair结果

脑机回复:

没有缺口数不是2的,也没有不连通的。99个格子的编码依次是:
5 6   5 8   9 10   6 8   5 8   5 8   7 8   5 6   2 3   7 10 
6 7   6 7   5 9   6 8   4 5   1 9   5 7   3 8   10 11   6 9
8 9   9 12   3 4   2 12   5 9   1 8   10 11   1 10   6 8   3 8 
1 11   2 5   8 12   4 8   2 10   3 8   3 4   7 10   4 11   4 5
5 8   4 8   2 11   6 11   1 10   3 5   6 9   3 11   11 12   3 4 
2 4   6 12   8 10   7 10   5 11   3 5   1 10   1 12   3 11   2 10 
8 12   4 11   2 11   4 11   7 12   3 4   9 11   9 11   6 7   2 5
2 6   5 8   4 11   4 7   2 6   9 11   5 11   4 10   4 10   10 11
6 10   5 10   3 11   2 8   5 7   6 12   9 10   3 9   1 10   10 11 
7 8   1 11   2 11   6 7   8 10   7 8   5 10   6 8   1 2

我的指令:

计数汇总

脑机回复:
1 10 4
1 11 2
1 12 1
1 2 1
1 8 1
1 9 1
10 11 4
11 12 1
2 10 2
2 11 3
2 12 1
2 3 1
2 4 1
2 5 2
2 6 2
2 8 1
3 11 3
3 4 4
3 5 2
3 8 3
3 9 1
4 10 2
4 11 4
4 5 2
4 7 1
4 8 2
5 10 2
5 11 2
5 6 2
5 7 2
5 8 5
5 9 2
6 10 1
6 11 1
6 12 2
6 7 4
6 8 4
6 9 2
7 10 3
7 12 1
7 8 3
8 10 2
8 12 2
8 9 1
9 10 2
9 11 3
9 12 1

我的指令:

画个图

脑机回复:

PS:图文稍微有一点点不对应,以文字为准。

4,观察图,得到启发式算法

目前看来,应该存在理论最短路(由18个格子组成的迷宫线路),或者接近最短路(不超过20个)。

我们可以先试试,能不能找到理论最短路。

我的指令:

把一端在左边或上边,一端在右边或下边的线给挑选出来,汇总结果。

脑机回复:

1 8 1
1 9 1
2 4 1
2 5 2
2 6 2
2 8 1
3 4 4
3 5 2
3 8 3
3 9 1
4 10 2
4 11 4
5 10 2
5 11 2
6 10 1
6 11 1
6 12 2
7 10 3
7 12 1
8 10 2
8 12 2
9 10 2
9 11 3
9 12 1

脑机回复:

1 下 2
2 右 5
2 下 1
3 右 6
3 下 4
10 右 5
10 下 7
11 右 7
11 下 3
12 右 2
12 下 4

我的回复:

好的,我已经找到了特征,简单来说,1的出口比较少,其次是2的下边出口比较少,3,10,11,12的出口比较多。

于是我们得到了启发式算法:

直接按照数量挑路径,尽量往右穿边界和往下穿边界交替进行,控制往9走的次数,因为9连着1

5,根据启发式算法求出具体解

我的指令:

把“一端在左边或上边,一端在右边或下边的线”对应的子图再画出来。

脑机回复:

我的回复:

基于这个图,我直接很容易算出答案:

12 7
3 8
2 5
11 9
1 9
1 8
2 4
12 8
2 6
10 6
10 4
12 8
2 5
11 6
10 8
2 8
2 6
10 7

6,可视化

我的指令:

帮我把上面这个答案,对应的格子标出来

脑机回复:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/783216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 项目:使用 GSL 数学运算库 C++ 调用Python

文章目录 Part.I IntroductionChap.I CMakeListsChap.II ExportLibGSL.hChap.III test_python.cpp Part.II GSL 使用方法Part.III C 调用 Python 使用方法相关博客 Part.I Introduction 本项目是一个使用 GSL 的小项目&#xff0c;还有 C 调用 Python。项目虽简单&#xff0c;…

【研发日记】Matlab/Simulink开箱报告(十一)——Requirements Toolbox

目录 前言 Requirements Toolbox 编写需求 需求联接设计 需求跟踪开发进度 追溯性矩阵 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;六&#xff09;——S-Fuction模块&#xff08;TLC&#xff09;》 见《开箱报告&#x…

挑战从0开始开发仿小红书app第一天

00后挑战从0开始开发仿小红书|Day01 前言 记录开发的全阶段&#xff0c;比如需求分析&#xff0c;开发过程&#xff0c;测试阶段。不懂代码没关系&#xff0c;可以看看互联网岗位在干嘛 会使用一些辅助编码工具&#xff0c;就是类似于ChatGPT的大模型&#xff0c;比如通义灵码…

java文件File和IO流(一)-- File文件,IO流,缓冲流,字节流,字符流

File文件操作类 java.io.File类&#xff1a;文件和文件目录路径的抽象表示形式&#xff0c;与平台无关 File 能新建、删除、重命名文件和目录&#xff0c;但File 不能访问文件内容本身。如果需要访问文件内容本身&#xff0c;则需要使用输入/输出流。 想要在Java程序中表示一个…

C语言数组详解

一维数组 创建和初始化 数组就是一组相同元素的集合。 他的创建&#xff1a; char arr[10]; int arr1[5]; 数组创建中 [] 里不能是变量&#xff0c;但是在c99标准之后就可以了被称为变长数组&#xff0c;但是不常用&#xff0c;而且变长数组不能初始化。 初始化&#xff…

STM32的IAP技术,BootLoader

来源 三种下载方式&#xff1a; 1、ICP&#xff1a;ST-Link, 2、ISP: FlyMcu, 3、IAP IAP简介 IAP技术的核心在于BootLoader程序的设计&#xff0c;这段程序预先烧录在单片机中&#xff0c;正常的APP程序可以使用BootLoader程序中的IAP功能写入&#xff0c;也可以两部分代码一…

【React】vite + react 项目,进行配置 eslint

安装与配置 eslint 1 安装 eslint babel/eslint-parser2 初始化配置 eslint3 安装 vite-plugin-eslint4 配置 vite.config.js 文件5 修改 eslint 默认配置 1 安装 eslint babel/eslint-parser npm i -D eslint babel/eslint-parser2 初始化配置 eslint npx eslint --init相关…

【python】常用函数汇总(持续更新……)

文章目录 【numpy.exp()】返回e的幂次方&#xff0c;e是一个常数为2.71828【np.dot()】矩阵相乘【np.linalg.inv()】矩阵求逆 【numpy.exp()】返回e的幂次方&#xff0c;e是一个常数为2.71828 举例&#xff1a;numpy.exp() 【np.dot()】矩阵相乘 【要点】 1、前者的列数后者…

强化基础-Java-泛型基础

什么是泛型&#xff1f; 泛型其实就参数化类型&#xff0c;也就是说这个类型类似一个变量是可变的。 为什么会有泛型&#xff1f; 在没有泛型之前&#xff0c;java中是通过Object来实现泛型的功能。但是这样做有下面两个缺陷&#xff1a; 1 获取值的时候必须进行强转 2 没有…

canvas画图,画矩形可拖拽移动,可拖拽更改尺寸大小

提示&#xff1a;canvas画图&#xff0c;画矩形&#xff0c;圆形&#xff0c;直线&#xff0c;曲线可拖拽移动 文章目录 前言一、画矩形&#xff0c;圆形&#xff0c;直线&#xff0c;曲线可拖拽移动总结 前言 一、画矩形&#xff0c;圆形&#xff0c;直线&#xff0c;曲线可拖…

两张图片相似度匹配算法学习路线

大纲&#xff1a;​​​​​​目标跟踪基础&#xff1a;两张图片相似度算法-腾讯云开发者社区-腾讯云 (tencent.com) 目标跟踪基础&#xff1a;两张图片相似度算法 (qq.com) 一、传统方法 1.欧式距离&#xff08;用于判断是否完全相同&#xff09; [三维重建] [机器学习] 图…

DC电源模块的设计与调试技巧

BOSHIDA DC电源模块的设计与调试技巧 DC电源模块的设计与调试是电子工程师在实际项目中常常需要面对的任务。一个稳定可靠的DC电源模块对于电路的正常运行起到至关重要的作用。以下是一些设计与调试的技巧&#xff0c;帮助工程师们更好地完成任务。 第一&#xff0c;正确选择…

如何简化多个 if 的判断结构

多少算太多&#xff1f; 有些人认为数字就是一&#xff0c;你应该总是用至少一个三元运算符来代替任何单个 if 语句。我并不这样认为&#xff0c;但我想强调一些摆脱常见的 if/else 意大利面条代码的方法。 我相信很多开发人员很容易陷入 if/else 陷阱&#xff0c;不是因为其…

git的使用日常习惯规范与一些特殊操作

git的使用日常习惯规范与一些特殊操作 操作习惯规范创建本地新分支&#xff0c;推送新分支到云端仓库1.创建一个本地的login分支2.创建新分支后切换到新分支3.推送新分支到云端 git的特殊操作撤回commit&#xff08;取消提交到本地版本库的动作&#xff0c;本地工作区写的代码不…

鸿蒙开发(七)-UIAbility启动模式

鸿蒙开发(七)-启动模式 根据代码中定义,UIAbility的启动模式有以下几种&#xff1a; "launchType": {"description": "Indicates the boot mode of ability.","type": "string","enum": ["standard",…

springboot点餐平台网站

目 录 摘 要 1 前 言 2 第1章 概述 2 1.1 研究背景 3 1.2 研究目的 3 1.3 研究内容 4 第二章 开发技术介绍 5 2.1相关技术 5 2.2 Java技术 6 2.3 MySQL数据库 6 2.4 Tomcat介绍 7 2.5 Spring Boot框架 8 第三章 系统分析 9 3.1 可行性分析 9 3.1.1 技术可行性 9 3.1.2 经济可行…

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记12:DAC数模转换

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…

Django(二)-搭建第一个应用(1)

一、项目环境和结构 1、项目环境 2、项目结构 二、编写项目 1、创建模型 代码示例: import datetimefrom django.db import models from django.utils import timezone# Create your models here.class Question(models.Model):question_text models.CharField(max_length2…

golang grpc和protobuf的版本降级问题(version4 -> version3)

最后更新于2024年3月28日 10:57:52 简中没查到类似的文章。一点小事闹麻了&#xff0c;搞了一天&#xff0c;特意发出来造福大家。 所谓的版本就是下面这个东西proto.ProtoPackageIsVersion4或者proto.ProtoPackageIsVersion3&#xff1a; 目的 为了适配旧代码&#xff0c…

【Monero】Wallet RPC | Wallet CLI | 门罗币命令行查询余额、种子、地址等命令方法教程

ubuntu22.04 首先在运行daemon&#xff0c;详细安装运行教程可参考&#xff1a;The Monero daemon (monerod) ./monerodWallet CLI run ./monero-wallet-cli如果还没有钱包就根据提示创建钱包即可 输入密码 查询余额 balance查询种子 seed其他可执行命令操作&#xff1…