[英]Time scheduling algorithm based on history
我一直在嘗試解決我以前使用過的應用程序的調度問題。 這個問題如下...
示例場景:
ContactA在后台運行Our App。 他剛乘車去上下班的家。 因此,他處於@Evening上下班狀態。
他的“代客”設置指出,他只希望在@Evening上下班時處於通知狀態(不發送短信或電子郵件提醒)時撥打電話。
一旦我們的應用程序看到ContactA處於@Evening上下班狀態,並且可以撥打電話,該應用程序將掃描其所有聯系人,以查找他指定為首選呼叫的任何聯系人。
該算法在他的座席列表中為ContactA識別3個潛在匹配項:
如何確定在@Evening上下班時提示ContactA與之聯系的人?
首先,它應該查看這三個應用程序是否也都在使用該應用程序。 例如,它標識ContactX和ContactY都在使用該應用程序,但ContactZ沒有。
因此,然后將進一步查看ContactX和ContactY,以查看它們當前是否處於接受電話的代客狀態。
如果兩者都是,它將查看其中是否是一個收藏夾。 如果是這樣,則該人具有優先權。
如果兩者都不是,則可以回顧歷史記錄以查看最晚聯系的歷史,從而選擇最先聯系的人。
如果ContactX和ContactY現在都顯示為“不可用”,則基於其App Valet設置,該應用可以選擇提示我致電ContactZ 。
提前致謝
偽代碼(您不需要任何特定的語言,但這是您的算法在代碼中的簡單實現)。 contactSpecified將是“指定為首選呼叫”的所有聯系人的數組。
var contactsToCall[];
//Add all contacts that are using the app and are available
foreach(contact in contactsSepcified) {
if(contact.isUsingApp() && contact.isAvailable()) {
contactsToCall.add(contact);
}
}
//Add all contacts not using the app if none of the app users have been added
if(contactsToCall.size() == 0) {
foreach(contact in contactsSepcified) {
if(!contact.isUsingApp()) {
contactsToCall.add(contact);
}
}
}
foreach(contact in conctactsToCall) {
if(conctact.isFavorite()) {
call(contact);
return;
}
}
suggestContacts(contactsToCall);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.