آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

الگوریتم مسیر یابی بهیته

Smkm79  9 سال پیش  9 سال پیش
0 0

با سلام

دوستان در گیر یه پروژه شبیه اسنپ هستم. فرض کنین شما داخل سرور موقعیت یک سری افراد ( در خواست کننده) و همچنین افراد سرویس دهنده ( راننده) رو دارین هدف اینه که اولین در خواست کننده به نزدیک ترین راننده لینک بشه و دنبال یه الگوریتم بهینه برای انجام این کار هستم دوستانی که در چنین موردی تجربه دارند لطفا راهنمایی فرمایند

با تشکر

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Sina Salehifard  9 سال پیش
0 0

سلام عرض شد عزیز

ابتدا شما باید lat و lon کاربر رو بگیرید بعد عمل مقایسه با lat lon تاکسی ها داشته باشید و متر رو برگردونید . بعد اون هایی که کوچکتر هستند یعنی فاصلشون کمتر هست sort بدید که بالاتر نمایش دهند ( به ترتیب فاصله )

کد php دریافت متر از دو lat و lon  :

 function measure($lat1, $lon1, $lat2, $lon2) {
    $R = 6378.137;
    $dLat = $lat2 * pi() / 180 - $lat1 * pi()/ 180;
    $dLon = $lon2 * pi() / 180 - $lon1 * pi() / 180;
    $a = sin($dLat/2) * sin($dLat/2) + cos($lat1 * pi()/ 180) * cos($lat2 * pi() / 180) * sin($dLon/2) * sin($dLon/2);
    $c = 2 * atan2(sqrt($a), sqrt(1-$a)); $d = $R * $c;
    return $d * 1000; // meters }
}

پاسخ به سوال 
Smkm79  9 سال پیش
0 0

این روش روش درستی هست و لی سوال اینه که آیا بهینه هم هست فرض کنین مثلا 1000 تا تاکسی دارین پس به ازای هر درخواست هزار محاسبه دارین و بعد هم سورت کردن نکته بعد هم اینه که مشخصات تاکسی ها بعد از گذشت زمان تغییر میکنه و این یعنی محسبات بیشتر در ست بودن این الگوریتم رو میدونم ولی بهینه بودنش رو نه

بازهم تشکر

0 0
خب راه های مختلفی برای کاهش بار محاسباتی شما هست اما به نظرم بهترین راه اینه که شما دیتابیسی از تاکسی هاتون داشته باشین که مثلا در یه بازه زمانی خاصی موقعیتشون بروز بشه و هر زمان که درخواست دهنده داشتید بلافاصله از دیتا بیس بدون وقفه نزدیکترین ها رو دربیارین و فقط روی اونا یه بار محاسبه مجدد انجام بدین و نتیجه رو برگردونین اینجوری دیگه نیاز نیست برای درخواست کننده ای که از یه تاکسی فاصله زیادی داره موقعیت اون تاکسی رو هم محاصبه کنید (9 سال پیش)
پاسخ به سوال 
Sina Salehifard  9 سال پیش
0 0

من از این روش استفاده میکنم برای نرم افزارم . تا الان که مشکلی هم نداشته به سرور هم فشار نمیاره  آنالیزش کردم اما باز بزار دوستان پاسخ بدند شاید روش بهتری پیدا شد.

اما فکر کنم در کل سرور ها اینقدر قوی هستند سر دو تا  محاسبه کم نمیارن !


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .