يتم إعطاؤك مقتطف رمز يتفاعل مع فئة التحسين `opt`. يحتوي مقتطف الشفرة على قاموس يحتوي على ثلاثة أزواج من المفاتيح والقيمة. مهمتك هي كتابة دالة تأخذ الكائن "opt" كمدخل وترجع القاموس بالقيم المناسبة.

المفاتيح الموجودة في القاموس هي كما يلي:
- `"fval"`: يمثل القيمة النهائية التي تم الحصول عليها بعد التحسين.
- `"num_candidate_solutions"`: يمثل عدد الحلول المرشحة التي تم تقييمها أثناء التحسين.
- `"num_elements_stored"`: يمثل عدد العناصر المخزنة في فئة التحسين.

تحتاج إلى تنفيذ الدالة `get_optimization_stats(opt)` التي تأخذ كائن `opt` كمدخل وترجع القاموس بالمفاتيح التالية والقيم المقابلة لها.

** التوقيع الوظيفي **
`def get_optimization_stats(opt: Optimization) -> Dict[str, int]:`

**مدخل**
- `opt` (1 <= `opt.get_num_elements_stored()` <= 10^5): مثيل لفئة التحسين.

**انتاج**
- قاموس يحتوي على ثلاثة أزواج من القيمة الرئيسية:
  - `"fval"`: القيمة النهائية التي تم الحصول عليها بعد التحسين (0 <= `fval` <= 10^6).
  - `"num_candidate_solutions"`: عدد الحلول المرشحة التي تم تقييمها أثناء التحسين (0 <= `num_candidate_solutions` <= 10^6).
  - `"num_elements_stored"`: عدد العناصر المخزنة في فئة التحسين (0 <= `num_elements_stored` <= 10^6).

**مثال**

```
اختيار = التحسين ()

opt.set_fval(100)
opt.set_num_candidate_solutions(500)
opt.set_num_elements_stored(1000)

print(get_optimization_stats(opt)) # {"fval": 100، "num_candidate_solutions": 500، "num_elements_stored": 1000}
```

**ملحوظة**
في المثال أعلاه، يحتوي كائن `opt` على قيمة نهائية تبلغ `100`، وتم تقييم `500` من الحلول المرشحة أثناء التحسين، وعدد العناصر المخزنة في فئة التحسين هو `1000`.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}