Changeset 1111 for applications/doprava

Show
Ignore:
Timestamp:
06/20/10 23:58:00 (14 years ago)
Author:
ondrak
Message:

One agent made passive - doesn't send offset_change_request

Location:
applications/doprava
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • applications/doprava/Zlicingw.cfg

    r1089 r1111  
    3838        stage_names = ("601_F1","601_F2","601_F3"); 
    3939        stage_times = [30,30,20]; 
     40        passive=1; 
    4041} 
    4142); 
     
    5960        // If present, overwrites stop_time. Ensures corrent termination of simulation 
    6061        // Example: 1 hour = 40 cycles, 6 hours = 240 cycles, 24 hours = 960  
    61         stop_cycle=5; 
     62        //stop_cycle=5; 
    6263         
    6364}; 
  • applications/doprava/traffic_agent.h

    r1070 r1111  
    190190                        for (int r=0; r<rv_outputs.length(); r++){ 
    191191                                int str_pos = rv_outputs.name(r).compare(neighbours(i)); 
    192                                 if (str_pos>neighbours(i).length()){ 
     192                                if (str_pos>(int)neighbours(i).length()){ 
    193193                                        rv_neighbours_out(i).add(rv_outputs.subselect(vec_1(r))); 
    194194                                } 
  • applications/doprava/traffic_agent_offset.h

    r1081 r1111  
    44 
    55class GreenWaveTrafficAgent : public BaseTrafficAgent { 
     6LOG_LEVEL(GreenWaveTrafficAgent,logoffset); 
    67protected: 
    78        double rating_change; 
    89        int negot_offset; 
     10        int negot_limit; 
    911 
    1012        int actual_time; 
     
    3941        bool final_state; 
    4042        //bool reset_negot_offset; 
     43 
     44        int passive; 
    4145 
    4246        //! sum of final planned_offset values since last reach of cycle_count 
     
    501505                send_requests=false; 
    502506                need_exps=true; 
    503                 negot_offset=8; 
     507                negot_offset=4; 
    504508        } 
    505509 
     
    622626                        planned_rating=count_rating(planned_offset); 
    623627 
    624                         for (int i=0;i<neighbours.length();i++) { 
    625                                 rv_change_request.add(RV(neighbours(i)+"_change",2)); 
    626                                 change_request.set_size(rv_change_request._dsize());  
    627                                 ivec ind=RV(neighbours(i)+"_change",2).dataind(rv_change_request); 
    628                                 // offset change 
    629                                 change_request(ind(0))=find_best_exps(negot_offset,neighbours(i),rating_change); 
    630                                 // rating change 
    631                                 change_request(ind(1))=rating_change; 
    632                         } 
    633  
    634                         if (negot_offset>2) {  
    635                                 negot_offset/=2; 
     628                        if (!passive) { 
     629 
     630                                for (int i=0;i<neighbours.length();i++) { 
     631                                        rv_change_request.add(RV(neighbours(i)+"_change",2)); 
     632                                        change_request.set_size(rv_change_request._dsize());  
     633                                        ivec ind=RV(neighbours(i)+"_change",2).dataind(rv_change_request); 
     634                                        // offset change 
     635                                        change_request(ind(0))=find_best_exps(negot_offset,neighbours(i),rating_change); 
     636                                        // rating change 
     637                                        change_request(ind(1))=rating_change; 
     638                                } 
     639 
     640                                if (negot_offset>negot_limit) {  
     641                                        negot_offset/=2; 
    636642                                        send_requests=true; 
     643                                } 
     644                                else { 
     645                                        final_state=true; 
     646 
     647                                } 
    637648                        } 
    638649                        else { 
     
    687698                total_offset=0; 
    688699 
    689                 negot_offset=8; 
     700                negot_offset=4; 
     701                negot_limit=1; 
     702 
     703                passive=0; 
    690704                 
    691705                // load from file 
     
    694708                //UI::get(green_starts, set, "green_starts", UI::compulsory); 
    695709                UI::get(last_offset, set, "offset", UI::compulsory); 
     710                UI::get(passive, set, "passive", UI::optional); 
    696711 
    697712                for (int i=0;i<lanes.length();i++) { 
     
    704719                } 
    705720                outputs.set_size(rv_outputs._dsize());   
     721 
     722                log_level[logoffset]=true; 
    706723        } 
    707724 
     
    731748        } 
    732749 
     750        //void log_register(logger &l, const string &prefix){ 
     751        //      if ( log_level[logoffset]){ 
     752        //              l.add_vector ( log_level, logoffset, RV("mujoffset",1), prefix );        
     753        //      } 
     754        //} 
     755        //void log_write() const { 
     756        //      if (log_level[logoffset]){ 
     757        //              log_level.store(logoffset, (double)planned_offset); 
     758        //              //log_level.store(logoffset, planned_rating); 
     759        //      } 
     760        //} 
     761 
     762 
    733763 
    734764};