{
  "_id": "6ad0c0ca9a0ea1f99f78c064",
  "Package": "quicopt",
  "Title": "Client for the 'Quicopt' Optimization Service",
  "Version": "0.7.0",
  "Authors@R": "person(\"Tim\", \"Bode\", email = \"t.bode@fz-juelich.de\",\nrole = c(\"aut\", \"cre\", \"cph\"))",
  "Description": "Write an optimization model in R and solve it with the\n'Quicopt' service <https://quicopt.com>: state the decisions,\nthe objective and the constraints, and the service finds the\nbest decision. The model is sent to the service, so no solver\nneeds to be installed. Uncertain data, such as demand or\nprices, is described by probability distributions or taken from\nthe rows of a data frame, and the model can then minimize an\nexpected cost, guard against bad outcomes, or require a\ncondition to hold with a given probability. Decisions that are\nan ordering or an assignment, such as a delivery route, can be\nstated directly.",
  "License": "Apache License (== 2.0)",
  "Encoding": "UTF-8",
  "VignetteBuilder": "knitr",
  "URL": "https://quicopt.github.io/quicopt-r/,\nhttps://github.com/Quicopt/quicopt-r",
  "BugReports": "https://github.com/Quicopt/quicopt-r/issues",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.1.0",
  "Config/pak/sysreqs": "libssl-dev",
  "Repository": "https://quicopt.r-universe.dev",
  "Date/Publication": "2026-10-15 09:46:08 UTC",
  "RemoteUrl": "https://github.com/Quicopt/quicopt-r",
  "RemoteRef": "HEAD",
  "RemoteSha": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-15 11:54:02 UTC",
    "User": "root"
  },
  "Author": "Tim Bode [aut, cre, cph]",
  "Maintainer": "Tim Bode <t.bode@fz-juelich.de>",
  "_user": "quicopt",
  "_type": "src",
  "_file": "quicopt_0.7.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/40cff75612f5d30546b6c174a3093a83726c7ea49aa2f89c78c9604ac7f8ab94",
  "_filesize": 409097,
  "_sha256": "40cff75612f5d30546b6c174a3093a83726c7ea49aa2f89c78c9604ac7f8ab94",
  "_expires": "2027-01-23T12:02:16.000Z",
  "_created": "2026-10-15T11:54:02.000Z",
  "_published": "2026-10-15T12:02:18.297Z",
  "_buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116407373431,
      "time": 117,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11970690115"
    },
    {
      "job": 116407373423,
      "time": 113,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11970800059"
    },
    {
      "job": 116407373349,
      "time": 88,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11971400115"
    },
    {
      "job": 116407373402,
      "time": 114,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11971480557"
    },
    {
      "job": 116406221832,
      "time": 168,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11970089112"
    },
    {
      "job": 116407373321,
      "time": 98,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11970740027"
    },
    {
      "job": 116407373415,
      "time": 80,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11969804782"
    },
    {
      "job": 116407373597,
      "time": 86,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11970150258"
    },
    {
      "job": 116407373353,
      "time": 70,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11969929625"
    }
  ],
  "_upstream": "https://github.com/Quicopt/quicopt-r",
  "_commit": {
    "id": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
    "author": "Tim <9047234+timbode@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #8 from Quicopt/time-limit-wording\n\nSay that a search may stop before its time limit",
    "time": 1792057568
  },
  "_maintainer": {
    "name": "Tim Bode",
    "email": "t.bode@fz-juelich.de",
    "login": "timbode",
    "description": "",
    "uuid": 9047234
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "curl",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "quicopt",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-36",
      "n": 17
    },
    {
      "week": "2026-40",
      "n": 2
    },
    {
      "week": "2026-41",
      "n": 1
    },
    {
      "week": "2026-42",
      "n": 6
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-09-02"
    },
    {
      "name": "v0.1.1",
      "date": "2026-10-02"
    },
    {
      "name": "v0.4.0",
      "date": "2026-10-04"
    },
    {
      "name": "v0.6.0",
      "date": "2026-10-13"
    },
    {
      "name": "v0.6.1",
      "date": "2026-10-13"
    }
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "timbode",
      "count": 55,
      "uuid": 9047234
    }
  ],
  "_userbio": {
    "uuid": 308113613,
    "type": "organization",
    "name": "Quicopt",
    "followers": 10
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/quicopt"
  },
  "_devurl": "https://github.com/quicopt/quicopt-r",
  "_pkgdown": "https://quicopt.github.io/quicopt-r/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/quicopt.html",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/quicopt/quicopt-r",
  "_realowner": "quicopt",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2026-10-14"
    }
  ],
  "_exports": [
    "active",
    "add",
    "add_part_var",
    "add_perm_var",
    "add_rand_var",
    "add_var",
    "as_program",
    "bernoulli",
    "bin_var",
    "BINARY",
    "block",
    "constraint",
    "CONTINUOUS",
    "cvar",
    "DEFAULT_BASE_URL",
    "distribution",
    "empirical",
    "encode",
    "encode_params",
    "evaluate",
    "expectation",
    "exponential",
    "holds",
    "index_set",
    "indicator",
    "int_var",
    "INTEGER",
    "ir_apply",
    "ir_const",
    "ir_param",
    "ir_reduce",
    "ir_set_ref",
    "ir_source_ref",
    "ir_struct_ref",
    "ir_table_ref",
    "ir_var",
    "is_random",
    "item_at",
    "job_delete",
    "job_log",
    "job_result",
    "job_status",
    "lookup_table",
    "max",
    "maximize",
    "min",
    "minimize",
    "model",
    "nonneg",
    "normal",
    "num_var",
    "parametric",
    "part_of",
    "part_var",
    "partition_decl",
    "perm_var",
    "permutation_decl",
    "precede",
    "prob",
    "prod",
    "program",
    "rand_var",
    "resample",
    "scenario_max",
    "scenario_min",
    "scenario_quantile",
    "SEMICONTINUOUS",
    "SEMIINTEGER",
    "set_distribution",
    "set_empirical",
    "set_scenarios",
    "set_start",
    "size_of",
    "slot_of",
    "solve_model",
    "std_dev",
    "submit",
    "sum",
    "uniform",
    "var_decl",
    "variance",
    "zero"
  ],
  "_help": [
    {
      "page": "active",
      "title": "Whether a variable is in use",
      "topics": [
        "active"
      ]
    },
    {
      "page": "add",
      "title": "Add constraints to a model",
      "topics": [
        "add"
      ]
    },
    {
      "page": "as_program",
      "title": "Convert a model to a program",
      "topics": [
        "as_program"
      ]
    },
    {
      "page": "block",
      "title": "Group the variables of a subproblem",
      "topics": [
        "block"
      ]
    },
    {
      "page": "consets",
      "title": "Constraint sets, for building a program by hand",
      "topics": [
        "consets",
        "indicator",
        "nonneg",
        "zero"
      ]
    },
    {
      "page": "constraint",
      "title": "A constraint, for building a program by hand",
      "topics": [
        "constraint"
      ]
    },
    {
      "page": "var_decl",
      "title": "A decision variable, for building a program by hand",
      "topics": [
        "BINARY",
        "CONTINUOUS",
        "INTEGER",
        "SEMICONTINUOUS",
        "SEMIINTEGER",
        "var_decl"
      ]
    },
    {
      "page": "cvar",
      "title": "The average over the worst scenarios",
      "topics": [
        "cvar"
      ]
    },
    {
      "page": "DEFAULT_BASE_URL",
      "title": "The address of the public Quicopt service",
      "topics": [
        "DEFAULT_BASE_URL"
      ]
    },
    {
      "page": "distribution",
      "title": "Distributions for random variables",
      "topics": [
        "bernoulli",
        "distribution",
        "exponential",
        "normal",
        "uniform"
      ]
    },
    {
      "page": "empirical",
      "title": "A random variable given by a sample",
      "topics": [
        "empirical"
      ]
    },
    {
      "page": "encode",
      "title": "Encode a model as the bytes the service reads",
      "topics": [
        "encode"
      ]
    },
    {
      "page": "encode_params",
      "title": "Encode parameter tables on their own",
      "topics": [
        "encode_params"
      ]
    },
    {
      "page": "evaluate",
      "title": "Compute a quantity at a given solution",
      "topics": [
        "evaluate"
      ]
    },
    {
      "page": "expectation",
      "title": "The average over the scenarios",
      "topics": [
        "expectation"
      ]
    },
    {
      "page": "expressions",
      "title": "Expressions: arithmetic on variables",
      "topics": [
        "expressions"
      ]
    },
    {
      "page": "holds",
      "title": "A comparison as a 0/1 expression",
      "topics": [
        "holds"
      ]
    },
    {
      "page": "index_set",
      "title": "An index set, for building a program by hand",
      "topics": [
        "index_set"
      ]
    },
    {
      "page": "ir",
      "title": "Expression nodes, for building a program by hand",
      "topics": [
        "ir",
        "ir_apply",
        "ir_const",
        "ir_param",
        "ir_reduce",
        "ir_set_ref",
        "ir_source_ref",
        "ir_struct_ref",
        "ir_table_ref",
        "ir_var"
      ]
    },
    {
      "page": "is_random",
      "title": "Does an expression vary across scenarios?",
      "topics": [
        "is_random"
      ]
    },
    {
      "page": "item_at",
      "title": "The item in a slot, and the slot of an item",
      "topics": [
        "item_at",
        "slot_of"
      ]
    },
    {
      "page": "job_status",
      "title": "Follow up a submitted job",
      "topics": [
        "job_delete",
        "job_log",
        "job_result",
        "job_status"
      ]
    },
    {
      "page": "lookup_table",
      "title": "A table of data indexed by decisions",
      "topics": [
        "lookup_table",
        "[.quicopt_table"
      ]
    },
    {
      "page": "minimize",
      "title": "Set the objective",
      "topics": [
        "maximize",
        "minimize"
      ]
    },
    {
      "page": "model",
      "title": "Create an empty model",
      "topics": [
        "model"
      ]
    },
    {
      "page": "num_var",
      "title": "Declare decision variables",
      "topics": [
        "add_var",
        "bin_var",
        "int_var",
        "num_var"
      ]
    },
    {
      "page": "parametric",
      "title": "A random variable with a distribution, for building a program by hand",
      "topics": [
        "parametric"
      ]
    },
    {
      "page": "part_of",
      "title": "The part of an item, and the size of a part",
      "topics": [
        "part_of",
        "size_of"
      ]
    },
    {
      "page": "part_var",
      "title": "Divide items into groups as a decision",
      "topics": [
        "add_part_var",
        "part_var"
      ]
    },
    {
      "page": "partition_decl",
      "title": "A partition, for building a program by hand",
      "topics": [
        "partition_decl"
      ]
    },
    {
      "page": "perm_var",
      "title": "Declare an ordering as a decision",
      "topics": [
        "add_perm_var",
        "perm_var"
      ]
    },
    {
      "page": "permutation_decl",
      "title": "A permutation, for building a program by hand",
      "topics": [
        "permutation_decl"
      ]
    },
    {
      "page": "precede",
      "title": "Require one item to come before another",
      "topics": [
        "precede"
      ]
    },
    {
      "page": "prob",
      "title": "The probability that a comparison holds",
      "topics": [
        "prob"
      ]
    },
    {
      "page": "program",
      "title": "A model as plain data",
      "topics": [
        "program"
      ]
    },
    {
      "page": "rand_var",
      "title": "Declare a random variable",
      "topics": [
        "add_rand_var",
        "rand_var"
      ]
    },
    {
      "page": "resample",
      "title": "Check a solution on new scenarios",
      "topics": [
        "resample"
      ]
    },
    {
      "page": "scenario_max",
      "title": "The largest, the smallest and a quantile over the scenarios",
      "topics": [
        "scenario_max",
        "scenario_min",
        "scenario_quantile"
      ]
    },
    {
      "page": "set_distribution",
      "title": "Give a random variable its distribution",
      "topics": [
        "set_distribution"
      ]
    },
    {
      "page": "set_empirical",
      "title": "Use observed data as a model's uncertainty",
      "topics": [
        "set_empirical"
      ]
    },
    {
      "page": "set_scenarios",
      "title": "Set how many scenarios are drawn, and from which seed",
      "topics": [
        "set_scenarios"
      ]
    },
    {
      "page": "set_start",
      "title": "Start the next search from a known solution",
      "topics": [
        "set_start"
      ]
    },
    {
      "page": "solve_model",
      "title": "Solve a model",
      "topics": [
        "solve.quicopt_model",
        "solve_model"
      ]
    },
    {
      "page": "stochastic",
      "title": "Optimization under uncertainty",
      "topics": [
        "stochastic"
      ]
    },
    {
      "page": "submit",
      "title": "Solve a model without waiting",
      "topics": [
        "submit"
      ]
    },
    {
      "page": "summaries",
      "title": "Sums, products, maxima and minima",
      "topics": [
        "max",
        "min",
        "prod",
        "sum",
        "summaries"
      ]
    },
    {
      "page": "variance",
      "title": "The variance and the standard deviation over the scenarios",
      "topics": [
        "std_dev",
        "variance"
      ]
    },
    {
      "page": "wire",
      "title": "The bytes sent to the service",
      "topics": [
        "wire"
      ]
    }
  ],
  "_readme": "https://github.com/Quicopt/quicopt-r/raw/HEAD/README.md",
  "_rundeps": [
    "curl",
    "jsonlite"
  ],
  "_vignettes": [
    {
      "source": "stochastic.Rmd",
      "filename": "stochastic.html",
      "title": "Deciding before the data arrives",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How much to stock",
        "Random variables and scenarios",
        "Planning for the average day",
        "Meeting demand on 90% of days",
        "Checking the answer on new scenarios",
        "A safety margin",
        "Several uncertain quantities",
        "Planning for bad days",
        "Putting a price on an event",
        "Uncertainty from data",
        "Other distributions",
        "Solving again from an earlier answer",
        "Summaries at a glance"
      ],
      "created": "2026-09-01 19:31:27",
      "modified": "2026-10-14 09:28:27",
      "commits": 4
    },
    {
      "source": "deliveries.Rmd",
      "filename": "deliveries.html",
      "title": "Deliveries, fees and teams",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A delivery of nothing, or of 10 to 25 units",
        "Warehouses that supply several customers",
        "Splitting into teams",
        "More about these"
      ],
      "created": "2026-10-13 14:24:20",
      "modified": "2026-10-14 09:28:27",
      "commits": 3
    },
    {
      "source": "quicopt.Rmd",
      "filename": "quicopt.html",
      "title": "Get started",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A first model",
        "Whole numbers",
        "Many decisions at once",
        "Reading the answer",
        "What you can write in an expression",
        "Where the solving happens",
        "Writing a model as a pipe",
        "Where to go next"
      ],
      "created": "2026-10-05 08:54:44",
      "modified": "2026-10-15 09:46:08",
      "commits": 5
    },
    {
      "source": "permutations.Rmd",
      "filename": "permutations.html",
      "title": "Orderings and assignments",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A delivery route",
        "Items and slots",
        "The length of the route",
        "Reading the answer",
        "Uncertain travel times",
        "An office plan",
        "A lookup on its own",
        "More about permutations"
      ],
      "created": "2026-10-05 08:54:44",
      "modified": "2026-10-14 09:28:27",
      "commits": 4
    }
  ],
  "_score": 4.903089986991944,
  "_indexed": true,
  "_nocasepkg": "quicopt",
  "_universes": [
    "quicopt",
    "timbode"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:52.000Z",
      "distro": "resolute",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/09a1c624e4d2bbb99368d49db557cdd23bd3f7c316411d3b5162de85308e87ed",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:51.000Z",
      "distro": "resolute",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/dec3ae7a6897bf35944d083e7db3ba4cfda73c66117b89562abf2f32f2823d43",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-10-15T11:58:38.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/5f2ba7402217230b77d1c5b5f39e7e2a8061494324824308f0cc0b342d9b8e7f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-10-15T12:01:40.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/241db900b5b3251b96f73cad0e2e736683d491615a021c73f85b546fb9ff60e5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:56.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/d00fdf1f11a4c72044281cbf235d0a45933e8aa16e4214137fe0d5a59503bc2e",
      "status": "success",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:12.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/f097a403b81bf3e57a4215edcb3b02834c569e30527ebd39ae6b4a1834d38516",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:20.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/d204be6aadcc7be195fdb8f95df5cb7e6584233d52f9e54c3a566abbf5b61df3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-15T11:55:07.000Z",
      "commit": "c0c9a46370edbc5cf52ed4633ba644bebbed509e",
      "fileid": "https://r2.ropensci.org/4265eabd553d3ad17011691cf7d397f77b242a5d129b6cfedb1396cd0f0b9d4e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/quicopt/actions/runs/38730288307"
    }
  ]
}