From the terminal, use the following command to inspect the weights before running the simulation. 



Changing s weights allow us to perform sensitivity analysis from both Firm and Workers side.  



******Change firm side WFH strategy***********
grep -n "weights =\|available_weights" firmslr.py 

Classes affected : (apply_strategy(), choose_best_strategy())



*******Change % jobs ads visibility**************
grep -n "assign_random_jobs_to_workers\|visibility\|random.uniform\|random.sample\|initial_jobs_to_consider" job_boardslr.py
*******Change worker side wage expectation multiplier*******

grep -n "current_wage \\*\\|best_offer.*wage.*\\*" workerslr.py (Terminal Command)

Classes affected  (initial constructor, finalize_decision(), receive_job_ads ())

*******Check maximum number of applications x cycle*******
grep -n "max_applications" workerslr.py

*******To run in another terminal to check how many cycles have run:******* 
Because the simulation does not generate visible output while running ( around. 1 hour for 100 runs x 8 cycles each)
we advise to open a second terminal and copy and paste the following command: 


python3 - <<'PY'
from pathlib import Path
import re

log_path = Path("output/economy/economy.txt")

if not log_path.exists():
    print(f"Log file not found: {log_path}")
    raise SystemExit

cycle_counts = {}

for line in log_path.read_text(errors="ignore").splitlines():
    m = re.search(r"Cycle (\d+) completed", line)
    if m:
        cycle = int(m.group(1))
        cycle_counts[cycle] = cycle_counts.get(cycle, 0) + 1

print(f"Log path: {log_path}")

if not cycle_counts:
    print("No completed cycles found yet.")
    raise SystemExit

for cycle in sorted(cycle_counts):
    print(f"Cycle {cycle} completed lines: {cycle_counts[cycle]}")

cycle8_lines = cycle_counts.get(8, 0)
print()
print(f"Cycle 8 completed lines: {cycle8_lines}")
print(f"Estimated completed Monte Carlo runs: {cycle8_lines // 2}/100")
PY
