Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
Operational workflow for hard integer-programming optimization tasks: selecting an installed solver, preserving solver/incumbent certificates, extracting feasible schedules, recomputing metrics from final outputs, and writing consistent reports. Use when a task requires a MIP, solver status, objective value, bound, gap, formulation write-up, or benchmark output files.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
A valid optimization submission has one final solution, one set of recomputed metrics, and one truthful solver report. The solver objective, written output, metrics file, and explanation must all refer to the same final solution.
Feasible does not mean optimal. A time-limited MIP solve may return a useful incumbent without proving optimality. Report that distinction clearly.
For Python optimization tasks, test installed solver packages before concluding that no solver is available. Prefer a callable installed solver over writing a model for an unavailable package or falling back to a heuristic-only method.
PySCIPOpt is a good first check for binary and mixed-integer models:
try:
from pyscipopt import Model, quicksum
SCIP_AVAILABLE = True
except Exception as exc:
SCIP_AVAILABLE = False
SCIP_IMPORT_ERROR = exc
If PySCIPOpt imports successfully, use it unless the task or environment clearly provides a better solver. Do not skip it because other packages or command-line binaries are unavailable.
If the task requires an integer program or optimization solver, do not submit a pure greedy search, local search, swap heuristic, or advisory script as the main method unless the task explicitly allows that substitution.
from pyscipopt import Model, quicksum
model = Model("mip_model")
model.setParam("limits/time", 600.0)
# create binary/integer variables
# add hard constraints
# build named objective components
model.setObjective(objective_expr, "minimize")
model.optimize()
status = str(model.getStatus()).lower()
if model.getNSols() == 0:
raise RuntimeError(f"No feasible solution found; solver status={status}")
sol = model.getBestSol()
incumbent_objective = float(model.getObjVal())
try:
best_bound = float(model.getDualbound())
except Exception:
best_bound = None
try:
mip_gap = float(model.getGap())
except Exception:
mip_gap = None
Use model.getSolVal(sol, var) or model.getVal(var) to read values. Do not
call unsupported variable methods such as var.getVal().
Record solver information whenever the output format allows it:
Do not claim “optimal” unless the solver status or gap certifies it. Statuses such as time limit, node limit, solution limit, or gap limit usually mean the submitted solution is an incumbent, not a proof of global optimality.
For minimization, a useful manual check is:
absolute_gap = incumbent_objective - best_bound
relative_gap = absolute_gap / max(1.0, abs(incumbent_objective))
Prefer the solver-provided gap when available, because solvers may use their own safe conventions for bounds and tolerances.
After solving, extract the final output from the selected incumbent solution and validate the extracted artifact directly.
sol = model.getBestSol()
for binary_var in binary_vars:
value = model.getSolVal(sol, binary_var)
if value > 0.5:
# include the corresponding assignment, route arc, sequence position, etc.
pass
Validate hard rules from the output itself, not only from solver feasibility:
If extraction fails, fix the model or extraction logic before writing output files.
Build a pure evaluator that depends only on the input data and the final output, not on solver variables. Use it to write the metrics file and to check the solver objective.
def evaluate_output(final_output, input_data):
components = {}
components["component_a"] = compute_component_a(final_output, input_data)
components["component_b"] = compute_component_b(final_output, input_data)
components["objective"] = weighted_sum(components)
return components
final_output = extract_solution(model, sol)
validate_hard_rules(final_output, input_data)
metrics = evaluate_output(final_output, input_data)
If the solved model is intended to match the official objective, compare the independent evaluator with the solver objective:
if abs(metrics["objective"] - incumbent_objective) > 1e-6:
raise AssertionError(
"solver objective and independently recomputed objective differ; "
"check the linearization, extraction, weights, and reported output"
)
Write reported metrics from the independent evaluator. Do not mix solver expressions from one solution with a schedule, route, or assignment from another solution.
For sequence, route, timetable, or assignment tasks, make the evaluator mirror the official objective semantics, not a simplified human interpretation:
Never write metrics.json before reloading and evaluating the exact artifact that will
be submitted.
Minimal final-artifact audit template:
def load_final_output(path):
# Parse the exact CSV/JSON/text file that will be submitted.
...
def evaluate_output(final_output, input_data):
# Pure function: no solver variables, no cached incumbent state.
...
final_output = load_final_output(output_path)
validate_hard_rules(final_output, input_data)
metrics = evaluate_output(final_output, input_data)
with open(metrics_path, "w") as f:
json.dump(metrics, f, indent=2)
roundtrip = load_final_output(output_path)
roundtrip_metrics = evaluate_output(roundtrip, input_data)
assert roundtrip_metrics == metrics
If post-processing is used after the solver, disclose it and recompute all metrics from the post-processed output. Do not reuse the original solver gap or optimality certificate for a modified solution unless the modification is part of a certified solver process.
For solver-required tasks, prefer the solver-extracted incumbent as the final output. Use heuristics only for warm starts, incumbent construction, or allowed improvement steps, and keep the final report honest about what is certified.
When the task asks for a formulation or method file, make it specific enough to show that an integer program was actually built and solved. Include:
A short statement such as “I solved a MIP” is usually not enough for a benchmark that checks method quality.
Clearly specify minimization/maximization in formulation files, and avoid only saying "best", "optimal", or "lower score" without the word "minimize" or "minimization".
For permutation or assignment schedules, include these exact concepts in plain language:
This wording is not task-specific; it makes the mathematical contract auditable by both humans and simple benchmark checks.
Use this order before final submission:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching `acopf-math-model.md` and MATPOWER branch fields. Use when computing branch flows in either direction, aggregating bus injections for nodal balance, checking MVA (rateA) limits, computing branch loading %, or debugging sign/units issues in AC power flow.
日本語の概要は準備中です。原文の説明を表示しています。
Redact text from PDF documents for blind review anonymization
日本語の概要は準備中です。原文の説明を表示しています。
Use when checking simplified ADA-derived plan-view bathroom accessibility constraints such as turning space, door clear width, toilet centerline, grab bars, and lavatory knee/toe clearance.
日本語の概要は準備中です。原文の説明を表示しています。
Analyze failed GitHub Action jobs for a pull request.
日本語の概要は準備中です。原文の説明を表示しています。
Use when extracting plan-view architectural geometry from DXF files with semantic CAD layers, especially when outputs must normalize rooms, doors, fixtures, clearances, and grab bars into machine-checkable JSON.
日本語の概要は準備中です。原文の説明を表示しています。