Resource constraint is violated by ~0.16 at the terminal period of a transition path

Đang mở
#1,216 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
numpy, python
Lĩnh vực
backend, data

Hướng nghiên cứu

Start by tracing the terminal-period calculation in resource_constraint_error and the TPI boundary conditions mentioned in the issue; compare the final period with interior periods using the available TPI pickles or a period-by-industry profile. Determine whether the discrepancy comes from the spending rule, terminal alpha treatment, capital-good closure, or truncation, then document the cause or propose a supported terminal-period exemption.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

The resource constraint is violated by ~0.16 at the final period of a transition path, and the only available remedy is to raise RC_TPI far past its own schema maximum.

Downstream, OG-UK sets p.RC_TPI = 0.2 for exactly this reason, with an in-code comment attributing it to "a known boundary-condition discontinuity in fiscal.py". RC_TPI's paramtools validator is range: {min: 1e-13, max: 0.01}, so 0.2 is 20x the declared maximum and only takes effect by direct attribute assignment after update_specifications.

Measured

Benchmarking OG-UK at production shape (S=80, J=7, T=60, M=1, GS tax functions, ogcore 0.17.0), across four runs — baseline and a CIT reform, each under both TPI_outer_method settings:

baseline  picard    max_RC_error = 0.158020
baseline  anderson  max_RC_error = 0.158019
reform    picard    max_RC_error = 0.160140
reform    anderson  max_RC_error = 0.160146

Identical to six significant figures across solvers, so this is a property of the model at the path boundary, not a solver artifact. Interior periods are reported as well within 1e-4.

Why it is worth fixing rather than tolerating

  • 0.16 is ~1,600x the nominal RC_TPI default of 1e-4, so the transition path's central accounting identity is unverified at its endpoint.
  • Because the check is np.any against a single scalar (#1210), accommodating the terminal period waives the interior too. #1210 proposes separating those; that makes the failure visible but does not remove it.
  • Any country package tracing a full transition inherits the same problem and will reach for the same out-of-contract RC_TPI.

What would help

Either a diagnosis of the terminal discontinuity — is it the tG2 spending rule, the terminal alpha_G/alpha_I treatment, the capital-good closure, or the truncation itself? — or, if it is inherent to truncating at T, an explicit statement to that effect plus a supported way to exempt the terminal period, rather than every downstream model rediscovering the 0.2 workaround.

Happy to help narrow it down if there is a view on the likeliest culprit. I have the four TPI pickles above and can profile resource_constraint_error by period and industry.

Related: #1210 (the check cannot exempt the terminal period), PSLmodels/OG-UK#72 and OG-UK#75 (the downstream workaround and an interim guard).

Ngôn ngữ chính
Python
Star
85
Fork
153
Merge trung bình
1 ngày 19 giờ
Pull request đã merge (30 ngày)
22

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của PSLmodels/OG-Core

Tất cả issue của PSLmodels/OG-Core

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.