You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prolog地图着色查询返回False,无法获取预期配色方案求助

地图着色问题的错误排查与修复

1. 直接导致失败的语法错误

你的查询语句中,相邻区域列表里的[2,3][3,4]缺少逗号,Prolog无法正确解析这个Map参数,这是查询返回False的核心原因。修复后的查询语句应为:

color([[1,2],[2,3],[3,4],[3,5]],[red,green,blue,yellow],Coloring).

2. 代码逻辑的优化建议

当前find_regions的嵌套条件判断可以简化,同时避免潜在的重复区域问题,改用更直观的实现方式:

find_regions(Map, Regions) :-
    findall(X, (member([X,Y], Map); member([Y,X], Map)), AllRegions),
    list_to_set(AllRegions, Regions).

这个版本通过findall收集所有出现的区域,再用list_to_set去重,逻辑更清晰,也不容易出错。

3. 修复后的预期结果

修正查询语法后,运行查询会返回多个合法配色方案,例如:

Coloring = [[1, red], [2, green], [3, blue], [4, red], [5, red]] ;
Coloring = [[1, red], [2, green], [3, blue], [4, red], [5, green]] ;
...

内容的提问来源于stack exchange,提问作者Laghari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:55:20