Data Precog

Articles

“A Symbolic-Probabilistic Artificial Intelligence Agent for Minesweeper.”

  • This paper presents a Prolog-based Minesweeper player implemented using symbolic artificial intelligence. The system models the game board as a dynamic knowledge base containing cell states, mine locations, board dimensions, and game status. It combines deterministic rule execution with bounded model enumeration and probability estimation. Deterministic operations support board construction, cell opening, flagging, recursive expansion of empty regions, and win/loss detection. For decision-making, the agent identifies frontier cells adjacent to revealed clues, enumerates legal mine assignments for sufficiently small frontiers, and derives mine probabilities from the resulting models. When exact enumeration becomes computationally expensive, it falls back to local or global probability estimates. The resulting architecture is interpretable and data- independent, but its scalability, probability calibration, and treatment of unconstrained cells impose important limitations. The implementation demonstrates how declarative logic programming can express both the rules of Minesweeper and a practical uncertainty-aware solving strategy.

    The original paper can be found here.

    Keywords: symbolic artificial intelligence, artificial intelligence, constraint satisfaction, probabilistic reasoning, logic programming, model enumeration, Prolog, Minesweeper


  • “Simple Linear Regression example with scikit-learn.”

  • This article demonstrates how to implement simple linear regression using scikit-learn. You will learn how to prepare the data, train a regression model, make predictions, and evaluate its performance. The example provides a clear introduction to applying linear regression in Python.

  • “Customer Churn Classification with Logistic Regression.”

  • This article demonstrates how to build a customer churn classification model using logistic regression. You will learn how to prepare customer data, train the model, predict whether customers are likely to leave, and evaluate its performance using common classification metrics.

  • “CipherUnit: Breaking encryption of classical cipher algorithms using frequency analysis.”

  • This article introduces CipherUnit, a project that explores how classical cipher algorithms can be analysed and broken using frequency analysis. You will learn how patterns in letter frequencies can reveal weaknesses in traditional encryption methods and help recover the original message.