//--------------------------------------------------------------------------- // main() //--------------------------------------------------------------------------- int main() { myout << clock()/CLOCKS_PER_SEC << "s\t start"; // read data read_stat_u("kaggle-stats-user.json"); read_stat_b("kaggle-stats-blog.json"); read_likes("trainUsers.json"); test_end = read_posts("testPosts.json", &test_p); train_end = read_posts("trainPosts.json", &train_p); // split train set into my_train and my_test sets my_train_end = split(); calc_score_t(); // find optimal model parameters x[] for my_test set find_top100(my_train_end, my_test_p); srand(1); PSO(perf, 2, 0., 100., 100, x); myout << endl << clock()/CLOCKS_PER_SEC << "s\t Optimal parameters: " << x[0] << "\t" << x[1]; // make solution for original test set max_hashes = 100; find_top100(train_end, test_p); solve(test_u, test_p, train_end, test_end); // make submission file save_solution("solution.csv"); myout << endl << clock()/CLOCKS_PER_SEC << "s\t end"; }
void Dwarf::refresh_data() { bool was_suspended = m_df->get_api()->isSuspended(); if(!was_suspended){ m_df->get_api()->Suspend(); } m_df->get_api()->ReadCreature(m_index, m_cre); m_address = m_cre.origin; m_dirty.D_LOCATION = (m_x != m_cre.x || m_y != m_cre.y || m_z != m_cre.z); m_x = m_cre.x; m_y = m_cre.y; m_z = m_cre.z; m_id = m_cre.id; TRACE << "\tID:" << m_id; char sex = m_cre.sex; m_is_male = (int)sex == 1; TRACE << "\tMALE?" << m_is_male; m_first_name = m_df->convert_string(m_cre.name.first_name); if (m_first_name.size() > 1) m_first_name[0] = m_first_name[0].toUpper(); TRACE << "\tFIRSTNAME:" << m_first_name; m_nick_name = m_df->convert_string(m_cre.name.nickname); TRACE << "\tNICKNAME:" << m_nick_name; m_pending_nick_name = m_nick_name; m_last_name = m_df->convert_string(m_df->translate_name(m_cre.name,false)); TRACE << "\tLASTNAME:" << m_last_name; m_translated_last_name = m_df->convert_string(m_df->translate_name(m_cre.name,true)); calc_names(); m_custom_profession = m_df->convert_string(m_cre.custom_profession); TRACE << "\tCUSTOM PROF:" << m_custom_profession; m_pending_custom_profession = m_custom_profession; m_race_id = m_cre.type; TRACE << "\tRACE ID:" << m_race_id; m_skills = read_skills(); TRACE << "\tSKILLS: FOUND" << m_skills.size(); m_profession = read_profession(); TRACE << "\tPROFESSION:" << m_profession; m_strength = m_cre.strength; TRACE << "\tSTRENGTH:" << m_strength; m_toughness = m_cre.toughness; TRACE << "\tTOUGHNESS:" << m_toughness; m_agility = m_cre.agility; TRACE << "\tAGILITY:" << m_cre.agility; read_labors(); read_traits(); TRACE << "\tTRAITS:" << m_traits.size(); m_money = m_cre.money; TRACE << "\tMONEY:" << m_money; m_dirty.D_LOCATION = m_raw_happiness != m_cre.happiness; m_raw_happiness = m_cre.happiness; TRACE << "\tRAW HAPPINESS:" << m_raw_happiness; m_happiness = happiness_from_score(m_raw_happiness); TRACE << "\tHAPPINESS:" << happiness_name(m_happiness); read_likes(); read_current_job(); TRACE << "\tCURRENT JOB:" << m_current_job_id << m_current_job; m_squad_leader_id = m_cre.squad_leader_id; TRACE << "\tSQUAD LEADER ID:" << m_squad_leader_id; m_squad_name = m_df->convert_string(m_df->translate_name(m_cre.squad_name,false)); TRACE << "\tSQUAD NAME:" << m_squad_name; m_generic_squad_name = m_df->convert_string(m_df->translate_name(m_cre.squad_name,true)); TRACE << "\tGENERIC SQUAD NAME:" << m_generic_squad_name; if(m_cre.flags1.bits.had_mood && (m_cre.mood == -1 || m_cre.mood == 8 ) ) //No idea what 8 is. But it's what DF checks! m_artifact_name = m_df->convert_string(m_df->translate_name(m_cre.artifact_name,false)); else m_artifact_name = ""; TRACE << "finished refresh of dwarf data for dwarf:" << m_nice_name << "(" << m_translated_name << ")"; if(!was_suspended){ m_df->get_api()->Resume(); } }