https://github.com/qiyitang71/approximate-quotienting
Raw File
Tip revision: 6d4ea07894e92e8d1987031a1240248da4cb24d6 authored by qiyitang71 on 16 April 2021, 16:36:25 UTC
Update README.md
Tip revision: 6d4ea07
runLarge.sh
#!/bin/bash

working_folder="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
srcdir="$working_folder"/src
classdir="$working_folder"/bin
#choose a model name HERE
#options are {HermanLarge, LeaderLarge, BRP, Crowds, EGL} 
model=Crowds
modeldir="$working_folder"/models/$model

# compile
javac -classpath "$classdir" "$srcdir"/*.java -d "$classdir"

# run the experiments
#repeat 5 times for each model
for i in {1..5}; do
  for epsilon1 in 0.00001 0.0001 0.001 0.01
  do
    delta=0.01

    resultdir="$working_folder"/results/"$model$epsilon1"
    resultdir2="$working_folder"/results/"$model"-Exact"$epsilon1"
    sampledir="$working_folder"/results/"$model"-Sample"$epsilon1"

    mkdir -p $resultdir
    mkdir -p $resultdir2
    mkdir -p $sampledir
    for file in $modeldir/*.tra; do
      #echo $file
      fileNameSim=$(echo $file | rev | cut -d / -f 1 | rev | cut -d "." -f 1)
      echo $fileNameSim

      filename="$fileNameSim"-"$i"
      fileLog="$resultdir"/"$filename".log
      {
        echo ""
        echo "epsilon1=$epsilon1"
        echo ""

        inputLab="$modeldir"/"$fileNameSim".lab
        inputTra="$modeldir"/"$fileNameSim".tra

        sampleLab="$sampledir"/sample-"$filename".lab
        sampleTra="$sampledir"/sample-"$filename".tra

        echo "Perturbing $filename"
        java -classpath "$classdir" PerturbLMC $inputLab $inputTra $sampleLab $sampleTra $epsilon1 $delta

        for epsilon2 in 0.00001 0.0001 0.001 0.01 0.1
        do
          echo "epsilon2=$epsilon2"
          outLabLocalExact="$resultdir2"/local-"$filename"-"$epsilon2".lab
          outTraLocalExact="$resultdir2"/local-"$filename"-"$epsilon2".tra

          outLabLocal2Exact="$resultdir2"/local2-"$filename"-"$epsilon2".lab
          outTraLocal2Exact="$resultdir2"/local2-"$filename"-"$epsilon2".tra

          outLabApproxExact="$resultdir2"/approx-"$filename"-"$epsilon2".lab
          outTraApproxExact="$resultdir2"/approx-"$filename"-"$epsilon2".tra

          outLabLocal="$resultdir"/local-"$filename"-"$epsilon2".lab
          outTraLocal="$resultdir"/local-"$filename"-"$epsilon2".tra

          outLabLocal2="$resultdir"/local2-"$filename"-"$epsilon2".lab
          outTraLocal2="$resultdir"/local2-"$filename"-"$epsilon2".tra

          outLabApprox="$resultdir"/approx-"$filename"-"$epsilon2".lab
          outTraApprox="$resultdir"/approx-"$filename"-"$epsilon2".tra

          outLabCombine="$resultdir"/combine-"$filename"-"$epsilon2".lab
          outTraCombine="$resultdir"/combine-"$filename"-"$epsilon2".tra

          echo "Exact Model"      
          #Approximate minimisation by using approximate partition refinement on the exact model
          java -classpath "$classdir" ApproximatePartitionRefinement $inputLab $inputTra $outLabApproxExact $outTraApproxExact $epsilon2
          echo ""


          echo "Sample Model"
          #Approximate minimisation by using approximate partition refinement on the perturbed model
          java -classpath "$classdir" ApproximatePartitionRefinement $sampleLab $sampleTra $outLabApprox $outTraApprox $epsilon2
          echo ""
        done
      } | tee -a $fileLog
    done
  done
done
back to top