{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":30,"y":30,"width":475.19572000000005,"height":68,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":50,"y":52.3,"width":435.19572000000005,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"Pool Matching — Multiple Riders in One Vehicle","originalText":"Pool Matching — Multiple Riders in One Vehicle","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":30,"y":123,"width":606.88588,"height":68,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":50,"y":145.3,"width":566.88588,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"Challenge: Match 2-3 riders with similar routes into one car","originalText":"Challenge: Match 2-3 riders with similar routes into one car","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":30,"y":216,"width":627.96928,"height":246.6,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":50,"y":234,"width":587.96928,"height":210.6,"fontSize":18,"fontFamily":1,"text":"Algorithm:\n1. Rider A requests Pool from point A1 to A2\n2. System finds drivers + other Pool requests near A1\n3. For each potential co-rider (Rider B: B1 → B2):\ncompute detour_ratio = (A1→B1→A2 + B1→B2) / (A1→A2 + B1→B2)\n→ Acceptable if detour_ratio < 1.4 (max 40% longer)\n4. Match Rider A + Rider B with same driver\n5. Navigation: A1 → B1 (pickup B) → A2 (dropoff A) → B2\n(order optimized for total distance)","originalText":"Algorithm:\n1. Rider A requests Pool from point A1 to A2\n2. System finds drivers + other Pool requests near A1\n3. For each potential co-rider (Rider B: B1 → B2):\ncompute detour_ratio = (A1→B1→A2 + B1→B2) / (A1→A2 + B1→B2)\n→ Acceptable if detour_ratio < 1.4 (max 40% longer)\n4. Match Rider A + Rider B with same driver\n5. Navigation: A1 → B1 (pickup B) → A2 (dropoff A) → B2\n(order optimized for total distance)","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":30,"y":487.6,"width":638.84488,"height":129.60000000000002,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":50,"y":505.6,"width":598.84488,"height":93.60000000000001,"fontSize":18,"fontFamily":1,"text":"Pricing:\n• Each rider pays ~60-70% of solo fare (discount for sharing)\n• Driver paid based on total distance/time (more than solo)\n• Platform margin per rider is similar to solo rides","originalText":"Pricing:\n• Each rider pays ~60-70% of solo fare (discount for sharing)\n• Driver paid based on total distance/time (more than solo)\n• Platform margin per rider is similar to solo rides","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-9"}],"updated":0,"link":null,"locked":false,"id":"shape-8","type":"rectangle","seed":625,"x":30,"y":642.2,"width":639.85612,"height":153,"customData":{"revealStep":5}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-9","type":"text","seed":698,"x":50,"y":660.2,"width":599.85612,"height":117,"fontSize":18,"fontFamily":1,"text":"Real-time re-matching:\n• While driver en route to pickup A, system continues looking\nfor compatible co-riders\n• Can add co-rider even after trip starts (if route compatible)\n• Notification: \"We found a rider along your route\"","originalText":"Real-time re-matching:\n• While driver en route to pickup A, system continues looking\nfor compatible co-riders\n• Can add co-rider even after trip starts (if route compatible)\n• Notification: \"We found a rider along your route\"","textAlign":"left","verticalAlign":"middle","containerId":"shape-8","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":5}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-6"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-11"}],"updated":0,"link":null,"locked":false,"id":"shape-10","type":"rectangle","seed":771,"x":30,"y":820.2,"width":574.6979200000001,"height":129.60000000000002,"customData":{"revealStep":6}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-6"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-11","type":"text","seed":844,"x":50,"y":838.2,"width":534.6979200000001,"height":93.60000000000001,"fontSize":18,"fontFamily":1,"text":"Complexity:\n• N riders → N! possible orderings → NP-hard for optimal\n• Practical: limit to 2-3 riders per vehicle\n• Greedy algorithm with detour constraint = good enough","originalText":"Complexity:\n• N riders → N! possible orderings → NP-hard for optimal\n• Practical: limit to 2-3 riders per vehicle\n• Greedy algorithm with detour constraint = good enough","textAlign":"left","verticalAlign":"middle","containerId":"shape-10","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":6}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}