חיזוי ביקוש ואיזון מחדש של צי שיתוף רכבים עם בינה מלאכותית

זמן השבתה של מכוניות בשעות עומס ועודף נסועה בין אזורים אוכלים את שולי הרווח של שיתוף רכבים. אנחנו מפתחים מערכות לחיזוי ביקוש ואיזון מחדש של צי מקצה לקצה: המודל עצמו מציע היכן להציב מכוניות. בדיקה על נתונים היסטוריים מראה עד כמה מצטמצמות נסיעות ריקות עוד לפני ההפעלה.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

AI לשיתוף מכוניות: היכן נשבר האיזון בין הביקוש למכוניות

חוסר האיזון בצי שיתוף המכוניות נראה מיד בשתי תמונות: בפרברים ובאזורים עם תעריף נמוך מכוניות עומדות שעות בלי תנועה, ואילו ברבעים העסקיים ובצמתי תחבורה בשעת שיא הבוקר אין מכונית פנויה ברדיוס האספקה. זו אינה אנומליה עונתית, אלא תוצאה של כך שפיזור הצי נקבע באופן סטטי, בעוד הביקוש זז כל הזמן.

לביקוש בשעת שיא יש כיוון. בבוקר הזרימה יוצאת משכונות המגורים למרכזים המשרדיים, בערב — בחזרה, והווקטור הזה משתנה לפי יום בשבוע ומזג אוויר.

לפי מחקרים על ניידות עירונית, תזוזה של ביקוש בין אזורים בתוך שעה יכולה לעלות על המלאי היומי של מכוניות בנקודה החמה ביותר — לוח הזמנים הידני של המעבירים נבנה יום מראש ופיזית לא מספיק: עד שהמכונית מגיעה לאזור המחסור, השיא כבר נגמר.

לאיזון מחדש ידני יש מחיר משלו. קילומטראז' עודף באיזון מחדש הוא קילומטרים, דלק ושעות משמרת בתשלום, והמכונית עצמה ברגע ההעברה אינה זמינה להזמנה: היא רשומה במערכת, אבל הלקוח לא יכול לקחת אותה. שיעור זמן ההשבתה של המכוניות עולה, ניצול הצי יורד, וחלק מההזמנות הולכות לאיבוד ללא אפשרות חזרה.

נבחן כיצד תחזית ביקוש לפי אזורים באופק קצר ותכנון איזון מחדש עם AI סוגרים את הפער הזה — מהכנת נתונים ועד עבודה בשגרה יומית.

AI לשיתוף מכוניות: ניצולת הצי והקילומטראז' העודף אחרי ההטמעה

תחזית הביקוש נבנית לפי אזורים ומרווחי חצי שעה: המודל לומד מהיסטוריית הזמנות, לוח השנה העירוני, מזג האוויר ואירועים, ומתאמן מחדש לפי חלון מחליק. את הדיוק מחשבים בנפרד לכל אזור, ולא כממוצע על פני הצי — טעות באזור עם מחסור הופכת לביטול, ולא לעוד דקות המתנה.

את פיזור המכוניות בין האזורים פותר האופטימיזטור OR-Tools: בניסוח נלקחים בחשבון ביקוש הסתברותי באופק של עד שעה, זמן נסיעה, זמינות מעבירים ומחיר הזמנה שהוחמצה. העברה מופעלת רק כאשר העלייה הצפויה בהזמנות שבוצעו מכסה את הקילומטראז' העודף; אחרת המכונית נשארת במקום.

אחרי ההטמעה משתנים המדדים שלפיהם מעריכים את הצי. ניצולת הרכב — שיעור הזמן שבו המכונית מבצעת הזמנה או נוסעת ללקוח — עולה מ-40–50% ל-60–65%.

זמן ההשבתה באזורי מחסור מצטמצם בערך בחצי, שיעור הביטולים מסיבת «אין מכונית בקרבת מקום» יורד ב-30–40%, ומקדם ניצול הצי עולה בלי רכישת מכוניות חדשות.

הקילומטראז' העודף בהעברה יורד ברבע עד שליש באותו מספר העברות: האופטימיזטור מחליף העברות ארוכות בקצרות ומסרב לתזוזות שלא מחזירות את עצמן בביקוש. תופעת לוואי — בלאי אחיד יותר ותחזוקה לא מתוכננת נדירה יותר, מפני שנסועה ריקה הופכת לפחותה.

יציבות המספרים נבדקת לפני שחרור: הרצה רטרוספקטיבית על חתכים היסטוריים, מצב צל שבו התחזית מחושבת אבל העברות לא מתבצעות, ואחר כך הפעלה מדורגת לפי אזורים עם חזרה לכללים הקודמים בתוך היום.

אפשרויות לחיזוי ביקוש: השוואת גישות

את בחירת הגישה קובעים אופק התחזית, היקף ההיסטוריה המצטברת ומחיר הטעות. כללי איזון מחדש פשוטים הם ספים לפי מספר המכוניות הפנויות באזור למשבצת של שעה: אם חסר — מביאים מאזור שכן. עובדים מהיום הראשון ובלי נתונים, אבל לא יודעים על גשם, הופעה וזינוק חד-פעמי בביקוש ליד מרכז עסקים.

תחזית לפי היסטוריה — פרופילי ביקוש לפי אזורים ושעות, ממוצע נע, מקדמים עונתיים: מחזיקה קצב שבועי וחגים, אבל נשברת באנומליות ובאזורים חדשים שבהם אין היסטוריה.

אימון על נתוני טלמטיקה מוסיף מאפיינים חיצוניים — מזג אוויר, אירועים עירוניים, עומס בכבישים — ומחשב תחזית בנפרד לכל אזור, אך דורש ניטור של הפער בין התחזית למעשה.

גישה מתי מתאימה מה חסר
כללי סף אזור אחד או שניים, ביקוש יציב, הפעלה מאפס גורמים חיצוניים וזינוקים חד-פעמיים
סטטיסטיקה היסטורית מחזור שבועי קבוע, נתונים שנצברו על פני כמה עונות תגובה לימים חריגים, עובדת רק במקום שיש היסטוריה
אימון על טלמטיקה עשרות אזורים, ביקוש מגוון, יש מאפיינים חיצוניים נתונים על אירועים נדירים, נדרש ניטור איכות התחזית
היברידי: מודל פלוס כללים צריכים גם דיוק וגם יכולת חיזוי של האיזון מחדש יותר כיול: הכללים מגבילים את המודל בשעות שיא

לפני ההטמעה מריצים כל אפשרות על קטע היסטוריה מופרש ובודקים באיזה שיעור של אזורים התחזית לא פגעה בביקוש בפועל — זה מה שקובע את הבחירה.

שלבי הטמעה: מביקורת נתונים ועד מסירה לתפעול

ביקורת נתוני טלמטיקה כמעט תמיד משנה את תוכנית העבודה: בלוגים נמצאים פערים במסלולים, אזורי זמן שונים אצל מכוניות הצי, סטטוסים תקועים של תפוסה ונסיעות שנסגרו לפי תעריף ולא לפי מעשה.

כל עוד הארטיפקטים האלה לא מטופלים, המודל לומד על רעש — הטעות בדוח קטנה, אבל בעיר חסרות מכוניות דווקא במקום שבו הביקוש עלה. לכן השלבים מסודרים כך שכל שלב נשען על תוצאה מאומתת של השלב הקודם.

  1. ביקורת נתוני טלמטיקה — בודקים שלמות מסלולים, תקינות סטטוסים, אזורי זמן וקישוריות נסיעות לתעריפים; בפלט מתקבלת רשימת אזורים ותקופות שבהן הנתונים מתאימים לאימון.
  2. הכנת מאפיינים — מאגדים ביקוש לחלונות של 15–30 דקות ולפי אזורים, מוסיפים לוח שנה, מזג אוויר, אירועים והיסטוריית ניצולת, כדי שהמודל יראה את סיבת העלייה ולא רק את העובדה עצמה.
  3. הגדרת המודל — מאמנים תחזית ביקוש באופק משעה ועד יממה, בנפרד לימי חול, סופי שבוע וימים חריגים, עם בדיקת עמידות לחסרים בנתונים.
  4. כיול האיזון מחדש — הופכים את התחזית להחלטות: כמה מכוניות ולאן להעביר, עם מגבלות על קילומטראז', אזורים וזמן אספקה, כדי שההמלצות יהיו ישימות.
  5. בדיקת המודל על היסטוריה — מריצים את ההחלטות על תקופות קודמות ומשווים למה שהצי עשה בפועל: טעות תחזית, שיעור ביקוש שלא נענה, נסועה ריקה.
  6. מסירה לתפעול — מקבעים נוהל אימון מחדש, ניטור איכות התחזית ומסכים מובנים לדיספצ׳ר; מכאן ואילך צוות הלקוח משנה ספים ואזורים בעצמו.

תצורות, כללי איזון מחדש ונוהלים

אנחנו מעבירים לא רק את שירות התחזית, אלא את כל המעגל התפעולי סביבו — כדי שהמשמרת התורנית תפעל בלעדינו. לכל תוצר יש בעלים: האנליסט מתקן משקלים, הדיספצ׳ר מפעיל העברה, המהנדס משנה ספים.

  • תרשימי זרימת נתונים: טלמטריית רכבים והיסטוריית הזמנות עד מאגרי נתונים לאימון — עם נקודות בקרת איכות ועיכובי הגעה.
  • תצורת שירות התחזית: אופק, קצב חישוב מחדש, היסטוריה מינימלית לאזור חדש, סף ביטחון שמתחתיו התחזית לא נכנסת לעבודה.
  • כללי עדיפות אזורים: שדות תעופה, רבעים עסקיים, שכונות מגורים, תחנות רכבת — מקדמים ולוח זמנים שלפיו העדיפות משתנה במהלך היממה.
  • נוהל איזון מחדש: מי מפעיל העברה, אילו מגבלות על קילומטראז' ורמת טעינה נלקחות בחשבון, איך נרשם ביטול של שיוך ידני.
  • נוהל תורנויות והסלמה: רמות התראה, זמן תגובה, סדר מעבר להקצאה ידנית כשהתחזית סוטה מהמעשה.
  • תיעוד המודל: מאפיינים, מדדי איכות, גבולות ישימות, יומן שינויים עם המחבר והסיבה לשינוי פרמטרים.
  • תזכירים למשמרות: תרחישים קצרים לבוקר, שיא ולילה, ניתוח אירועים אופייניים, סדר פעולות בכשל של שירות התחזית.

התוצרים נמצאים לצד התצורה ומתעדכנים באותו שינוי — לפער בין התיעוד לשירות העובד אין מאיפה להיווצר.

מקרה בוחן: קילומטראז' עודף והשבתות צי לפני ואחרי

צי של כמה מאות מכוניות אוזן מחדש לפי מסלולים קבועים, בהסתמך על דוח של היממה הקודמת. לקראת שיא הערב נגמרו המכוניות בשכונות המגורים והן עמדו ללא שימוש ליד המרכז העסקי, והמחסור באזור נסגר כעבור שעה–שעה וחצי, כשהביקוש כבר ירד. העברה מיותרת הוסיפה קילומטראז' ולעיתים קרובות הסתיימה בלי הזמנה.

הטמיעו תחזית ביקוש שעתית לפי אזורים ל-2–4 שעות קדימה: מודל מבוסס LightGBM מביא בחשבון היסטוריה לפי ימי שבוע, מזג אוויר, אירועים עירוניים וחסימות. על בסיסו חושב פיזור המכוניות בין האזורים כבעיית מזעור של סך הקילומטראז' העודף בעת כיסוי הביקוש החזוי — עם מגבלה קשיחה על אורך ההעברה.

מדדים לפני ואחרי

מדד תפעול צי לפני אחרי
שיעור ההזמנות שבוצעו בשיא 78 % 94 %
קילומטראז' עודף להעברה אחת 11,4 ק״מ 7,6 ק״מ
זמן תגובה למחסור באזור 55 דק׳ 18 דק׳
נסיעות לרכב ביום 5,1 6,4

את תוצאת האיזון מחדש מחזיקים בבקרה יומית: סטייה של המעשה מהתחזית בכל אזור, שיעור העברות בלי הזמנה לאחר מכן, זמן תגובה לזינוק בביקוש. אם טעות התחזית חורגת מהסף, לוח הזמנים חוזר כמצב גיבוי, והמודל מתאמן מחדש על חלון נתונים עדכני.

מה עושים אם טלמטיקה כבר קיימת, אבל יש מעט נתונים למודל?

כן, אפשר להתחיל: מודל ביקוש לא דורש היסטוריה רבת שנים. מספיקות רשומות עם חותמות זמן, סטטוס תפוסה, סימוני התחלה וסיום של נסיעות ורמת טעינה — זה מספיק כדי לשחזר פרופיל ביקוש יומי לפי אזורים.

הקושי בטלמטיקה חלקית אינו בהיקף, אלא באי-אחידות: מרווחי דגימה שונים, חסרים במסלולים, אירועי החלפת סטטוס שאבדו. לכן הצעד הראשון הוא ניתוח איכות הנתונים: שיעור החסרים בכל שדה, שיעור החריגים, כמה מכוניות שותקות זמן רב מהרגיל. מה שלא עובר את הסף — מתוקן במקור או לא נלקח בחשבון.

סט מינימלי של מאפיינים בהתחלה: אזור, שעה ביום, יום בשבוע, סוג יום, מזג אוויר, זמינות מכוניות ברדיוס. אירועים נדירים — החזרות משדה תעופה, אירועים חד-פעמיים — לא נשלפים מההיסטוריה, אלא מוגדרים בכללים ובלוח שנה, כל עוד אין נתונים לסטטיסטיקה שלהם.

בלי היסטוריה משלכם, מאמנים את המודל על צי או עיר שכנים עם פרופיל דומה, ובמקום משלימים אימון על הזרם שלכם — ההעברה מהימנה על דפוסים יציבים של בוקר, ערב וסופי שבוע, וחלשה יותר באנומליות מקומיות שנסגרות בכללים.

ההרחבה נעשית בשלבים: תחזית לפי אזורים ושעות, אחר כך איזון מחדש עם התחשבות במסלולים ובזמן אספקה, ואחר כך התאמה אישית של הצעות. כך מפעילים איזון מחדש בלי להמתין לכיסוי מלא של טלמטיקה: הכיסוי גדל יחד עם דיוק המודל, ולא חוסם את ההתחלה.

ספקות טכניים: דיוק, אינטגרציות, תמיכה

לפני ההתחלה לקוחות שואלים אותן שאלות: איזה דיוק לצפות, איך הפתרון משתלב עם מערכת ההזמנות ומי אחראי למודל חצי שנה אחרי ההשקה. עונים לגוף הדבר, בלי מילים כלליות.

איזה דיוק של תחזית נחשב למספיק?

המדד הוא התועלת באיזון מחדש, לא מספר יפה: פחות שעות מחסור במכוניות באזורי ביקוש ובלי עודף מנופח בשכונות שקטות. רמת בסיס וסף מחשבים על נתונים היסטוריים לפני ההתחלה, בנפרד לכל אופק — שעה, יממה, שבוע. הדיוק לשעה וליממה שונה פי כמה, ולכן אי אפשר לתאר אותו במספר אחד.

איך התחזית משתלבת עם מערכת ההזמנות?

המודל לא מחליף את מערכת ההזמנות ולא כותב אליה ישירות: הוא קורא אירועי השכרה אנונימיים — התחלות, החזרות, ביטולים — ומוסר המלצות לאיזון מחדש דרך ממשק תוכנה. הדיספצ׳ר רואה אותן בעמדת העבודה שלו, תרחישי ההזמנה הרגילים לא משתנים. אם התחזית אינה זמינה, המערכת ממשיכה לעבוד כמו קודם.

מי מתחזק את המודל אחרי ההשקה?

התמיכה כלולה בעבודה: עוקבים אחר איכות התחזית בכל האופקים, מזהים הטיה בשינויי תעריפים, הרכב הצי או תשתיות העיר. כשהמדדים חורגים מהסף, מעדכנים את המודל ומחזירים אותו לפעולה — אין צורך בחוזה נפרד לכל תקלה.

באיזו תדירות צריך אימון מחדש?

לפי הנתונים, לא לפי לוח השנה: באופן שגרתי — על חתך היסטוריה עדכני, שלא מתוכנן — עם הופעת אזורים חדשים, שינוי בצי או בכללי התעריפים. הרכבת מאפיינים, אימון ובדיקה על תקופה מופרשת מתבצעים אוטומטית; האדם מאשר רק את שחרור הגרסה החדשה.

נדון במשימה: דרישות לתחזית ותוכנית עבודה

כדי שהערכת היקף העבודה תתבסס על עובדות ולא על הנחות, אנחנו צריכים תמונת מצב של הצי שלכם. לא נדרש משהו אקזוטי — בדרך כלל כל זה כבר קיים אצל הצוות שמנהל את שיתוף המכוניות, מספיק לייצא ולהעביר.

  • נתוני נסיעות אנונימיים מכמה חודשים: זמן התחלה וסיום, אזורי התחלה וסיום, סוג תעריף; אין צורך בנתונים אישיים, מזהים מספיקים.
  • רשימת אזורים וכללי החלוקה שלהם — איך כרגע מוגדרים אזורי ביקוש והיכן עובר הגבול ביניהם.
  • כללי איזון מחדש פעילים: לפי אילו ספים מעבירים מכוניות ידנית, מי מקבל את ההחלטה ובאיזו תדירות.
  • מגבלות צי ולוגיסטיקה — כמה מכוניות זמינות וכמה העברות ביום אפשר לבצע בפועל בכוח הנהגים.
  • עדיפויות: מה חשוב יותר — כיסוי ביקוש בשעות שיא, הפחתת זמן השבתה או החזקת מכוניות באזורי עניין מוגבר.
  • סכמת גישה לנתונים: היכן נמצאים הייצואים, באיזה פורמט נוח למסור, האם יש מגבלות על עיבוד מחוץ למעגל שלכם.

בתגובה נחזיר ניסוח משימת תחזית עם אופק ויעד, הערכת היקף עבודה לפי שלבים, תוכנית הטמעה עם נקודות ביקורת ורשימה של מה שיידרש מצדכם. אם הנתונים מועטים או חלקיים, נגיד זאת מיד ונציע איך לאסוף סט מינימלי לגרסה הראשונה.

תארו את המשימה — נחזור עם הערכה ותוכנית.