(file) Return to acm2.cpp CVS log (file) (dir) Up to [RizwankCVS] / acm

Diff for /acm/acm2.cpp between version 1.15 and 1.16

version 1.15, 2005/02/17 08:01:32 version 1.16, 2005/02/17 09:40:09
Line 9 
Line 9 
  
 using namespace std; using namespace std;
  
   //Rizwan Kassim - rizwank@geekymedia.com (c) rizwan kassim 2005
   //for use exculsively in the UCLA ACM 2005 Feb. Competition.
   
 //threading might be useful except for the fact that our target machine is likely to have a single processor //threading might be useful except for the fact that our target machine is likely to have a single processor
 // what about task limiting from SEAS? // what about task limiting from SEAS?
 // actually sparc machines on ugrad  are multiple processor -- could I thread/fork the calculations? would overhead > savings // actually sparc machines on ugrad  are multiple processor -- could I thread/fork the calculations? would overhead > savings
Line 256 
Line 259 
 // * Creates an item and places it into the priority queue                      * // * Creates an item and places it into the priority queue                      *
 // ****************************************************************** // ******************************************************************
 void backpack::putItem(ITEM_MASS weight){  //,  ITEM_MASS cost){ void backpack::putItem(ITEM_MASS weight){  //,  ITEM_MASS cost){
         item temp_item;          item temp_item;//       printf("%d, %d, %d, %d, %d\n",item_array[0],item_array[1],item_array[2],item_array[3],item_array[4]);
   
         temp_item.setData(weight);//,cost);//,(int)(this->item_queue.size())+1); // sometimes this starts at 2000?         temp_item.setData(weight);//,cost);//,(int)(this->item_queue.size())+1); // sometimes this starts at 2000?
         this->item_queue.push(temp_item);         this->item_queue.push(temp_item);
 } }
Line 271 
Line 275 
                 this->item_array[i] = this->item_queue.top();                 this->item_array[i] = this->item_queue.top();
                 this->item_queue.pop();                 this->item_queue.pop();
         }         }
   //      printf("%d, %d, %d, %d, %d\n",item_array[0].getWeight(),item_array[1].getWeight(),item_array[2].getWeight(),item_array[3].getWeight(),item_array[4].getWeight());
   
 } }
  
 // ****************************************************************** // ******************************************************************
Line 336 
Line 342 
                         onwards = 0;                         onwards = 0;
                 }                 }
                 else {                 else {
 //                      this->worknodeCount++;                          this->worknodeCount++;
             temp_key.flagNext();             temp_key.flagNext();
                 this->key_queue.push(temp_key);                 this->key_queue.push(temp_key);
 //                              this->addnodeCount++;                                  this->addnodeCount++;
  
                                 // try this --- compare quicksorted before and after because of greedy grabbing largest                                 // try this --- compare quicksorted before and after because of greedy grabbing largest
                                 //should find other comparator for weight with sub data like ... pct done                                 //should find other comparator for weight with sub data like ... pct done
Line 347 
Line 353 
                         temp_key.addCurItem();                         temp_key.addCurItem();
                         if (temp_key.getBound() != 0){          //insert only if active.                         if (temp_key.getBound() != 0){          //insert only if active.
                                 this->key_queue.push(temp_key);                                 this->key_queue.push(temp_key);
 //                              this->addnodeCount++;                                  this->addnodeCount++;
                         }                         }
                 }                 }
                 // commenting out worknode trackerincreases speed by 3%                 // commenting out worknode trackerincreases speed by 3%
Line 518 
Line 524 
 // filter out oversizes BEFORE we insert them above, therefore making life complicated // filter out oversizes BEFORE we insert them above, therefore making life complicated
  
         vector<ITEM_MASS>::iterator itInventory;         vector<ITEM_MASS>::iterator itInventory;
           double sum_test = 0;
  
 //      printf("inventory before %d\n",inventory.size()); //      printf("inventory before %d\n",inventory.size());
         for(itInventory = inventory.begin(); itInventory != inventory.end(); itInventory++) {         for(itInventory = inventory.begin(); itInventory != inventory.end(); itInventory++) {
Line 528 
Line 535 
 //                      printf("%d removed at %d,  left!\n",*itInventory,inventory.size()); //                      printf("%d removed at %d,  left!\n",*itInventory,inventory.size());
                 // remove elements that are too large. its a n increase here, but >>n increase if done later                 // remove elements that are too large. its a n increase here, but >>n increase if done later
                 }                 }
                   sum_test = sum_test + *itInventory;
         }         }
           if (( sum_test < palette_size) || (inventory.size()==0)) {
                    printf("CANNOT FILL PALLET\n"); return 5;}
                   // either all the elements combined would not make a complete crate
                   // or all the elements are too big.
  
         backpack knapsackOne;         backpack knapsackOne;
  


Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

Rizwan Kassim
Powered by
ViewCVS 0.9.2