המטרה העיקרית של 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 | מייצג את הקנס שאתם מציעים ללקוחות שלכם אם הם לא אוספים את הכלב שלהם ביום שנקבע. בכל פעם שלא תאספו את הכלב ביום שנקבע, הלקוח יקבל הנחה של 40 דולר מהסכום הכולל של השירות. |
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: העלות הכוללת של כל המסלולים.