如何提高 Prolog 中 ChatGPT 的准确性?

问题描述 投票:0回答:1

如何设计一个 ChatGPT 替代方案来识别 Prolog 中算法规范中的模式并将输入映射到输出?

我需要嵌套列表形式的递归模式,其中

[r,"a"]
代表
["a","a"]
[r,[1,[r,"b"]]]
代表
[1,"b","b",1,"b","b"]
,变量
'A1'
'B2'
等用于唯一项和常量值,其中值在规格中重复出现。这种上下文无关语法可用于编写算法、翻译某些语言或解析列表。另外,我需要从这个递归结构到输出递归结构的映射,例如
a->b
是映射
[1]-[1]
c
中的
[a,c]->[b,c]
[1,2]->[1,2]
(多维地址系统,其中列号是维度)该术语)。

第一个示例是一个要解析为递归模式的列表。

[2, 
[
[[input,[['A',[1,2,3,2,3,1,2,3,2,3]]]],[output,[['B',[3]]]]],
[[input,[['A',[1,2,4,2,4,1,2,4,2,4]]]],[output,[['B',[4]]]]]
]
]

第二个例子是一个解析器,它接受输入并产生输出:

[11,
[
[[input,[['A',[[["aa,]",b,"c",[]],1]]]]],[output,[['B',["aa,]",b]]]]],
[[input,[['A',[[["cc,]",d,"e",[]],1]]]]],[output,[['B',["cc,]",d]]]]]
]
],

这可以与多个规范一起形成变量和常量。

第三个例子是一个解释器(或者是带有附加命令的解释器):

[12,
[
[[input,[['A',[a,is,1,"+",1]]]],[output,[['B',[
[[n,"+"],[1,1,[v,a]]]]]]]],
[[input,[['A',[b,is,3,"+",4]]]],[output,[['B',[
[[n,"+"],[3,4,[v,b]]]]]]]],
[[input,[['A',[a,is,1,"-",1]]]],[output,[['B',[
[[n,"-"],[1,1,[v,a]]]]]]]],
[[input,[['A',[b,is,3,"-",4]]]],[output,[['B',[
[[n,"-"],[3,4,[v,b]]]]]]]]
]
]
algorithm prolog openai-api specifications
1个回答
0
投票

答案如下:

2.

[[[r,[1,[r,[2,'C1']]]]],[output,[['C1']]]]

[[[1,2,2,2,2],[[1,1]]]]

这意味着重复模式,然后重复这些模式,并输出变量。

地图意味着

C1
已移动到其输出位置。

11.

[["[","[",'C1','C2','C3',"[","]","]",1,"]"],[output,[['C1','C2']]]]

[[[1,3],[[1,1]]],[[1,4],[[1,2]]],[[1,5],[]]]

该模式包含括号作为字符串,因为否则,它们会与递归语法混淆。

地图将除

C3
之外的每个相关变量移动。

12.

[['C1',is,'C2','C3','C4'],[output,[["[","[",n,'C3',"]","[",'C2','C4',"[",v,'C1',"]","]","]"]]]]

[[[1,1],[[1,11]]],[[1,3],[[1,7]]],[[1,4],[[1,4]]],[[1,5],[[1,8]]]]

此模式将 Prolog 的一种形式转换为 List Prolog。然后代码可以由解释器运行。

地图交换变量的顺序并将其移动到各自的位置。

算法规范,产生这些结果的算法工作起来很有趣,但我自己处理它们更有趣!

© www.soinside.com 2019 - 2024. All rights reserved.