diff --git a/research/activity42-game-theory-201.yaml b/research/activity42-game-theory-201.yaml new file mode 100644 index 0000000..74f2308 --- /dev/null +++ b/research/activity42-game-theory-201.yaml @@ -0,0 +1,134 @@ +default_max_attempts_per_step: 3 +classifier_model: "MODEL_1" +feedback_model: "MODEL_1" +sections: + - section_id: introduction + title: Welcome to Game Theory 201 + steps: + - step_id: welcome + title: Beyond Pure Strategies + content_blocks: + - "# Game Theory 201: Mixed Strategies & Repeated Games 🎲🔄" + - "**Building on Game Theory 101!**" + - "" + - "**You'll learn:**" + - "✓ Mixed strategies (randomization)" + - "✓ When and why to randomize" + - "✓ Repeated games (shadow of the future)" + - "✓ How cooperation emerges" + - "✓ Tit-for-Tat and winning strategies" + question: Ready to explore more advanced strategic concepts? + tokens_for_ai: Accept positive as 'ready', language as 'set_language', else 'off_topic' + buckets: [ready, set_language, off_topic] + transitions: + ready: + next_section_and_step: mixed_strategies:step_1 + set_language: + metadata_add: {language: "the-users-response"} + counts_as_attempt: false + next_section_and_step: introduction:welcome + off_topic: + counts_as_attempt: false + next_section_and_step: introduction:welcome + + - section_id: mixed_strategies + title: Mixed Strategies + steps: + - step_id: step_1 + title: Randomization as Strategy + content_blocks: + - "## Mixed Strategies: The Power of Unpredictability 🎲" + - "" + - "**Pure vs Mixed Strategies:**" + - "- Pure: Always play the same action" + - "- Mixed: Randomize between actions with specific probabilities" + - "" + - "**Rock-Paper-Scissors:**" + - "No pure strategy works - opponent can exploit patterns!" + - "Solution: Randomize equally (1/3, 1/3, 1/3)" + - "" + - "**Penalty Kicks in Soccer:**" + - "- Kicker: Left or Right?" + - "- Goalie: Dive Left or Right?" + - "- Must be unpredictable!" + - "- Data shows pros randomize ~50/50" + - "" + - "**When to use mixed strategies:**" + - "- No dominant pure strategy" + - "- Opponent can exploit predictability" + - "- Matching Pennies, Hide and Seek, Security games" + question: In Rock-Paper-Scissors, why can't you always play Rock? What happens if you're predictable? + tokens_for_ai: | + Should recognize: predictability allows exploitation. + If always Rock, opponent plays Paper and wins. + Categorize: understands_exploitation, recognizes_problem, vague, set_language, off_topic + buckets: [understands_exploitation, recognizes_problem, vague, set_language, off_topic] + transitions: + understands_exploitation: + ai_feedback: {tokens_for_ai: "Perfect! Predictability = exploitation. Opponent plays Paper, you lose. Randomization prevents exploitation!"} + metadata_add: {score: "n+2"} + next_section_and_step: repeated_games:step_1 + recognizes_problem: + ai_feedback: {tokens_for_ai: "Right! If you always play Rock, smart opponent plays Paper every time. Randomization is the solution!"} + metadata_add: {score: "n+1"} + next_section_and_step: repeated_games:step_1 + vague: + ai_feedback: {tokens_for_ai: "If you always play Rock, opponent learns and always plays Paper. You lose every time! Must randomize."} + next_section_and_step: repeated_games:step_1 + set_language: + metadata_add: {language: "the-users-response"} + counts_as_attempt: false + next_section_and_step: mixed_strategies:step_1 + off_topic: + next_section_and_step: mixed_strategies:step_1 + + - section_id: repeated_games + title: Repeated Games + steps: + - step_id: step_1 + title: The Shadow of the Future + content_blocks: + - "## Repeated Games: When Tomorrow Matters 🔄" + - "" + - "**One-shot vs Repeated:**" + - "- One-shot PD: Defect dominates" + - "- Repeated PD: Cooperation can emerge!" + - "" + - "**Why repetition changes everything:**" + - "- Reputation matters" + - "- Retaliation is possible" + - "- Future gains can outweigh immediate temptation" + - "" + - "**Tit-for-Tat Strategy:**" + - "1. Start with cooperation" + - "2. Then copy opponent's previous move" + - "- Nice (never defects first)" + - "- Retaliatory (punishes defection)" + - "- Forgiving (returns to cooperation)" + - "- Clear (easy to understand)" + - "" + - "**Axelrod's Tournament:**" + - "Tit-for-Tat won! Simplest, most effective." + - "Beat complex strategies through cooperation + accountability" + question: Why can cooperation emerge in repeated Prisoner's Dilemma but not in one-shot games? + tokens_for_ai: | + Key insight: future interactions create incentive to cooperate. + Fear of retaliation, value of reputation, shadow of future. + Categorize: excellent_understanding, identifies_repetition, partial, set_language, off_topic + buckets: [excellent_understanding, identifies_repetition, partial, set_language, off_topic] + transitions: + excellent_understanding: + ai_feedback: {tokens_for_ai: "Brilliant! Future interactions change incentives. Retaliation possible, reputation matters. Short-term gain < long-term cooperation!"} + metadata_add: {score: "n+2", activity_completed: "true"} + identifies_repetition: + ai_feedback: {tokens_for_ai: "Exactly! Repeated games allow punishment and reward. Cooperation becomes rational when future matters!"} + metadata_add: {score: "n+1", activity_completed: "true"} + partial: + ai_feedback: {tokens_for_ai: "Right direction! Key: future interactions create accountability. Can punish defectors, reward cooperators. Changes incentives!"} + metadata_add: {activity_completed: "true"} + set_language: + metadata_add: {language: "the-users-response"} + counts_as_attempt: false + next_section_and_step: repeated_games:step_1 + off_topic: + metadata_add: {activity_completed: "true"} diff --git a/research/activity43-game-theory-301.yaml b/research/activity43-game-theory-301.yaml new file mode 100644 index 0000000..653ac6c --- /dev/null +++ b/research/activity43-game-theory-301.yaml @@ -0,0 +1,65 @@ +default_max_attempts_per_step: 3 +sections: + - section_id: introduction + title: Game Theory 301 + steps: + - step_id: welcome + title: Cooperative Games + content_blocks: + - "# Game Theory 301: Cooperative Games & Coalitions 🤝" + - "**Beyond zero-sum thinking!**" + - "✓ Cooperative game theory" + - "✓ Coalition formation" + - "✓ Shapley value (fair division)" + - "✓ Core stability" + question: Ready to learn about cooperation and coalition building? + tokens_for_ai: Accept positive as 'ready', else 'off_topic' + buckets: [ready, set_language, off_topic] + transitions: + ready: {next_section_and_step: "coalitions:step_1"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + off_topic: {counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + + - section_id: coalitions + title: Coalition Formation + steps: + - step_id: step_1 + title: Coalition Building + content_blocks: + - "## Coalitions: Strength in Numbers 💪" + - "" + - "**Characteristic function form:**" + - "v(Coalition) = value coalition can guarantee" + - "" + - "**Example: Three companies**" + - "- Alone: A=$10M, B=$15M, C=$20M" + - "- A+B together: $30M" + - "- A+C together: $35M" + - "- B+C together: $40M" + - "- All three: $60M" + - "" + - "**Questions:**" + - "- Which coalition forms?" + - "- How to split the gains fairly?" + - "" + - "**Shapley Value:**" + - "Fair division based on marginal contributions" + - "Each player gets average of their marginal value across all orderings" + question: If three players create $60M together but would create $0 individually, how should they split the gains to be fair? + tokens_for_ai: | + Equal split ($20M each) is one fair answer. + Shapley value would calculate based on marginal contributions. + Categorize: says_equal, considers_contributions, unclear, set_language, off_topic + buckets: [says_equal, considers_contributions, unclear, set_language, off_topic] + transitions: + says_equal: + ai_feedback: {tokens_for_ai: "Equal split is fair! Each contributed equally to coalition. Shapley value would give $20M each too."} + metadata_add: {score: "n+2", activity_completed: "true"} + considers_contributions: + ai_feedback: {tokens_for_ai: "Good thinking about contributions! With symmetric players, equal split is the Shapley value."} + metadata_add: {score: "n+1", activity_completed: "true"} + unclear: + ai_feedback: {tokens_for_ai: "Fair approach: equal split since all contributed equally. Each gets $20M. This is the Shapley value!"} + metadata_add: {activity_completed: "true"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "coalitions:step_1"} + off_topic: {metadata_add: {activity_completed: "true"}} diff --git a/research/activity44-game-theory-401.yaml b/research/activity44-game-theory-401.yaml new file mode 100644 index 0000000..69c4a02 --- /dev/null +++ b/research/activity44-game-theory-401.yaml @@ -0,0 +1,71 @@ +default_max_attempts_per_step: 3 +sections: + - section_id: introduction + title: Game Theory 401 + steps: + - step_id: welcome + title: Information Games + content_blocks: + - "# Game Theory 401: Information Asymmetry 🔍" + - "**When players have different information!**" + - "✓ Signaling (revealing information)" + - "✓ Screening (eliciting information)" + - "✓ Adverse selection" + - "✓ Moral hazard" + question: Ready to explore strategic information problems? + tokens_for_ai: Accept positive as 'ready', else 'off_topic' + buckets: [ready, set_language, off_topic] + transitions: + ready: {next_section_and_step: "signaling:step_1"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + off_topic: {counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + + - section_id: signaling + title: Signaling & Screening + steps: + - step_id: step_1 + title: Credible Signals + content_blocks: + - "## Signaling: Credibly Revealing Information 📢" + - "" + - "**The problem:**" + - "You have valuable information others don't" + - "How to credibly communicate it?" + - "" + - "**Education as Signal:**" + - "- Degree signals ability/work ethic" + - "- Costly to obtain (time, money, effort)" + - "- Harder for low-ability workers" + - "- Separates high from low types" + - "" + - "**Key: Must be costly for low types!**" + - "Otherwise everyone signals, signal loses meaning" + - "" + - "**Other examples:**" + - "- Warranties (signal quality)" + - "- Money-back guarantees" + - "- Certifications" + - "- Peacock's tail (biological signaling)" + - "" + - "**Adverse Selection:**" + - "When information asymmetry leads to market failure" + - "Example: Used car market (lemons problem)" + question: Why must a signal be costly to be credible? What happens if it's cheap for everyone? + tokens_for_ai: | + Key insight: if signal is cheap for all types, everyone signals. + Signal loses informational value (pooling). + Must be differentially costly to separate types. + Categorize: excellent_understanding, understands_cost, partial, set_language, off_topic + buckets: [excellent_understanding, understands_cost, partial, set_language, off_topic] + transitions: + excellent_understanding: + ai_feedback: {tokens_for_ai: "Perfect! If everyone can signal cheaply, everyone does. Signal becomes meaningless. Must be differentially costly to separate types!"} + metadata_add: {score: "n+2", activity_completed: "true"} + understands_cost: + ai_feedback: {tokens_for_ai: "Exactly! Cheap signals lose meaning. Everyone would claim to be high quality. Cost creates separation!"} + metadata_add: {score: "n+1", activity_completed: "true"} + partial: + ai_feedback: {tokens_for_ai: "Right direction! If signal is free, everyone sends it. Becomes noise. Cost differentiates high from low quality!"} + metadata_add: {activity_completed: "true"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "signaling:step_1"} + off_topic: {metadata_add: {activity_completed: "true"}} diff --git a/research/activity45-game-theory-501.yaml b/research/activity45-game-theory-501.yaml new file mode 100644 index 0000000..fe7a48d --- /dev/null +++ b/research/activity45-game-theory-501.yaml @@ -0,0 +1,73 @@ +default_max_attempts_per_step: 3 +sections: + - section_id: introduction + title: Game Theory 501 + steps: + - step_id: welcome + title: Design the Game + content_blocks: + - "# Game Theory 501: Mechanism Design 🏗️" + - "**Reverse game theory: Design the game itself!**" + - "✓ Mechanism design (reverse game theory)" + - "✓ Auction theory" + - "✓ Voting theory" + - "✓ Incentive compatibility" + question: Ready to learn how to design strategic systems? + tokens_for_ai: Accept positive as 'ready', else 'off_topic' + buckets: [ready, set_language, off_topic] + transitions: + ready: {next_section_and_step: "mechanism_design:step_1"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + off_topic: {counts_as_attempt: false, next_section_and_step: "introduction:welcome"} + + - section_id: mechanism_design + title: Designing Strategic Systems + steps: + - step_id: step_1 + title: Incentive Engineering + content_blocks: + - "## Mechanism Design: Engineering Incentives 🎯" + - "" + - "**The challenge:**" + - "Design rules so self-interested players produce desired outcomes" + - "" + - "**Revelation Principle:**" + - "Focus on mechanisms where truth-telling is optimal" + - "'Incentive compatible' mechanisms" + - "" + - "**Vickrey Auction (2nd-price sealed-bid):**" + - "- Everyone submits sealed bid" + - "- Highest bidder wins" + - "- Pays 2nd-highest bid" + - "" + - "**Why brilliant:**" + - "- Dominant strategy: Bid your true value!" + - "- Overbidding risks paying too much" + - "- Underbidding risks losing when you'd profit" + - "- Truthful bidding is optimal" + - "" + - "**Applications:**" + - "- eBay (proxy bidding)" + - "- Google AdWords" + - "- Organ donation matching" + - "- Spectrum auctions" + question: In a Vickrey auction, why is bidding your true value the dominant strategy? + tokens_for_ai: | + Key insight: You pay 2nd price, not your bid. + Overbidding risks paying more than value. + Underbidding risks losing profitable wins. + True value bidding is optimal. + Categorize: excellent_explanation, understands_truthful, partial, set_language, off_topic + buckets: [excellent_explanation, understands_truthful, partial, set_language, off_topic] + transitions: + excellent_explanation: + ai_feedback: {tokens_for_ai: "Perfect! Since you pay 2nd price, not your bid, bidding true value is dominant. Can't improve by lying! This is mechanism design genius!"} + metadata_add: {score: "n+2", activity_completed: "true"} + understands_truthful: + ai_feedback: {tokens_for_ai: "Exactly! Paying 2nd price means truthful bidding is optimal. Over/under bidding can only hurt you. Brilliant design!"} + metadata_add: {score: "n+1", activity_completed: "true"} + partial: + ai_feedback: {tokens_for_ai: "Right idea! Key: you pay 2nd price. Bidding true value dominates - lying can't help, might hurt. This is mechanism design!"} + metadata_add: {activity_completed: "true"} + set_language: {metadata_add: {language: "the-users-response"}, counts_as_attempt: false, next_section_and_step: "mechanism_design:step_1"} + off_topic: {metadata_add: {activity_completed: "true"}}