המטרה העיקרית של Route Optimization API היא למצוא מסלולים בעלות הנמוכה ביותר. לכן, מודל העלות הוא הגורם העיקרי לאופטימיזציה של המסלול.
מודל העלות הוא קבוצה של מאפיינים שמציינים את העלויות הגלובליות, עלויות הרכב ועלויות המשלוח.
במאפיינים של מודל העלות יש תמיכה ביעדי האופטימיזציה הבאים:
- הקצאת רכבים ומסלולים יעילים
- זמני איסוף ומשלוח משתלמים
- תעדוף של משלוחים קריטיים
מבנה
כמו שמוצג בתרשים, המאפיינים של מודל העלות בנויים באופן הבא:
-
Shipmentמכיל את המאפייןpenaltyCost. - המאפיינים של
Vehicle:
במסמך הזה מפורטים רק הפרמטרים החיוניים של מודל העלות. לרשימה המלאה של פרמטרי העלות, עיינו במאמרי העזרה.
רשימת משימות חיוניות
רשימת המשימות הבאה מתארת את הידע החיוני שמונע טעויות פוטנציאליות שקשורות לעלויות. הרשימה הזו יכולה לעזור לכם לאמת את הבקשה ולפתור בעיות בתגובה.
מאפיינים
בטבלה הבאה מפורטים המאפיינים של מודל העלות.
| הורה | שם הנכס | סוג הנכס | עלות לכל | תיאור הנכס |
|---|---|---|---|---|
Shipment |
penaltyCost |
number | דילגת על המשלוח החודש | העלות שנגרמת כתוצאה מדילוג על המשלוח. ה-API מדלג על משלוח כשהעלות להשלמת המשלוח גבוהה מעלות הקנס.
|
Vehicle |
fixedCost |
number | משלוח | עלות קבועה שחלה אם משתמשים ברכב הזה לטיפול במשלוח. |
costPerHour |
number | שעה | עלות הפעלת הרכב לשעה, כולל זמני נסיעה, המתנה, ביקור והפסקה. ככל שהעלות הזו עולה, כלי האופטימיזציה מנסה למצוא מסלולים מהירים יותר, שלא בהכרח יהיו המסלולים הקצרים ביותר. המאפיין הזה יכול להיות עלות אפקטיבית בפני עצמה לכל רכב, בגלל הפשטות והשלמות שלו. |
|
costPerKilometer |
number | קילומטר | העלות לכל קילומטר נסיעה של הרכב, שיכולה לייצג את עלויות הדלק או את עלויות התחזוקה המופחתות של הרכב. | |
costPerTraveledHour |
number | שעה | עלות הפעלת הרכב לשעה רק בזמן נסיעה, לא כולל זמני המתנה, ביקור והפסקות. ההגדרה הזו נותנת עדיפות למסלולי נסיעה מהירים יותר על פני מסלולים קצרים יותר. |
דוגמאות
בקטע הזה יש שלושה סוגים של דוגמאות:
- דוגמאות קוד שממחישות את המבנה של מאפייני מודל העלות.
- תרחיש לדוגמה שממחיש דרך אחת להשתמש במאפיינים של מודל עלות כדי להשיג יעד עסקי.
- בקשה לדוגמה שכוללת את הערכים שהוגדרו בתרחיש לדוגמה.
דוגמאות קוד
בדוגמת הקוד הבאה מוצג המבנה של מאפייני מודל העלות ב-Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
בדוגמת הקוד הבאה מוצג המבנה של מאפייני מודל העלות ב-Vehicle:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
תרחיש לדוגמה
בקטע הזה מתואר תרחיש שבו יש לכם עסק של מעון יום לכלבים. אתם רוצים לבצע אופטימיזציה למסלול של המשאית שבה אתם משתמשים כדי לאסוף את הכלבים מהבתים שלהם. בתרחיש הזה, אתם רוצים שהאופטימיזציה תביא בחשבון את העלויות שקשורות לאיסוף הכלבים ולתפעול הרכב כשהיא מספקת מסלול.
בדוגמה הזו, יחידת עלות אחת מייצגת דולר אחד. כלומר, ערכי המאפיינים של מודל העלות בבקשה הם:
| נכס | ערך | תרחיש |
|---|---|---|
penaltyCost |
10 | מייצג את הקנס שאתם מציעים ללקוחות שלכם אם הם לא אוספים את הכלב שלהם ביום שנקבע. בכל פעם שאתם לא אוספים את הכלב ביום שנקבע, הלקוח מקבל הנחה של 160 ש"ח מהסכום הכולל של השירות. |
fixedCost |
30 | מייצג את העלות היומית של תשלומי ההלוואה על הרכב, שהיא 30 דולר ליום. |
costPerKilometer |
0.08 | מייצג את כמות הדלק שהרכב צורך לכל קילומטר. הרכב שלכם צורך 0.15 ליטרים לכל קילומטר, והעלות לליטר באזור שלכם היא 2 ש"ח. |
costPerHour |
27 | מייצג את הסכום שאתם משלמים לנהג על נהיגה ברכב שלכם. אתם משלמים לנהג 27 דולר לשעה. |
costPerTraveledHour |
2.5 | מייצג את הסכום שצריך לשלם על מיזוג האוויר ברכב לשעה בשביל הכלבים בזמן הנסיעה. כשהרכב לא בתנועה, הנהג יכול לפתוח את הדלתות מאחור ולכבות את המזגן. |
על סמך פרמטרים של עלויות, הכלי לאופטימיזציה יכול לבצע פשרות שלא ברורות למשתמש, אבל אפשר למצוא אותן באמצעות אופטימיזציה.
בתרשים הבא מוצגת דוגמה שבה כלי האופטימיזציה יכול לבחור מסלול ארוך יותר אבל מהיר יותר, שמסומן בקו הירוק המקווקו, כדי להימנע מפקקים במסלול שמסומן בקו האדום המנוקד.

במקרה כזה, יתרת העלות של שני המסלולים היא:
הקו המקווקו הירוק מייצג מסלול עם
costPerHourוcostPerTraveledHourנמוכים, כי זה מסלול מהיר שעוקף את הפקקים, ולכן הוא משתלם יותר גם אם ה-costPerKilometerגבוה.הקו המקווקו האדום מייצג מסלול ישיר, ולכן
costPerKilometerשלו נמוך, אבלcostPerHourו-costPerTraveledHourשלו גבוהים מדי בגלל זמני ההמתנה בפקקים, ולכן זה המסלול היקר ביותר.
בנוסף למסלולים חסכוניים, הכלי לאופטימיזציה מספק גם סיכום של העלויות הכוללות של מסלולי המשלוח במאפייני התגובה.
דוגמה לבקשה
בדוגמה הבאה מוצג המבנה של בקשת optimizeTours בסיסית, שכוללת את הערכים שהוגדרו בתרחיש לדוגמה:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
מאפייני התשובה
ההודעה OptimizeToursResponse כוללת מאפייני עלות שמתארים את העלויות שנוצרו בתהליך השלמת המסלול:
-
metrics.costs: העלות הכוללת של כל המסלולים, בחלוקה לפי שדות הבקשה שקשורים לעלות. -
metrics.totalCost: העלות הכוללת של כל המסלולים.