<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CrushSCI Research Notes]]></title><description><![CDATA[CrushSCI Research Notes]]></description><link>https://crushsci.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 26 Oct 2026 10:14:55 GMT</lastBuildDate><atom:link href="https://crushsci.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Two Computational Budgets in a Model of Novice Game Reasoning]]></title><description><![CDATA[A beginner can judge a new board game with surprisingly little experience. A Nature paper by Katherine M. Collins and colleagues explains this ability…]]></description><link>https://crushsci.hashnode.dev/two-computational-budgets-in-a-model-of-novice-game-reasoning</link><guid isPermaLink="true">https://crushsci.hashnode.dev/two-computational-budgets-in-a-model-of-novice-game-reasoning</guid><category><![CDATA[simulation]]></category><dc:creator><![CDATA[wanqiuxu]]></dc:creator><pubDate>Wed, 07 Oct 2026 17:18:00 GMT</pubDate><content:encoded><![CDATA[<p>A beginner can judge a new board game with surprisingly little experience. A Nature paper by Katherine M. Collins and colleagues explains this ability using the Intuitive Gamer, a model with shallow action selection and a small number of simulated games. <a href="https://www.nature.com/articles/s41586-026-10722-1">Read the paper</a>.</p>
<p>For developers, the useful distinction is between two computational budgets: how far ahead a player searches at each move, and how many game simulations a reasoner uses to answer a question.</p>
<h2>The player chooses a move</h2>
<p>The player component considers progress towards its goal and interference with the opponent's goal. It uses a single step of lookahead and selects among actions probabilistically.</p>
<p>That gives a simple path from a game state to a policy: enumerate legal moves, inspect their resulting states, evaluate local goal-related features, and sample an action from the resulting scores.</p>
<p>The probabilistic step matters. A model of human choices should allow a distribution over plausible actions, including choices that differ across people or occasions.</p>
<h2>The reasoner samples possible games</h2>
<p>The reasoner calls the player repeatedly to simulate a game, then combines a small number of such simulations to estimate an outcome. To assess first-player advantage, for example, it can examine how often simulated games end in a first-player win, a second-player win or a draw.</p>
<p>Here is teaching pseudocode for that two-component structure. It is an illustrative simplification, not the authors' implementation or a reproduction of their results. The abstract goal functions and temperature require a concrete game definition.</p>
<pre><code class="language-text">function choose_action(state, player, rules, temperature):
    actions = legal_actions(state, rules)
    scores = []
    for action in actions:
        next_state = apply_action(state, action, rules)
        score = own_goal_progress(next_state, player, rules)
              + opponent_goal_blocking(next_state, player, rules)
        scores.append(score)
    return sample_softmax(actions, scores, temperature)

function estimate_outcomes(rules, simulation_count, temperature):
    counts = {first_player_win: 0, second_player_win: 0, draw: 0}
    for trial in range(simulation_count):
        state = initial_state(rules)
        while not terminal(state, rules):
            player = player_to_move(state, rules)
            action = choose_action(state, player, rules, temperature)
            state = apply_action(state, action, rules)
        counts[outcome_for_first_player(state, rules)] += 1
    return normalize(counts)
</code></pre>
<p>The example assumes a positive simulation count, a positive temperature, a finite game with well-defined terminal states, and that <code>apply_action</code> advances the turn. <code>outcome_for_first_player</code> maps the final board to one of the three named outcomes. The paper also explores variants with early stopping.</p>
<h2>Depth and sample count answer different questions</h2>
<p>Increasing search depth lets the player evaluate consequences farther into the future. Increasing simulation count gives the reasoner more samples from the policy it already has.</p>
<p>A large number of simulations does not turn a shallow player into a deep-search player. Equally, a sophisticated player can still yield a noisy estimate when the reasoner takes only a few samples. Keeping the components separate makes those tradeoffs visible.</p>
<h2>What the evidence supports</h2>
<p>The study involved more than 1,000 participants and a suite of 121 strategic grid-based games. It examined rule-based evaluation, first-time play and action prediction. The proposed model explained novice behaviour better than several alternatives in the tested settings.</p>
<p>This is a result about explaining human reasoning. A system designed to maximize playing strength has a different objective. The distinction helps clarify whether a model is being evaluated as a cognitive account, a competitive player, or a teaching tool.</p>
<p>The <a href="https://github.com/collinskatie/intuitive-game-reasoning.git">authors' data and code repository</a> is linked in the paper. Use that implementation and its accompanying documentation when investigating the published model in detail.</p>
<h2>Sources and publication record</h2>
<p>Collins, K.M., Zhang, C.E., Wong, L. et al. People use fast and flat simulation to reason about new games. Nature 655, 598–607 (2026). <a href="https://doi.org/10.1038/s41586-026-10722-1">DOI</a>.</p>
<p>The received and accepted dates are 23 September 2025 and 26 May 2026, respectively: a 245-day calendar interval. Online publication followed on 15 July 2026. I maintain CrushSCI, where the <a href="https://www.crushsci.com/en/journal/872">Nature records page</a> collects publication histories with links to the source articles.</p>
<p>This article was prepared with AI assistance and checked against the cited research. The pseudocode is a teaching example written for this article; it has not been benchmarked against the paper's results.</p>
]]></content:encoded></item><item><title><![CDATA[A Scheduler Needs a Rollback Plan: An Engineering Reading of IDEAL]]></title><description><![CDATA[An engineering reading of IDEAL: VM placement, bandwidth reservations, request-level rollback, and the boundaries of its energy results.]]></description><link>https://crushsci.hashnode.dev/a-scheduler-needs-a-rollback-plan-an-engineering-reading-of-ideal</link><guid isPermaLink="true">https://crushsci.hashnode.dev/a-scheduler-needs-a-rollback-plan-an-engineering-reading-of-ideal</guid><category><![CDATA[Cloud Computing]]></category><category><![CDATA[networking]]></category><category><![CDATA[System Design]]></category><dc:creator><![CDATA[wanqiuxu]]></dc:creator><pubDate>Tue, 06 Oct 2026 05:05:13 GMT</pubDate><content:encoded><![CDATA[<p>Suppose an infrastructure scheduler finds room for every VM in an application. It reserves the compute capacity, then discovers that the network cannot carry one of the application's required connections.</p>
<p>The request has failed. What happens to the resources already reserved?</p>
<p>That question makes <strong>IDEAL: Impact-Aware Virtual Data Center Embedding With Incremental Analysis for SDN-Controlled Networks</strong> an interesting paper for backend and infrastructure developers. Written by N. Preetham, Sourav Kanti Addya, T. G. Keerthan Kumar, and Saumya Hegde, it appears in <a href="https://ieeeaccess.ieee.org/">IEEE Access</a> with <a href="https://doi.org/10.1109/ACCESS.2026.3711709">DOI 10.1109/ACCESS.2026.3711709</a>. The authors' <a href="https://www.researchgate.net/publication/408680095_IDEAL_Impact-Aware_Virtual_Data_Center_Embedding_With_Incremental_Analysis_for_SDN-Controlled_Networks">public manuscript</a> describes a sequential placement algorithm with request-level rollback.</p>
<p>The useful engineering connection is between resource selection and resource accounting: a scheduler needs to evaluate placement choices and make failed attempts reversible.</p>
<h2>An application request spans two resource pools</h2>
<p>Virtual Data Center Embedding maps a request's VMs and their virtual links onto physical infrastructure. A VM consumes compute capacity on a host. A virtual link consumes bandwidth along a physical path between the selected hosts.</p>
<p>These allocations are coupled. Spare compute capacity on two machines says little about the residual bandwidth between them. As a result, successful VM placement is an intermediate step toward admitting the complete request.</p>
<p>IDEAL models compute demand using Computational Resource Blocks, or CRBs. One CRB represents one CPU core and 512 MB of memory. Virtual links have explicit bandwidth demands in Mbps.</p>
<p>Each reservation also changes the input to subsequent decisions. A host that looked attractive before receiving a VM now has a different utilization level and less residual capacity. A route that carried one virtual link has less bandwidth available for the next.</p>
<h2>Ranking measures the consequence of a choice</h2>
<p>IDEAL evaluates candidate hosts by estimating two effects of a tentative VM placement:</p>
<ul>
<li><p><strong>Marginal energy increment:</strong> how much additional host-side energy the placement introduces.</p>
</li>
<li><p><strong>Incremental load-balance distortion:</strong> how the placement changes the distribution of residual resources across active hosts.</p>
</li>
</ul>
<p>This gives a concrete way to compare consolidation with available headroom. Reusing an active host can reduce activation overhead, while concentrating reservations can leave a less balanced distribution of spare resources.</p>
<p>The framework uses AHP to weight the criteria and VIKOR to rank candidates. After a successful placement, it updates the resource state and recalculates the ranking for the next VM. The ranking therefore tracks the consequences of reservations already made.</p>
<p>For virtual links, the algorithm removes physical links with insufficient residual bandwidth from the candidate graph. Its implementation uses a Dijkstra-based K-shortest-path search with K set to 5.</p>
<h2>The admission boundary is the whole request</h2>
<p>IDEAL accepts a request when both its VM and virtual-link allocations succeed. If any allocation fails, it releases the reservations made for that request.</p>
<p>The paper describes a request-level reservation log containing the VMs placed and the physical links reserved. Rollback adds their reserved CRBs and bandwidth back to the corresponding hosts and links. In the paper's sequential admission model, this restores the physical-network state that existed before the failed attempt.</p>
<p>The following pseudocode is a simplified explanation of that control flow, rather than a reproduction of the authors' implementation:</p>
<pre><code class="language-text">admit(request, state):
    reservations = []
    placements = {}

    for vm in request.vms:
        host = choose_host_from_current_state(vm, state)
        if host is absent:
            undo(reservations, state)
            return rejected

        reserve_compute(host, vm, state)
        reservations.append(compute_reservation(host, vm))
        placements[vm] = host

    for link in request.virtual_links:
        path = find_bandwidth_feasible_path(link, placements, state)
        if path is absent:
            undo(reservations, state)
            return rejected

        reserve_bandwidth(path, link, state)
        reservations.append(bandwidth_reservation(path, link))

    return accepted(placements, reservations)
</code></pre>
<p>The log records what the attempt actually changed. A compute reservation identifies its host and allocated amount; a bandwidth reservation identifies the physical links used and the amount reserved on them.</p>
<p>For a concurrent implementation, this design also raises an ownership question: releasing one request's allocations must preserve allocations made by other requests. Reservation identifiers, synchronization, and retry behavior become implementation decisions that need their own validation.</p>
<h2>A small failure example</h2>
<p>Consider an illustrative request with three VMs and two virtual links:</p>
<table>
<thead>
<tr>
<th>Step</th>
<th>Allocation attempt</th>
<th>Resources held by the request</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>Place VM A</td>
<td>Compute for A</td>
</tr>
<tr>
<td>2</td>
<td>Place VM B</td>
<td>Compute for A and B</td>
</tr>
<tr>
<td>3</td>
<td>Place VM C</td>
<td>Compute for A, B, and C</td>
</tr>
<tr>
<td>4</td>
<td>Map A-B successfully</td>
<td>All three compute allocations and the A-B path bandwidth</td>
</tr>
<tr>
<td>5</td>
<td>Find no feasible B-C path</td>
<td>The request fails</td>
</tr>
<tr>
<td>6</td>
<td>Roll back its reservation log</td>
<td>No resources remain reserved for this request</td>
</tr>
</tbody></table>
<p>Releasing only the last attempted connection would leave earlier reservations behind. Those leftovers would change the scheduler's view of capacity for future applications.</p>
<p>This suggests useful checks for a scheduler implementation: force a late link-mapping failure, compare resource counters before and after the attempt, and confirm that an unrelated accepted request retains its allocations. These are engineering checks derived from the admission model.</p>
<h2>Read the results with their accounting boundary</h2>
<p>The authors evaluate IDEAL using Mininet, the Ryu SDN controller, Python, and OpenFlow. The emulated topology contains 54 hosts and 222 physical links. Requests contain 2-10 VMs; five scenarios use 200, 400, 600, 800, and 1,000 requests, with ten runs per scenario.</p>
<p>Compared with CEVNE, DROI, SCA-R, LitE, and First-Fit, the authors report an average 48.70% reduction in active-host energy consumption. Their total physical-network host-energy calculation includes idle-host baseline consumption, producing a smaller reduction of around 3-4%.</p>
<p>The distinction matters when interpreting consolidation. Reducing the energy attributed to the active set can produce a much larger percentage change than reducing the modeled energy of every host. Both numbers describe the same evaluation with different accounting boundaries.</p>
<p>The paper evaluates a sequential heuristic on a 54-host topology. A larger implementation would need to measure repeated ranking and path-search costs under its own workload, alongside admission outcomes and resource-accounting correctness.</p>
<h2>What this changes in a design review</h2>
<p>A review of a multi-resource scheduler can ask three precise questions: does each reservation update the inputs to the next decision, does admission include network feasibility, and can a failed attempt release every allocation it owns?</p>
<p>IDEAL connects those questions in one algorithm. Placement quality depends on the evolving state; reliable state depends on complete reservation accounting.</p>
<p>For publication metadata, the <a href="https://www.crushsci.com/en/journal/8">IEEE Access paper records on CrushSCI</a> include this paper's title, DOI, publisher links, and recorded submission-to-acceptance dates. I maintain CrushSCI; the algorithm discussion above is based on the authors' manuscript.</p>
<p><em>This original research explainer was prepared with AI assistance. The cited author manuscript is available under</em> <a href="https://creativecommons.org/licenses/by/4.0/"><em>CC BY 4.0</em></a><em>; the pseudocode and failure example are explanatory additions, and experimental results are attributed to the authors.</em></p>
]]></content:encoded></item></channel></rss>