提交第二次就有了成绩,虽然成绩比较差。
用sas写的验证程序,对几个关键点作了验证,大家可以参考。
/*验证距离、载货量,卸货时间*/
%macro valid(submit_list);
data valid_list1;
set &submit_list;
by courier_id arrival_time_sub departure;
length last_addr $5 last_depart 8;
retain last_addr last_depart;
if first.courier_id then do;
last_addr="";
last_depart=.;
accu_amount=0;
end;
accu_amount+amount;
min=arrival_time_sub-last_depart;
output;
last_addr=addr;
last_depart=departure;
run;
data addr_lng;
set lib3.spot(rename=(spot_id=addr)) lib3.site(rename=(site_id=addr)) lib3.shop(rename=(shop_id=addr));
keep addr lng lat;
run;
proc sql;
create table valid_list2 as
select a.*,b.lng,b.lat,c.lng as lng2,c.lat as lat2
from valid_list1 a,addr_lng b,addr_lng c
where a.last_addr=b.addr and a.addr=c.addr
order by courier_id,arrival_time_sub,departure
;quit;
data valid_list;
set valid_list2;
pai=3.1415926;
s=6378137*arsin(sqrt(sin(pai*(lat-lat2)/180)**2+cos(pai*lat/180)*cos(pai*lat2/180)* (sin(pai*(lng-lng2)/180))**2));
valid_min=round(s/250);
if valid_min ne min or accu_amount>140 or
(amount<0 and departure-arrival_time_sub ne round(3*sqrt(-amount)+5));
run;
%mend;
%valid(lib3.submit_list);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。