AI Research

Three papers from my Artificial Intelligence coursework at Boise State. Each starts with a question I could not answer by reading, so I built something to find out: how an agent reasons about what it cannot see, what it costs to plan perfectly, and whether a neural network is actually the right tool.

1. Reading a Room Full of Strangers

Suspicion: A Graph Based Approach to Knowledge Tracking During Game Play

Suspicion is a hidden-identity board game. Every player secretly holds one of ten guest identities, collects gems, and has to work out who everyone else is from indirect, ambiguous clues. A good player doesn't memorize a board. They keep a running theory of the room.

I wanted to know whether an agent could do the same with plain logic instead of a learned model of belief. So each agent draws that theory as a graph. Players sit on one side and the ten possible identities on the other. An edge means "this could still be you." Evidence removes edges until only the consistent possibilities remain.

Bipartite graph of players and candidate guest identities
An agent's mid-game theory of the table. Solid edges are certain, dashed edges are conditional on what the agent has seen, and any identity with no edges has been ruled out.

The graph does most of the thinking. Hall's Marriage Theorem says that if some group of players shares exactly as many candidate identities as there are players in the group, those identities belong to that group and nobody else. That lets an agent delete edges it has never directly observed.

Before and after Hall's Marriage Theorem pruning
Hall pruning. Players P2 and P3 can only be G1 or G4, so those two identities are exclusive to them. Every other edge into G1 and G4 (red, dashed) is removed without losing a single valid assignment.

For the final guess, the pruned graph goes into a small Graph Convolutional Network that scores every player against every identity. The agent commits only its most confident guess, updates the graph, and runs the network again, so each decision sharpens the next one.

GCN architecture mapping players and guests to a probability matrix
The network reads the graph and produces a probability for every player and identity pair. The darkest cell in each row is its best guess.
Iterative GCN inference committing one assignment at a time
Iterative inference. Each pass locks in the highest-scoring pair (green) and feeds the updated graph back in, until every player is assigned.

I ran four agents plus a random baseline through two 1,000-game tournaments.

45–50%Win rate, graph agents vs. four random opponents
~13%Random baseline
14%Learned value-network agent

The agents built on the graph won roughly three to four times as often as chance. The agent that learned its own value function from play did no better than random. In this game, the quality of the deduction mattered far more than the cleverness of the strategy. A small amount of structure outperformed a learned belief model.

Read the full paper (PDF)

2. What a Perfect Plan Costs

Scaling Dynamic Programming on Finite MDPs

Dynamic programming is the gold standard for planning: given a complete model of the world, it finds the provably optimal policy. The catch is that "complete" gets expensive fast. I used Jack's Car Rental problem from Sutton and Barto, in which a company moves cars between two lots to meet uncertain demand, to see where that cost starts to bite.

First I replicated the base problem. The optimal policy reads like common sense once you see it: move cars toward whichever lot is running short.

Optimal transfer policy heatmap for Jack's Car Rental
The optimal policy across all 441 inventory states. Red means move cars from lot 1 to lot 2, and blue means the reverse. Policy iteration converged in about 350 evaluation sweeps.

Then I changed the rules to see how the policy would respond. In Exercise 4.7, one car per night shuttles for free and any lot holding more than ten cars pays a parking penalty. The policy reorganized around those costs.

Difference between the Exercise 4.7 policy and the base policy
Where the new cost structure changed the agent's mind. Each cell is the difference in cars moved between the modified and base policies.

The core of the paper is scale. I grew the number of states from about a hundred to over forty thousand, and compared synchronous evaluation, which sweeps the whole table each pass, against asynchronous evaluation, which updates states in place.

Wall-clock time and evaluation sweeps versus state space size
Cost against state space size, measured in wall-clock time (top) and total evaluation sweeps (bottom). Asynchronous evaluation wins at every scale, and the gap widens as the problem grows.

Finally, I gave the agent a second job: pick the rental price as well as move the cars, using a demand model in which the two lots respond differently to price. The extra decision made the problem much heavier, and the asynchronous advantage grew with it.

Convergence time of synchronous and asynchronous policy iteration across three formulations
Mean convergence time over ten runs for the base problem, the modified costs, and the joint pricing problem. The pricing problem is the most expensive, and it is where asynchronous evaluation helps most.

The takeaway is practical. Dynamic programming reliably finds interpretable, optimal policies, but the cost grows quickly enough that real-world problems need approximation.

Read the full paper (PDF)

3. Do You Need a Neural Network?

Social Media Prediction: Gradient-Boosted Trees vs. Towered Neural Networks

Can a model look at a Flickr post, meaning the photo, its title and tags, and its metadata, and predict how popular it will be? I took the SMPD-Image dataset from the Social Media Prediction Challenge, about 486,000 posts from 70,000 users, and gave two very different models the same inputs: CLIP embeddings of each image and its text, plus tabular metadata.

One was a towered neural network. Each kind of input gets its own tower, and the three are fused into a single prediction. It looks like the right answer for multimodal data.

Towered neural network architecture with image, text, and tabular towers
The towered network. Image and text embeddings each get their own tower, categorical and numeric features get a third, and a fusion network combines them into a single log-popularity prediction.

The other was CatBoost, a gradient-boosted tree ensemble that treats everything as columns in a table.

CatBoost ensemble architecture over the same feature groups
The baseline. The same feature groups feed a tree ensemble directly, with no towers and no fusion stage.

I validated with 5-fold cross-validation grouped by user. A post from the same account never appears in both the training and test folds, so the model can't win by memorizing who posted.

1.639CatBoost test MAE
1.715Towered network test MAE
~1.96Mean and median baselines

Both models beat the baselines comfortably, which confirms the embeddings carry real signal. CatBoost beat the neural network, though, and it did so across all five folds. My read is that this dataset is a tabular problem at heart. Trees handle a messy mix of counts, categories, and dense vectors without being taught how, and the network has to learn all of that from scratch.

The more interesting finding is what the dataset leaves out. It has no follower counts or account history, and a photo posted by someone with a large following will reach more people than the identical photo from someone with none. That sets a ceiling on what any model looking only at content can do. The paper points toward graph-based approaches, which model how posts spread through a network.

Read the full paper (PDF)