SVG icons on task cards, remove em-dashes from titles
Browse files
app.py
CHANGED
|
@@ -443,9 +443,14 @@ T1, T2, T3, T4, T5, T6 = st.tabs([
|
|
| 443 |
with T1:
|
| 444 |
st.markdown("""
|
| 445 |
<div class='task-card'>
|
| 446 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 447 |
<div>
|
| 448 |
-
<div class='task-title'>Three agents, one delivery map
|
| 449 |
<div class='task-desc'>Reactive rushes to the nearest stop. Goal-Based plans the full route before
|
| 450 |
leaving using 2-opt optimisation. Utility-Based scores stops by urgency Γ· distance and chases
|
| 451 |
high-priority ones first. Same 9-stop map, very different outcomes.
|
|
@@ -684,9 +689,14 @@ with T1:
|
|
| 684 |
with T2:
|
| 685 |
st.markdown("""
|
| 686 |
<div class='task-card'>
|
| 687 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 688 |
<div>
|
| 689 |
-
<div class='task-title'>The model was being unfair
|
| 690 |
<div class='task-desc'>Not one rural customer made it to High Value. Zero. The K-Means clustering
|
| 691 |
was biased from the start because EcoCart launched in cities first. This task measures the bias
|
| 692 |
using <b>Disparate Impact</b> (threshold β₯ 0.80) and applies a three-step fix: oversample rural
|
|
@@ -745,9 +755,14 @@ with T2:
|
|
| 745 |
with T3:
|
| 746 |
st.markdown("""
|
| 747 |
<div class='task-card'>
|
| 748 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 749 |
<div>
|
| 750 |
-
<div class='task-title'>Four algorithms, one delivery network
|
| 751 |
<div class='task-desc'>BFS, DFS, A*, and IDA* all search for the shortest route on a
|
| 752 |
custom-built 20-node urban/rural network. Some find the optimal path, one doesn't.
|
| 753 |
The best does it with the fewest node expansions. Press <b>Run</b> for full results,
|
|
@@ -1045,7 +1060,12 @@ with T3:
|
|
| 1045 |
with T4:
|
| 1046 |
st.markdown("""
|
| 1047 |
<div class='task-card'>
|
| 1048 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1049 |
<div>
|
| 1050 |
<div class='task-title'>Same shortest path, completely different strategies</div>
|
| 1051 |
<div class='task-desc'>A* remembers every node it visits β fast, but memory grows with the network.
|
|
@@ -1112,7 +1132,12 @@ with T4:
|
|
| 1112 |
with T5:
|
| 1113 |
st.markdown("""
|
| 1114 |
<div class='task-card'>
|
| 1115 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1116 |
<div>
|
| 1117 |
<div class='task-title'>Can a simple model beat 200 decision trees?</div>
|
| 1118 |
<div class='task-desc'>Linear Regression (fast, transparent) goes head-to-head against
|
|
@@ -1180,7 +1205,13 @@ with T5:
|
|
| 1180 |
with T6:
|
| 1181 |
st.markdown("""
|
| 1182 |
<div class='task-card'>
|
| 1183 |
-
<div class='task-icon' style='background:#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1184 |
<div>
|
| 1185 |
<div class='task-title'>What does all of this actually save the business?</div>
|
| 1186 |
<div class='task-desc'>This tab turns the technical results into a live financial model β
|
|
|
|
| 443 |
with T1:
|
| 444 |
st.markdown("""
|
| 445 |
<div class='task-card'>
|
| 446 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#4f46e5,#6366f1);box-shadow:0 6px 20px rgba(99,102,241,.35);'>
|
| 447 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 448 |
+
<rect x="9" y="9" width="6" height="6"/><rect x="5" y="5" width="14" height="14" rx="2"/>
|
| 449 |
+
<path d="M9 1v4M15 1v4M9 19v4M15 19v4M1 9h4M1 15h4M19 9h4M19 15h4"/>
|
| 450 |
+
</svg>
|
| 451 |
+
</div>
|
| 452 |
<div>
|
| 453 |
+
<div class='task-title'>Three agents, one delivery map. Completely different decisions.</div>
|
| 454 |
<div class='task-desc'>Reactive rushes to the nearest stop. Goal-Based plans the full route before
|
| 455 |
leaving using 2-opt optimisation. Utility-Based scores stops by urgency Γ· distance and chases
|
| 456 |
high-priority ones first. Same 9-stop map, very different outcomes.
|
|
|
|
| 689 |
with T2:
|
| 690 |
st.markdown("""
|
| 691 |
<div class='task-card'>
|
| 692 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#d97706,#f59e0b);box-shadow:0 6px 20px rgba(217,119,6,.35);'>
|
| 693 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 694 |
+
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
| 695 |
+
<polyline points="9 12 11 14 15 10"/>
|
| 696 |
+
</svg>
|
| 697 |
+
</div>
|
| 698 |
<div>
|
| 699 |
+
<div class='task-title'>The model was being unfair. Nobody noticed until now.</div>
|
| 700 |
<div class='task-desc'>Not one rural customer made it to High Value. Zero. The K-Means clustering
|
| 701 |
was biased from the start because EcoCart launched in cities first. This task measures the bias
|
| 702 |
using <b>Disparate Impact</b> (threshold β₯ 0.80) and applies a three-step fix: oversample rural
|
|
|
|
| 755 |
with T3:
|
| 756 |
st.markdown("""
|
| 757 |
<div class='task-card'>
|
| 758 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#0284c7,#38bdf8);box-shadow:0 6px 20px rgba(2,132,199,.35);'>
|
| 759 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 760 |
+
<polygon points="1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6"/>
|
| 761 |
+
<line x1="8" y1="2" x2="8" y2="18"/><line x1="16" y1="6" x2="16" y2="22"/>
|
| 762 |
+
</svg>
|
| 763 |
+
</div>
|
| 764 |
<div>
|
| 765 |
+
<div class='task-title'>Four algorithms, one delivery network. Which one wins?</div>
|
| 766 |
<div class='task-desc'>BFS, DFS, A*, and IDA* all search for the shortest route on a
|
| 767 |
custom-built 20-node urban/rural network. Some find the optimal path, one doesn't.
|
| 768 |
The best does it with the fewest node expansions. Press <b>Run</b> for full results,
|
|
|
|
| 1060 |
with T4:
|
| 1061 |
st.markdown("""
|
| 1062 |
<div class='task-card'>
|
| 1063 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#7c3aed,#a78bfa);box-shadow:0 6px 20px rgba(124,58,237,.35);'>
|
| 1064 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 1065 |
+
<line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/>
|
| 1066 |
+
<line x1="6" y1="20" x2="6" y2="14"/><line x1="2" y1="20" x2="22" y2="20"/>
|
| 1067 |
+
</svg>
|
| 1068 |
+
</div>
|
| 1069 |
<div>
|
| 1070 |
<div class='task-title'>Same shortest path, completely different strategies</div>
|
| 1071 |
<div class='task-desc'>A* remembers every node it visits β fast, but memory grows with the network.
|
|
|
|
| 1132 |
with T5:
|
| 1133 |
st.markdown("""
|
| 1134 |
<div class='task-card'>
|
| 1135 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#059669,#34d399);box-shadow:0 6px 20px rgba(5,150,105,.35);'>
|
| 1136 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 1137 |
+
<polyline points="23 6 13.5 15.5 8.5 10.5 1 18"/>
|
| 1138 |
+
<polyline points="17 6 23 6 23 12"/>
|
| 1139 |
+
</svg>
|
| 1140 |
+
</div>
|
| 1141 |
<div>
|
| 1142 |
<div class='task-title'>Can a simple model beat 200 decision trees?</div>
|
| 1143 |
<div class='task-desc'>Linear Regression (fast, transparent) goes head-to-head against
|
|
|
|
| 1205 |
with T6:
|
| 1206 |
st.markdown("""
|
| 1207 |
<div class='task-card'>
|
| 1208 |
+
<div class='task-icon' style='background:linear-gradient(135deg,#ea580c,#fb923c);box-shadow:0 6px 20px rgba(234,88,12,.35);'>
|
| 1209 |
+
<svg width="24" height="24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
|
| 1210 |
+
<rect x="2" y="7" width="20" height="14" rx="2"/>
|
| 1211 |
+
<path d="M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2"/>
|
| 1212 |
+
<line x1="12" y1="12" x2="12" y2="16"/><line x1="10" y1="14" x2="14" y2="14"/>
|
| 1213 |
+
</svg>
|
| 1214 |
+
</div>
|
| 1215 |
<div>
|
| 1216 |
<div class='task-title'>What does all of this actually save the business?</div>
|
| 1217 |
<div class='task-desc'>This tab turns the technical results into a live financial model β
|