IoT home cooling-system co-design grammar problem
A bounded IoT grammar for placing processors, sensors, and coolers in a fixed home geometry and evaluating lifecycle cost and thermal peak with a MATLAB-parity simulator.
See Grammar Problem Catalog for the grammar family index.
Quick Facts
Field |
Value |
|---|---|
Problem ID |
|
Problem Family |
grammar |
Implementation |
|
Capabilities |
|
Study Suitability |
none |
Tags |
|
Taxonomy
- Formulation
discrete_grammar
- Convexity
not_applicable
- Design Variable Type
discrete
- Is Dynamic
no
- Orientation
engineering_practical
- Feasibility Ratio Hint
0.1
- Objective Mode
multi
- Constraint Nature
hard
- Bounds Summary
finite placement points with explicit IoT products, links, and discrete cooler settings over a fixed house geometry
- Tags
grammar,iot,thermal,co-design,discrete
Statement
Design a home cooling IoT network over a fixed house layout. The grammar allows adding processors, sensors, and coolers, moving products across a finite set of study-derived placement points, editing links, deleting products/links, and tuning cooler settings (BTU/h, CFM).
The evaluator ports the original MATLAB study mechanics into deterministic Python: directed decision pathways, room-level airflow balance, temperature updates with conduction and leaks, and lifecycle costing (capital + operation). The reported metrics are total_cost, peak_temp_c, capital_cost, and operation_cost.
Problem Shape
Field |
Value |
|---|---|
State Type |
IoTHomeState |
Initial Transition Count |
52 |
Initial Rule Names |
|
Manifest Parameters
Key |
Value |
|---|---|
candidate_points |
[[-14.659024, 36.923898], [-8.708087, 29.342105], [2.095152, 8.723329], [2.278258, 4.449509], [3.010681, 38.909537], [3.28534, 39.697724], [3.651551, 26.568279], [4.200869, 29.064723], [6.031926, 19.078947], [6.215032, 8.168563], [6.947455, 35.999289], [6.947455, 46.293829], [8.412301, 33.895512], [9.602488, 34.351332], [15.736531, 38.403272], [16.468954, 39.091865], [17.109824, 19.263869], [17.29293, 10.648668], [20.039516, 47.279516], [21.687468, 29.793128], [26.539771, 48.204125], [27.272194, 47.556899], [28.09617, 19.633713], [28.187723, 36.369132], [30.293439, 18.894026], [30.934309, 36.630435], [35.237294, 39.605263], [36.70214, 46.840813], [38.350092, 18.246799], [39.540279, 40.003506], [39.814938, 37.663585], [39.906491, 18.894026], [41.279784, 17.507112], [47.50538, 25.181366], [47.780038, 23.794452], [48.237803, 29.896871], [48.695567, 29.619488], [50.526625, 45.060455], [50.892836, 17.414651], [58.949489, 14.640825], [59.498807, 15.657895], [60.414335, 45.060455], [61.51297, 44.690612], [61.787629, 32.983871], [61.787629, 35.354137], [61.970734, 45.707681], [62.336946, 40.641655], [63.43558, 24.04979], [71.217575, 30.978261], [71.675339, 28.509957], [75.429007, 29.896871], [79.091123, 16.952347]] |
cooler_btus_options |
[5000.0, 10000.0, 15000.0, 20000.0] |
cooler_cfm_options |
[100.0, 200.0, 300.0, 400.0] |
default_cooler_btus |
10000 |
default_cooler_cfm |
200 |
max_products |
32 |
Initial Transition Summary
Rule Name |
Transition Count |
|---|---|
add_processor |
52 |
Library Interface
initial_state()enumerate_transitions(state)enumerate_next_states(state)evaluate(state)