TY - GEN
T1 - Integrating a General Search Agent into an Imperative Programming Language
AU - Smith, James
AU - Henderson, Chris
AU - Bansal, Ajay
N1 - Publisher Copyright:
© 2021 IEEE.
PY - 2021
Y1 - 2021
N2 - Search is one of the more common strategies used by problem-solving agents. For many hard problems, a backtracking search can be the most effective approach for finding a solution. Logic programming languages provide, as a core feature of the language, the mechanics for the search behind the scenes without requiring the user to specify the algorithm. However, this functionality has been generally left out of the core features of imperative programming languages. In this work we propose integrating a search agent into an imperative programming language through a search construct in the syntax. By doing so, our intention is that the user may apply a model-based approach to problem solving. We extend the Go programming language with this search construct and develop an agent to perform the search. The algorithm behind the search is implicitly handled by the agent. We demonstrate the effectiveness of this search construct through solutions to an exhaustive search over a file-system, the NQueens problem, and the monkey and the bananas problem.
AB - Search is one of the more common strategies used by problem-solving agents. For many hard problems, a backtracking search can be the most effective approach for finding a solution. Logic programming languages provide, as a core feature of the language, the mechanics for the search behind the scenes without requiring the user to specify the algorithm. However, this functionality has been generally left out of the core features of imperative programming languages. In this work we propose integrating a search agent into an imperative programming language through a search construct in the syntax. By doing so, our intention is that the user may apply a model-based approach to problem solving. We extend the Go programming language with this search construct and develop an agent to perform the search. The algorithm behind the search is implicitly handled by the agent. We demonstrate the effectiveness of this search construct through solutions to an exhaustive search over a file-system, the NQueens problem, and the monkey and the bananas problem.
KW - Declarative programming
KW - Imperative programming
KW - backtracking search
KW - problem-solving agent
KW - search agent
UR - http://www.scopus.com/inward/record.url?scp=85127623517&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85127623517&partnerID=8YFLogxK
U2 - 10.1109/AIKE52691.2021.00015
DO - 10.1109/AIKE52691.2021.00015
M3 - Conference contribution
AN - SCOPUS:85127623517
T3 - Proceedings - 2021 IEEE 4th International Conference on Artificial Intelligence and Knowledge Engineering, AIKE 2021
SP - 54
EP - 61
BT - Proceedings - 2021 IEEE 4th International Conference on Artificial Intelligence and Knowledge Engineering, AIKE 2021
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 4th IEEE International Conference on Artificial Intelligence and Knowledge Engineering, AIKE 2021
Y2 - 1 December 2021 through 3 December 2021
ER -