private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { //try //{ int N = int.Parse(nTextBox.Text); //int numberOfIterations = int.Parse(nTextBox.Text); int iterations = int.Parse(tMaxTextBox.Text); int maxIterations; if(maxStageTextBox.Text=="") maxIterations = int.MaxValue; else maxIterations = int.Parse(maxStageTextBox.Text); bool rangeN = multipleNCheckBox.Checked && multipleNCheckBox.Enabled; int rangeNmin = int.Parse(minNbox.Text); int rangeNmax = int.Parse(maxNbox.Text); int rangeNint = int.Parse(intNbox.Text); bool useSrg = CheckFile(srgMatrixFile.Text, srgCheckBox.Checked); MatrixProvider capabilProvider = new MatrixProvider(capabilityMatrixFile.Text, capabilitiesCheckBox.Checked ? capabilityMatrixFile.Text : null, capabilitiesCheckBox.Checked ? MatrixProvider.Type.RandomDiagonal : MatrixProvider.Type.MatrixFile, N, N, false); /* MatrixProvider contigProvider = new MatrixProvider(contiguityMatrixFile.Text, contiguityCheckBox.Checked ? contiguityMatrixFile.Text : null, !useSrg ? MatrixProvider.Type.NullFile : (contiguityCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile), N, N, contiguityDCheckBox.Checked); */ MatrixProvider contigProvider = new MatrixProvider(contiguityMatrixFile.Text, contiguityCheckBox.Checked ? contiguityMatrixFile.Text : null, contiguityMatrixFile.Visible ? (contiguityCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, contiguityDCheckBox.Checked); /* MatrixProvider contigProvider = new MatrixProvider(contiguityMatrixFile.Text, contiguityCheckBox.Checked ? contiguityMatrixFile.Text : null, contiguityMatrixFile.Text == "" ? (contiguityCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.NullFile) : MatrixProvider.Type.MatrixFile, N, N, contiguityDCheckBox.Checked); */ MatrixProvider majPowProvider = new MatrixProvider(majorPowersVectorFile.Text, majorPowersCheckBox.Checked ? majorPowersVectorFile.Text : null, useSrg ? MatrixProvider.Type.NullFile : (majorPowersCheckBox.Checked ? MatrixProvider.Type.RandomVector : MatrixProvider.Type.VectorFile), N, N, majorPowersDCheckBox.Checked); MatrixProvider conflictProvider = new MatrixProvider(conflictMatrixFile.Text, null, //conflictCheckBox.Checked ? conflictMatrixFile.Text : null, conflictCheckBox.Visible ? (conflictCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, conflictDCheckBox.Checked); MatrixProvider srgProvider = new MatrixProvider(srgMatrixFile.Text, srgCheckBox.Checked ? srgMatrixFile.Text : null, useSrg ? (srgCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, srgDCheckBox.Checked); MatrixProvider demoProvider = new MatrixProvider(demoMatrixFile.Text, demoCheckBox.Checked ? demoMatrixFile.Text : null, demoCheckBox.Visible ? (demoCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, demoDCheckBox.Checked); MatrixProvider jcProvider = new MatrixProvider(jcMatrixFile.Text, jcCheckBox.Checked ? jcMatrixFile.Text : null, jcCheckBox.Visible ? (jcCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, jcDCheckBox.Checked); MatrixProvider midProvider = new MatrixProvider(midMatrixFile.Text, midCheckBox.Checked ? midMatrixFile.Text : null, midCheckBox.Visible ? (midCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, midDCheckBox.Checked); MatrixProvider csProvider = new MatrixProvider(csMatrixFile.Text, csCheckBox.Checked ? csMatrixFile.Text : null, csCheckBox.Visible ? (csCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, csDCheckbox.Checked); MatrixProvider relProvider = new MatrixProvider(reliabilityMatrixFile.Text, reliabilityCheckBox.Checked ? reliabilityMatrixFile.Text : null, reliabilityCheckBox.Visible ? (reliabilityCheckBox.Checked ? MatrixProvider.Type.RandomSymmetric : MatrixProvider.Type.MatrixFile) : MatrixProvider.Type.NullFile, N, N, reliabilityDCheckBox.Checked); //if (demoCheckBox.Checked) //{ // demoProvider.Min = 0.15; // demoProvider.Max = 0.35; //} //if (jcCheckBox.Checked) //{ // jcProvider.Min = 0.3; // jcProvider.Max = 0.6; //} if (demoCheckBox.Checked) { if (demominbox.Text == "" && demomaxbox.Text == "") demoProvider.Prange = false; else { demoProvider.Prange = true; demoProvider.Pmin = double.Parse(demominbox.Text); demoProvider.Pmax = double.Parse(demomaxbox.Text); } } if (srgCheckBox.Checked) { if (srgminbox.Text == "" && srgmaxbox.Text == "") srgProvider.Prange = false; else { srgProvider.Prange = true; srgProvider.Pmin = double.Parse(srgminbox.Text); srgProvider.Pmax = double.Parse(srgmaxbox.Text); } } if (jcCheckBox.Checked) { if (jcminbox.Text == "" && jcmaxbox.Text == "") jcProvider.Prange = false; else { jcProvider.Prange = true; jcProvider.Pmin = double.Parse(jcminbox.Text); jcProvider.Pmax = double.Parse(jcmaxbox.Text); } } if (midCheckBox.Checked) { if (midminbox.Text == "" && midmaxbox.Text == "") midProvider.Prange = false; else { midProvider.Prange = true; midProvider.Pmin = double.Parse(midminbox.Text); midProvider.Pmax = double.Parse(midmaxbox.Text); } } if (conflictCheckBox.Checked) { if (confminbox.Text == "" && confmaxbox.Text == "") conflictProvider.Prange = false; else { conflictProvider.Prange = true; conflictProvider.Pmin = double.Parse(confminbox.Text); conflictProvider.Pmax = double.Parse(confmaxbox.Text); } } if (majorPowersCheckBox.Checked) { if (majminbox.Text == "" && majmaxbox.Text == "") majPowProvider.Prange = false; else { majPowProvider.Prange = true; majPowProvider.Pmin = double.Parse(majminbox.Text); majPowProvider.Pmax = double.Parse(majmaxbox.Text); } } if (contiguityCheckBox.Checked) { if (contminbox.Text == "" && contmaxbox.Text == "") contigProvider.Prange = false; else { contigProvider.Prange = true; contigProvider.Pmin = double.Parse(contminbox.Text); contigProvider.Pmax = double.Parse(contmaxbox.Text); } } if (csCheckBox.Checked) { if (csMinBox.Text == "" && csMaxBox.Text == "") csProvider.Prange = false; else { csProvider.Prange = true; csProvider.Pmin = double.Parse(csMinBox.Text); csProvider.Pmax = double.Parse(csMaxBox.Text); } } if (reliabilityCheckBox.Checked) { if (reliabilityMinBox.Text == "" && reliabilityMaxBox.Text == "") relProvider.Prange = false; else { relProvider.Prange = true; relProvider.Pmin = double.Parse(reliabilityMinBox.Text); relProvider.Pmax = double.Parse(reliabilityMaxBox.Text); } } capabilProvider.ForceVector = capabilitiesVectorCheckBox.Checked; capabilProvider.WriteRepeatCount = 3; if (File.Exists(conflictMatrixFile.Text) && _overwrite && conflictCheckBox.Checked) File.Delete(conflictMatrixFile.Text); if (File.Exists(outputFile.Text) && _overwrite) File.Delete(outputFile.Text); if (outputDyadicCheckBox.Checked) MatrixWriter.WriteDyadicHeader(outputFile.Text); bool overwrite = parent.GetSaveOverwrite(); if (!rangeN) { for (int i = 1; i <= iterations; ++i) // changed from iterations to N { if (!capabilitiesCheckBox.Checked) N = capabilProvider.GetNextMatrixRows(); else if (!useSrg && !contiguityCheckBox.Checked) N = contigProvider.GetNextMatrixRows(); else if (!useSrg && !majorPowersCheckBox.Checked) N = majPowProvider.GetNextMatrixRows(); else if (!conflictCheckBox.Checked) N = conflictProvider.GetNextMatrixRows(); else if (useSrg && !srgCheckBox.Checked) N = srgProvider.GetNextMatrixRows(); else if (!demoCheckBox.Checked) N = demoProvider.GetNextMatrixRows(); else if (!jcCheckBox.Checked) N = jcProvider.GetNextMatrixRows(); else if (!midCheckBox.Checked) N = midProvider.GetNextMatrixRows(); else if (!csCheckBox.Checked) N = csProvider.GetNextMatrixRows(); else if (!reliabilityCheckBox.Checked) N = relProvider.GetNextMatrixRows(); if (N == -1) N = int.Parse(nTextBox.Text); if (capabilitiesCheckBox.Checked) capabilProvider.Rows = capabilProvider.Cols = N; if (!useSrg && contiguityCheckBox.Checked) contigProvider.Rows = contigProvider.Cols = N; if (!useSrg && majorPowersCheckBox.Checked) majPowProvider.Rows = majPowProvider.Cols = N; if (conflictCheckBox.Checked) conflictProvider.Rows = conflictProvider.Cols = N; if (useSrg && srgCheckBox.Checked) srgProvider.Rows = srgProvider.Cols = N; if (demoCheckBox.Checked) demoProvider.Rows = demoProvider.Cols = N; if (jcCheckBox.Checked) jcProvider.Rows = jcProvider.Cols = N; if (midCheckBox.Checked) midProvider.Rows = midProvider.Cols = N; if (csCheckBox.Checked) csProvider.Rows = csProvider.Cols = N; if (reliabilityCheckBox.Checked) relProvider.Rows = relProvider.Cols = N; NetworkFormationSimulation.SimulateToFile( capabilProvider, contigProvider, majPowProvider, conflictProvider, outputFile.Text, expectedAllianceFile.Text, conflictMatrixFile.Text, srgSaveMatrixFile.Text, i, conflictCheckBox.Checked, contiguityCheckBox.Checked, majorPowersCheckBox.Checked, outputDyadicCheckBox.Checked, expectedAllianceDCheckBox.Checked, srgDCheckBox.Checked, srgProvider, demoProvider, jcProvider, midProvider, csProvider, relProvider, maxIterations, overwrite, double.Parse(brTextBox.Text)); overwrite = false; (sender as BackgroundWorker).ReportProgress((int)(0.5 + Math.Ceiling(100.0 * i / (double)iterations))); if (e.Cancel) break; } } else { for (int i = 1; i <= iterations; ++i) // changed from iterations to N { N = RNG.RandomInt((rangeNmax - rangeNmin) / rangeNint) * rangeNint + rangeNmin; if (capabilitiesCheckBox.Checked) capabilProvider.Rows = capabilProvider.Cols = N; if (useSrg && contiguityCheckBox.Checked) contigProvider.Rows = contigProvider.Cols = N; // usrSrg is now True as of 8/31/2012 if (!useSrg && majorPowersCheckBox.Checked) majPowProvider.Rows = majPowProvider.Cols = N; if (conflictCheckBox.Checked) conflictProvider.Rows = conflictProvider.Cols = N; if (useSrg && srgCheckBox.Checked) srgProvider.Rows = srgProvider.Cols = N; if (demoCheckBox.Checked) demoProvider.Rows = demoProvider.Cols = N; if (jcCheckBox.Checked) jcProvider.Rows = jcProvider.Cols = N; if (midCheckBox.Checked) midProvider.Rows = midProvider.Cols = N; if (csCheckBox.Checked) csProvider.Rows = csProvider.Cols = N; if (reliabilityCheckBox.Checked) relProvider.Rows = relProvider.Cols = N; NetworkFormationSimulation.SimulateToFile( capabilProvider, contigProvider, majPowProvider, conflictProvider, outputFile.Text, expectedAllianceFile.Text, conflictMatrixFile.Text, srgSaveMatrixFile.Text, i, conflictCheckBox.Checked, contiguityCheckBox.Checked, majorPowersCheckBox.Checked, outputDyadicCheckBox.Checked, expectedAllianceDCheckBox.Checked, srgDCheckBox.Checked, srgProvider, demoProvider, jcProvider, midProvider, csProvider, relProvider, maxIterations, overwrite, double.Parse(brTextBox.Text)); overwrite = false; (sender as BackgroundWorker).ReportProgress((int)(0.5 + Math.Ceiling(100.0 * i / (double)iterations))); if (e.Cancel) break; } } //catch (Exception exception) { // MessageBox.Show("Error: " + exception.Message + Environment.NewLine + exception.StackTrace); } }