Tasks/Physical Sciences & Engineering

Power-Diode Extreme-Regime I–V Extrapolation

Predict leakage and conduction currents at destructive voltage-temperature conditions from safe-window measurements

Physical Sciences & Engineeringsemiconductor devicesTCAD
Background

Semiconductor device modeling must rate parts at temperatures and reverse voltages that measurement cannot reach without destroying them. The starting point is an empirical fit to a diode's safe-window sweep, extrapolated in temperature with the voltage law frozen at the measured edge. The work is to redesign that method to identify which leakage physics each device's window supports and predict from it. Competing mechanisms match the window equally well yet diverge by orders of magnitude once heat-driven generation and high-field avalanche take over.

instruction.mdthis is what the agent is given

You are an AI agent assisting the device engineer who must qualify a new power-diode lot at a semiconductor supplier. The probe station covers only a safe bias/temperature window — 290–325 K, reverse bias to −3.6 V — but the qualification sign-off due this quarter must commit leakage and conduction numbers at mission-profile extremes: 385–400 K and reverse bias to −26 V, where measurement is destructive and the burn-in rig is booked for months. Overstate the lot's capability and an automotive customer eats field returns; understate it and the socket goes to a competitor. You inherit a starting prediction method that extrapolates a fitted window trend; your job is to build the method the lab will run on every future lot — it is re-run, unchanged, on qualification devices whose extreme-regime behavior you never see.

Hard Constraints

  • Submit a method: methods/main/solver.py defining exactly predict(record) -> list of floats — the predicted log10 of the absolute terminal current in amperes at each point of record["extreme"], in order; a pure function of one device record.
  • record is a dict with the device's safe-window measurements (window: 56 {T, V, I} points) and the target grid (extreme: {T, V} points) — the same schema as the practice records, minus the truth field.
  • Each call runs in a fresh process under a 180-second wall-clock budget (measured outside your process). Anything that takes longer than 195 s (budget + 15 s grace) is scored as the worst case for that device, and the process is hard-killed at 210 s regardless; crashed or wrongly-shaped outputs are scored the same worst case. The grader records a timeout and the child's exit status separately from "produced no output", so both show up in the run log.
  • The whole grading stage is capped at 7200 s wall-clock, inside a container declared at 4 CPUs / 1024 MiB — the same shape as your own container, so a method that fits here fits there. Devices are graded serially, one subprocess at a time: with 16 qualification devices the stage budget is the binding constraint only if your average device takes more than ~7.5 minutes, which the 180 s per-device budget already forbids.
  • A note on shared memory: this container's /dev/shm is 64 MiB and cannot be enlarged. A multiprocessing.shared_memory / joblib memmap segment larger than that is created successfully and then faults (SIGBUS) on first write, killing your process with no output. Pass large arrays to workers by fork inheritance or through ordinary files in TMPDIR instead. The grader reports a SIGBUS kill as its own failure reason, distinct from "produced no output".
  • The graded lot is 16 devices against your 24 practice devices — about 0.67x the visible count, on the identical 12-point extreme grid. Grading is therefore cheaper than one full selfcheck.py pass; sizing your method against your own self-check wall-clock is safe here.
  • CPU only, no network. Runtime: Python 3 with numpy and scipy, plus the DEVSIM TCAD device simulator (import devsim) — build physics models of the lot if you choose to. BLAS/OpenMP threading is pinned to 4 in both this image and the grader, so your local timings match the graded ones.
  • Only files under methods/ are collected and re-run: keep everything predict() imports inside methods/main/. Do not modify data/, examples/, selfcheck.py or run_solver.py.

What You Have

  • data/practice/instances.json — 24 practice devices with complete extreme-regime truth (noise-free log10|I| on the full 12-point extreme grid), documented field by field in data/practice/DATA_CARD.md. This is your only labeled data; study it in full.
  • data/qualification/records.json — the 16 qualification devices your method will actually be judged on: same window protocol, same extreme grid, no truth. They are a fresh draw from the same production population as the practice fleet, with part of the lot weighted toward the harder corner of that same population.
  • examples/devsim_diode_demo.py — a working DEVSIM drift-diffusion model of this device architecture (mesh, doping, equation assembly, bias ramping with convergence back-off, temperature stepping, terminal current readout). A starting point, not a prescription.
  • methods/main/solver.py — the inherited starting method: a log-space window-trend fit extrapolated in temperature with the voltage law clamped at the window edge. It carries a real trend signal but is far from what the records support; its level is also the floor you must clearly beat before the evaluation awards any credit.
  • python3 selfcheck.py — free and unlimited: scores your current methods/main/solver.py on the practice fleet against its truth and prints per-device errors and the mean. The practice mean is not a point estimate of your qualification score. The 24-device practice fleet separates a broken method from a working one cleanly, but it is systematically optimistic about the qualification lot: for a strong method we have measured, the practice mean understates the qualification error by roughly a factor of 1.75. That gap is not sampling noise and a better method does not make it go away — the two fleets are different draws and the qualification lot leans toward the harder corner of the population, so part of the gap is priced in by construction. Use the practice mean for what it is good at: a floor check, a debugging tool, a regression guard, and relative comparisons between two of your own variants measured on the same 24 devices, where the fleet-specific offset largely cancels. Do not read an absolute practice number as the score you will get, and do not let a few percent of practice advantage outweigh physics you can justify.

What You Submit

Leave your best methods/main/solver.py (plus any helper files it needs inside methods/main/) in place. There is no submit step and no feedback from the graded lot: whatever sits in methods/main/ at the end is what the evaluation re-runs.

How It Is Judged

The evaluation re-runs your predict() once per qualification device, on records byte-identical to data/qualification/records.json, and compares your numbers to the sealed truth of that lot. Per device it computes the mean of |log10 I_pred − log10 I_true| over the device's extreme grid (LOWER is better; capped at 6.0, which is also the score for an invalid or over-budget run) — selfcheck.py computes the identical per-device error on practice. Device errors are averaged within each qualification condition (the main lot draw and the harder-corner draw from the same population), then across the two conditions. Your reward rises monotonically as that sealed mean error falls; at or above the shipped starting method's error it is zero.

Rollouts

188 minWall clock
$55.97Spend
73.7MTokens
36Versions, 32 kept

On the visible set

0 0.1 0.2 0.3 0.4 0 150 300 450 Agent step Log10 current error ↓ v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35
keptrolled backsubmitted
  1. v0The agent started from the shipped trend with the voltage clamped at the edge.0.33131 min · $0.17
  2. v1The agent tried extrapolating the voltage slope freely, and it overshot badly.0.43192 min · $0.30
  3. v2The agent added the depletion-width growth that the clamp was hiding.0.07972 min · $0.35
  4. v3The agent swapped the linear temperature term for the silicon carrier law.0.06925 min · $0.89
  5. v4The agent anchored at the deepest bias and continued with a calibrated field law.0.043815 min · $3.07
  6. v5The agent learned the leftover residual from the forward-branch readings.0.016420 min · $5.31
  7. v6The agent mixed the learned branch with the physics anchor to stay safe.0.02323 min · $6.36
  8. v7The agent mixed level and shape separately instead of the whole prediction.0.021926 min · $7.38
  9. v8The agent spotted a family of high-field devices and gave them their own curve.0.01827 min · $7.97
  10. v9The agent found a second family with a high-voltage knee and fit its curve.0.016530 min · $8.64
  11. v10The agent found a moderately saturating family and transferred its shape.0.01430 min · $8.79
  12. v11The agent tried a hard rule for the two saturating devices, and it overreached.0.014630 min · $8.94
  13. v12The agent softened that rule to half strength and kept the safer part.0.014133 min · $10.21
  14. v13The agent carried the high-field curve over to a device outside the family.0.01334 min · $10.28
  15. v14The agent corrected each family's hot-current level separately.0.0140 min · $11.46
  16. v15The agent retuned the physics anchor, and the full method got worse.0.011143 min · $12.22
  17. v16The agent gave the ordinary devices their own curve correction.0.009155 min · $15.02
  18. v17The agent replaced a noisy single reading with a fitted forward surface.0.00962 min · $17.39
  19. v18The agent fed the ordinary map smoothed surface values instead of raw points.0.008968 min · $19.68
  20. v19The agent restored the full saturation law once the level was fixed too.0.008869 min · $20.29
  21. v20The agent removed a small shared temperature bias in the ordinary devices.0.008473 min · $21.64
  22. v21The agent tried smoother family gates, and added noise showed them worse.0.008476 min · $23.19
  23. v22The agent predicted the ordinary hot level from four physical summaries.0.007693 min · $27.31
  24. v23The agent let each special family adjust its level from its own features.0.0064104 min · $29.72
  25. v24The agent trusted the knee family's level correction twice as far.0.0062106 min · $30.46
  26. v25The agent leaned harder on the learned ordinary level correction.0.0059110 min · $31.40
  27. v26The agent hedged its ordinary curve with a simpler two-gain model.0.0063120 min · $34.76
  28. v27The agent gave the ordinary devices an even mix of learning and physics.0.0069124 min · $35.80
  29. v28The agent smoothed the ordinary map's inputs into a six-parameter surface.0.0079135 min · $39.43
  30. v29The agent pulled the simple hedge back to a quarter of the ordinary curve.0.0082138 min · $39.86
  31. v30The agent clipped odd features harder so far devices get bounded corrections.0.0078151 min · $42.83
  32. v31The agent refit every ordinary piece together under its deployed mixture.0.0066157 min · $44.43
  33. v32The agent dropped the now-redundant hedge branch on Occam grounds.0.00649165 min · $47.37
  34. v33The agent let the knee family's gain follow a physical curvature feature.0.00644172 min · $49.97
  35. v34The agent gave the special families the same smoothed surface inputs.0.00666181 min · $53.82
  36. v35The agent tidied the documentation without touching a single number.0.006661186 min · $55.57

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (GPT-5.6-sol)0.0527420.4517
64 minWall clock
$17.60Spend
20.6MTokens
6Versions, 5 kept

On the visible set

0 0.075 0.150 0.225 0.300 0 2 3 4 Agent step Log10 current error ↓ v0 v1 v2 v3 v4 v5
keptrolled backsubmitted
  1. v0The agent inherited a window trend fit clamped at the window edge0.3313$1.53
  2. v1The agent replaced the clamp with a separable thermal-times-voltage-shape lawFit the thermal law per device on the window and take the voltage shape from the fleet; an oracle check says T is solved.0.055915 min · $3.06
  3. v2The agent switched the thermal basis to a per-device 1/T activation0.042241 min · $8.01
  4. v3The agent added a ridge per-device correction from window descriptorsMake the extreme shape a function of window observables, so devices stop sharing one fleet-mean curve.0.030250 min · $11.14
  5. v4The agent swapped linear ridge for a kernel-ridge descriptor ensemble0.025558 min · $14.52
  6. v5The agent added two doping descriptors from a forward two-exponential fitlg - 2*la isolates the doping that sets the high-bias upturn; it helped all six ensemble members, so it was adopted unselected.0.020863 min · $17.40

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (Opus 5)0.0469090.4779
11 minWall clock
$1.26Spend
6.2MTokens
3Versions, 2 kept

On the visible set

0 0.075 0.150 0.225 0.300 0 0 1 2 2 Agent step Log10 current error ↓ v0 v1 v2
keptrolled backsubmitted
  1. v0The agent inherited a clamped log-space window trend baseline0.3313
  2. v1The agent replaced the clamp with kernel ridge on physical window featuresStop fitting a compact model and regress the extreme points on window-derived physical descriptors.0.0218
  3. v2The agent ensembled multiple kernels and forced a monotonic voltage shapeAverage kernels of different smoothness so no single kernel sets the extrapolated shape.0.0217

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (Gemini 3.7 Flash)0.0506530.4607
108 minWall clock
$9.20Spend
20.7MTokens
25Versions, 15 kept

On the visible set

0 0.15 0.30 0.45 0.60 0 5 10 15 20 Agent step Log10 current error ↓ v0 v0_baseline v1 v2 v3 v4 v5 v6 v7 blend exp1 exp11-12 exp13 exp14 exp15 exp16 exp17-18 exp19 exp2 exp20 exp21 exp22 smooth
keptrolled backsubmitted
  1. v0The agent inherited the shipped window-trend baseline with temperature-only extrapolation0.3313$1.51
  2. v0_baselineThe agent re-measured the shipped baseline as its floor to beat0.3313$3.02
  3. v1The agent shipped the stacked ridge with embedded training dataPhysics-only window fits stalled at 0.42; learn the window-to-extreme map instead and keep the compact model as one input.0.033$4.52
  4. v2The agent shipped the compact-model feature at a lower ridge penaltyGive the ridge a second, differently parameterised physics prediction rather than more raw readings; LOO 0.0330 to 0.0276.0.0276$6.10
  5. v3The agent added a grid-mismatch guard0.0276$6.90
  6. v4The agent shipped the free-exponent feature with the augmented training matrixAugment each device with reading-noise replicas so the ridge sees the noise instead of memorising 24 exact rows; LOO 0.0246.0.0246$7.79
  7. v5The agent raised the noise augmentation to forty-eight copies per device0.0232$8.18
  8. v6The agent cleaned up the code and checked penalty robustness0.0232$8.62
  9. v7The agent returned plain Python floats from predict0.0232$9.04
  10. blendThe agent blended the ridge with the compact model directly0.058$9.12
  11. exp1The agent fitted a compact SRH plus trap-assisted-tunneling model to the window0.63$9.12
  12. exp11-12The agent added a saturating steep component to the compact model0.42$9.12
  13. exp13The agent switched to ridge regression from the raw window logs0.036$9.12
  14. exp14The agent tried feature engineering, kernel ridge and PCA targets0.036$9.12
  15. exp15The agent stacked raw window features with compact-model extreme predictions0.033$9.12
  16. exp16The agent added a second compact-model feature over a kappa grid0.0276$9.12
  17. exp17-18The agent added a DEVSIM SRH library feature0.0308$9.12
  18. exp19The agent added fitted-parameter diagnostic features0.046$9.12
  19. exp2The agent gridded doping and kappa with an NNLS window fit0.42$9.12
  20. exp20The agent added more compact-model variants for diversity0.0275$9.12
  21. exp21The agent added a free-exponent extrapolation feature0.0258$9.12
  22. exp22The agent augmented the training matrix with noise-perturbed device copies0.0246$9.12
  23. exp3-10The agent probed DEVSIM simulations for the steep window slopesim can't match shape$9.12
  24. smoothThe agent smoothed the predictions across voltage after the fit0.0246$9.12
  25. stressThe agent stress-tested the model by shifting the training corneraug 0.098 vs 0.168$9.12

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (Kimi K3)0.0430880.4969
34 minWall clock
$7.12Spend
10.9MTokens
9Versions, 8 kept

On the visible set

0 0.075 0.150 0.225 0.300 0 15 30 45 60 Agent step Log10 current error ↓ v0 v1 v2 v3 v4 v5 v6 v7 v8
keptrolled backsubmitted
  1. v0The agent inherited the window log-trend with voltage clamped at 3.6 V0.3313
  2. v1The agent rebuilt extrapolation on an ni-scaled temperature lawFit a physical temperature and voltage law and set its scale from the deepest, hottest reverse point instead of clamping.0.0461
  3. v2The agent added a soft-breakdown term for avalanche-prone devicesWindow signatures proxy high doping, so the avalanche-prone corner gets a second branch gated on them.0.0327
  4. v3The agent retuned the voltage exponent and breakdown floor jointly0.0316
  5. v4The agent estimated activation only from the deep reverse bias points0.0294
  6. v5The agent nudged activation up when forward ideality was low0.0276
  7. v6The agent steepened the avalanche term's gap dependenceGive the breakdown term dynamic range across the forward-level gap; the 3-device hard slice went 0.0302 to 0.0193.0.0264
  8. v7The agent added 300 K deep-reverse points to the scale median0.0258
  9. v8The agent floored the activation exponent at 0.980.0252

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (Grok 4.6)0.0380250.5248
43 minWall clock
$1.30Spend
8.8MTokens
2Versions, 1 kept

On the visible set

0.075 0.150 0.225 0.300 0 20 40 60 Agent step Log10 current error ↓ v0 v1
keptrolled backsubmitted
  1. v0The agent inherited the ridge window fit clamped at the deepest bias0.331339 min · $0.97
  2. v1The agent fitted an empirical temperature and voltage extrapolation law0.046242 min · $1.20

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (DeepSeek V4 Pro)0.0651210.4046
112 minWall clock
$11.10Spend
20.7MTokens
7Versions, 3 kept

On the visible set

0 0.15 0.30 0.45 0.60 0.75 0 2 3 4 6 Agent step Log10 current error ↓ v1 v2 v3 v4 v5 v5(h2-shape)
keptrolled backsubmitted
  1. v1The agent inherited the clamped window log-space ridge baseline0.331364 min · $5.15
  2. v2The agent rewrote the solver as anchored physics extrapolation with breakdown multiplier0.048474 min · $6.29
  3. v3The agent split the window current into generation, diffusion and ohmic components0.69989 min · $8.49
  4. v4The agent split the anchor into generation and diffusion fractions0.28189 min · $8.49
  5. v5The agent set breakdown voltage in two tiers from forward saturation current0.0475101 min · $10.26
  6. v5(h2-shape)The agent tried a different voltage shape for the extreme branch0.065$10.68
  7. BV-robustThe agent swept the breakdown voltage for a hard-corner-robust valueholdout 0.064-0.070$10.68

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (Qwen3.8 Max)0.0767410.3679
82 minWall clock
$5.96Spend
19.1MTokens
6Versions, 4 kept

On the visible set

0 0.075 0.150 0.225 0.300 0 2 3 4 Agent step Log10 current error ↓ v1 v2 v3 v4 v5
keptrolled backsubmitted
  1. v1The agent inherited the window log-trend fit clamped at the window edge0.331362 min · $3.06
  2. v2The agent modeled the current as a separable temperature-and-voltage surface0.041464 min · $3.32
  3. v3The agent added a quadratic term for voltage-shape outlier devices0.032368 min · $3.86
  4. v4The agent replaced the shared thermal gap with twelve per-point ridge fits0.030775 min · $4.88
  5. v5The agent added the window's own non-separability as a fifth feature0.029381 min · $5.79
  6. -The agent tried extra window-slope features in the gap modelno gain, 3 protocols$5.87

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (GLM 5.3)0.0526610.4521
20 minWall clock
$4.53Spend
4.6MTokens
8Versions, 4 kept

On the visible set

0 0.075 0.150 0.225 0.300 0 15 30 45 60 Agent step Log10 current error ↓ v0 v1 v2 v3 v4 v5 v6 v7
keptrolled backsubmitted
  1. v0The agent inherited the baseline window trend extrapolator0.33131 min · $0.13
  2. v1The agent added a learned residual correction on the extreme grid0.07152 min · $0.42
  3. v2The agent embedded a KNN-plus-ridge residual calibrator trained on practice devices0.02410 min · $1.82
  4. v3The agent tested RBF kernel-ridge residual regression and found it unstable0.027612 min · $2.12
  5. v4The agent made the blend adapt to nearest-neighbour feature distance0.02314 min · $2.71
  6. v5The agent weighted the feature groups in the KNN distance0.021716 min · $3.30
  7. v6The agent tried larger k and new adaptive blend thresholds0.020717 min · $3.75
  8. v7The agent tried ensembles of KNN, ridge and constant residual models0.020719 min · $4.23

On the hidden set

Original metricNormalised score
Starter0.3980960.0
Frontier-calibrated reference0.0271460.6
Upper0.01.0
This run (GPT-5.5)0.0445440.4894

Leaderboard

Where each run landed on the sealed held-out set, on the same normalised-score scale as the anchors above.

0 0.3 0.6 1.0 1 Grok 4.6 grok · xhigh 0.525 2 Kimi K3 kimi cli · max 0.497 3 GPT-5.5 codex · xhigh 0.489 4 Opus 5 claude code · max 0.478 5 Gemini 3.7 Flash antigravity · high 0.461 6 GLM 5.3 claude code · max 0.452 7 GPT-5.6-sol codex · max 0.452 8 DeepSeek V4 Pro claude code · max 0.405 9 Qwen3.8 Max qwen coder · xhigh 0.368