新安江水文模型与 SCE-UA 优化算法是水文学和水资源管理领域的重要工具,二者结合使用可以有效模拟流域的水文过程并优化模型参数。

新安江水文模型是一种概念性水文模型,主要用于模拟流域的降雨-径流关系。
SCE-UA(Shuffled Complex Evolution - University of Arizona)是一种全局优化算法,广泛应用于水文模型参数率定。

本文主要记录使用DeepSeek和通义千问大模型, 把新安江水文模型和SCE-UA优化算法的C++程序移植到C#程序的过程。

C++版本是河海大学水文水资源系卢家波博士生开发的,https://github.com/lujiabo98/XAJ-SCEUA

这个程序写得很好,一直想移植到C#版本,方便学习使用。

【水文模型】10 新安江模型C++实现 https://blog.csdn.net/weixin_43012724/article/details/127096422

【PEST++】02 新安江模型参数自动率定 https://blog.csdn.net/weixin_43012724/article/details/103968567

【水文模型】09 新安江模型SCE-UA算法自动率定 https://blog.csdn.net/weixin_43012724/article/details/123183366

其实chatGPT和OpenAI已经出现有一段时间,但是国内访问这些AI网站并不方便,无法进行愉快的体验。

Deepseek 的出现,点燃了2025年国内AI大模型的第一团火,可以说今年是中国AI应用元年,

0)软件环境:Windows 10, Visual Studio 2022

1)从github.com下载C++程序,编译运行一次通过

2)访问 deepseek.com ,把 sceua.h, sceua.cpp 复制过去,注明转换成C#程序

可以看到整个转换过程基本可以,并给出了转换的思路,和人工思考过程基本类似,

当中几个比较长的函数如cce函数,没有给出转换

尝试多次之后,因为deepseek一直提示服务器繁忙,转而使用通义千问大模型,据说内置连接了deepseek大模型

3)通义千问大模型(https://tongyi.aliyun.com/)可以容忍的输入文本似乎没有那么长,但是可以分段输入,转换内容基本正确

C#程序和C++程序类成员变量有些不一样,比如C++加了前缀 m_nXXX, 为了保持一致方便观察,

我加了二个转换限制:变量名不变 逐行转换

4)这次我专门转换比较长的程序 cce() 等,基本转换出来了,还不知道是否有问题,目测可以用

5)经过拆分篇幅,几次分段转换,终于把 sceua.h, sceua.cpp转换成功,当中有几个小错误,修改一下即可

6)  要检验sce-ua算法是否可以运行,还需要移植新安江程序,SCEUA程序内部已经包含了新安江模型程序,

接下来就是把新安江模型程序里面的几个类一个个转换过来即可。

7)经过重复的复制C++程序并依靠通义千问转换过程,终于完成所有的转换。

8)工程文件里面已经提供了测试数据,且这个程序是命令行方式运行,所以很方便运行起来。

经过运行对比,结果基本正确,参数有改变。转换后的C#程序,运行时间居然比C++快一倍。

以上就是我借助AI来转换程序的过程,大概一个晚上完成,如果要手工转换,可能需要一天时间才能做完。

我想如果转换成python程序,应该也是可以的,期待有人去尝试一下。

要了解更多,请访问 www.WaterGIS.cn 和 QQ群 722489551

  

实战AI大模型辅助编程:新安江水文模型和SCE-UA优化算法的移植与实现的更多相关文章

  1. 并发编程:Actors 模型和 CSP 模型

    https://mp.weixin.qq.com/s/emB99CtEVXS4p6tRjJ2xww 并发编程:Actors 模型和 CSP 模型 ImportNew 2017-04-27    

  2. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

  3. 网络编程中select模型和poll模型学习(linux)

    一.概述 并发的网络编程中不管是阻塞式IO还是非阻塞式IO,都不能很好的解决同时处理多个socket的问题.操作系统提供了复用IO模型:select和poll,帮助我们解决了这个问题.这两个函数都能够 ...

  4. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  5. 保姆级教程:用GPU云主机搭建AI大语言模型并用Flask封装成API,实现用户与模型对话

    导读 在当今的人工智能时代,大型AI模型已成为获得人工智能应用程序的关键.但是,这些巨大的模型需要庞大的计算资源和存储空间,因此搭建这些模型并对它们进行交互需要强大的计算能力,这通常需要使用云计算服务 ...

  6. zz独家专访AI大神贾扬清:我为什么选择加入阿里巴巴?

    独家专访AI大神贾扬清:我为什么选择加入阿里巴巴? Natalie.Cai 拥有的都是侥幸,失去的都是人生 ​关注她 5 人赞同了该文章 本文由 「AI前线」原创,原文链接:独家专访AI大神贾扬清:我 ...

  7. DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

    DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...

  8. HBase实践案例:知乎 AI 用户模型服务性能优化实践

    用户模型简介 知乎 AI 用户模型服务于知乎两亿多用户,主要为首页.推荐.广告.知识服务.想法.关注页等业务场景提供数据和服务, 例如首页个性化 Feed 的召回和排序.相关回答等用到的用户长期兴趣特 ...

  9. 基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程

    许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的 ...

  10. 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程

    详解游戏辅助编程 [目录] 1-什么是Windows API 2-Windows进程 3-Windows 的内存的运行原理 4-windows 中句柄的概念 5-Windows的变量类型 6-辅助实现 ...

随机推荐

  1. 借助AI助手快速解析LlamaIndex的Workflow设计与Java迁移

    在前面的讨论中,我们通过AI助手快速浏览并分析了LlamaIndex的核心源码及其可视化部分.在上次的工作中,我们已基本完成了使用Java版本实现的可视化部分,尽管在工作流(workflow)的分析上 ...

  2. 6.MySQL性能优化

    参数 作用范围 全局:对实例的所有会话起作用 会话级:只对当前会话起作用 set session binlog_rows_query_log_events = on; set global binlo ...

  3. 【服务器安全问题】双防火墙有什么意义?SSH暴力破解如何防范

    发现我的服务器有大量的陌生IP尝试SSH登录,似乎想暴力破解. 我个人习惯是服务器提供商开放了所有端口的,同时也没有开启运维软件提供的防火墙emm 这倒是让我想到了 一般服务器提供商(比如阿里云.华为 ...

  4. 2024年1月Java项目开发指南12:前后端分离项目跨域问题解决

    创建config文件夹,创建WebConfig文件 代码如下(可以直接抄) package cc.xrilang.serversystem.config; import org.springframe ...

  5. 【MyBatis】学习笔记13:延迟加载(懒加载)

    目录 Mybatis13:延迟加载(懒加载) 测试 测试1 测试2 部分特殊情况处理 Mybatis13:延迟加载(懒加载) 延迟加载是分步查询的好处,默认是不开启延迟加载的,要开启需要在核心配置文件 ...

  6. 【原创】利用gitlab多项目自动部署到多个网站目录,自动同步更新,不用插件,重写钩子

    原创内容,分享请保留链接. 0.首先在服务器安装gitlab,网上一堆过程省略 1.建几个空仓库admin.web.xxxx等(1个仓库也行).确保每个仓库名称和网站名称要有一致性,比如仓库叫admi ...

  7. Qt音视频开发24-视频显示QOpenGLWidget方式(占用GPU)

    一.前言 采用painter的方式绘制解码后的图片,方式简单易懂,巨大缺点就是占CPU,一个两个通道还好,基本上CPU很低,但是到了16个64个通道的时候,会发现CPU也是很吃紧(当然强劲的电脑配置另 ...

  8. Qt音视频开发39-人脸识别在线版

    一.前言 关于人脸识别这块,前些年不要太火,哪怕是到了今天依然火的一塌糊涂,什么玩意都要跟人脸识别搭个边,这东西应该只是人工智能的一个很小的部分,人脸识别光从字面上理解就是识别出人脸区域,其实背后真正 ...

  9. Qt编写安防视频监控系统32-onvif信息获取

    一.前言 上一篇文章写的是onvif设备搜索,搜到这些设备以后,第一件事情就是要对设备信息获取一下,比如获取视频流地址,配置套件信息.码流信息.分辨率大小等,这些信息的获取根据具体的需要去获取,也没有 ...

  10. TensorRT-YOLO:灵活易用的 YOLO 部署工具

    TensorRT YOLO TensorRT-YOLO 是一款专为 NVIDIA 设备设计的易用灵活.极致高效的YOLO系列推理部署工具.项目不仅集成了 TensorRT 插件以增强后处理效果,还使用 ...