{
  "_id": "6a102ee4acfb0bcc41c94942",
  "Package": "mstATA",
  "Title": "Automated Test Assembly for Multistage Tests Using Mixed-Integer\nLinear Programming",
  "Version": "0.1.0",
  "Authors@R": "person(\"Hong\",\"Chen\", email=\"hongchen030@gmail.com\", role = c(\"aut\", \"cre\"))",
  "Description": "Provides a suite of mixed-integer linear programming\n(MILP) model builders and solvers—including 'Gurobi', 'HiGHS',\n'Symphony', 'GNU Linear Programming Kit (GLPK)', and\n'lpSolve'—for automated test assembly (ATA) in multistage\ntesting (MST). Offers filtering of decision variables through\nitem–module eligibility and the application of explicit bounds\nto simplify the MILP model and accelerate the optimization\nprocess. Supports bottom up, top down, and hybrid assembly\nstrategies; enemy-item and enemy-stimulus exclusions; stimulus\nall in/all out or partial selection; anchor item/stimulus\nspecification; and item exposure control. Accommodates both\nsingle-objective and multi-objective optimization ('weighted\nsum', 'maximin', 'capped maximin', 'minimax', and 'goal\nprogramming'). Enables simultaneous assembly of multiple panels\nwith item and stimulus content balancing and exposure control.\nProvides analytical evaluation of assembled MST performance\nwithin seconds. Includes tools for diagnosing infeasible\noptimization models by systematically identifying sources of\ninfeasibility and reformulating models with slack variables to\nrestore feasibility.Methods implemented in this package build\non established work in optimal test assembly (van der Linden,\n2005 <doi:10.1007/0-387-29054-0>), item-set constrained test\nassembly (van der Linden, 2000\n<doi:10.1177/01466210022031697>), hybrid assembly (Xiong, 2018\n<doi:10.1177/0146621618762739>), recursion-based analytic\nmethods (Lim et al., 2021 <doi:10.1111/jedm.12276>), and\nclassification evaluation (Rudner, 2000\n<doi:10.7275/an9m-2035>; Rudner, 2005 <doi:10.7275/56a5-6b14>).",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "LazyData": "true",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/Hongchen030/mstATA",
  "BugReports": "https://github.com/Hongchen030/mstATA/issues",
  "Repository": "https://hongchen030.r-universe.dev",
  "Date/Publication": "2026-05-12 20:32:44 UTC",
  "RemoteUrl": "https://github.com/hongchen030/mstata",
  "RemoteRef": "HEAD",
  "RemoteSha": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-12 21:42:20 UTC",
    "User": "root"
  },
  "Author": "Hong Chen [aut, cre]",
  "Maintainer": "Hong Chen <hongchen030@gmail.com>",
  "MD5sum": "3a1c530649ca5be61227a4053908f854",
  "_user": "hongchen030",
  "_type": "src",
  "_file": "mstATA_0.1.0.tar.gz",
  "_fileid": "01ac97f349947d2d2a3d37445defe2431f4eb1410cadfb04c064aa167c4d0bad",
  "_filesize": 2637157,
  "_sha256": "01ac97f349947d2d2a3d37445defe2431f4eb1410cadfb04c064aa167c4d0bad",
  "_created": "2026-05-12T21:42:20.000Z",
  "_published": "2026-05-22T10:24:36.945Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77360994789,
      "time": 265,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "6956630521"
    },
    {
      "job": 77360994922,
      "time": 248,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "6956625316"
    },
    {
      "job": 77360994862,
      "time": 257,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "6956628064"
    },
    {
      "job": 77360994675,
      "time": 186,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "6956605610"
    },
    {
      "job": 77360994431,
      "time": 294,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6956546778"
    },
    {
      "job": 77360994051,
      "time": 181,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7158275110"
    },
    {
      "job": 77360994835,
      "time": 247,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "WARNING",
      "artifact": "6956625266"
    },
    {
      "job": 77360995001,
      "time": 228,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "WARNING",
      "artifact": "6956618905"
    },
    {
      "job": 77360994821,
      "time": 212,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "6956614055"
    }
  ],
  "_buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/hongchen030/mstata",
  "_commit": {
    "id": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
    "author": "Hong <hongchen030@gmail.com>",
    "committer": "Hong <hongchen030@gmail.com>",
    "message": "multiple test formats\n",
    "time": 1778617964
  },
  "_maintainer": {
    "name": "Hong Chen",
    "email": "hongchen030@gmail.com",
    "login": "hongchen030",
    "uuid": 64045948
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "kableExtra",
      "role": "Suggests"
    },
    {
      "package": "highs",
      "role": "Suggests"
    },
    {
      "package": "lpSolveAPI",
      "role": "Suggests"
    },
    {
      "package": "Rglpk",
      "role": "Suggests"
    },
    {
      "package": "Rsymphony",
      "role": "Suggests"
    },
    {
      "package": "irtQ",
      "role": "Suggests"
    },
    {
      "package": "mstR",
      "role": "Suggests"
    },
    {
      "package": "numDeriv",
      "role": "Suggests"
    },
    {
      "package": "ggformula",
      "role": "Suggests"
    },
    {
      "package": "ggpubr",
      "role": "Suggests"
    }
  ],
  "_owner": "hongchen030",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-11",
      "n": 3
    },
    {
      "week": "2026-12",
      "n": 1
    },
    {
      "week": "2026-20",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-03-18"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "hongchen030",
      "count": 5,
      "uuid": 64045948
    }
  ],
  "_userbio": {
    "uuid": 64045948,
    "type": "user",
    "name": "HongChen030"
  },
  "_downloads": {
    "count": 164,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/mstATA"
  },
  "_devurl": "https://github.com/hongchen030/mstata",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/mstATA.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/hongchen030/mstata",
  "_realowner": "hongchen030",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-03-23"
    }
  ],
  "_exports": [
    "analytic_mst_classification",
    "analytic_mst_precision",
    "assembled_panel",
    "capped_maximin_obj",
    "check_comblock_feasibility",
    "check_singleblock_feasibility",
    "compute_icc",
    "compute_iif",
    "concat_enemy_sets",
    "create_enemy_sets",
    "create_pivot_stimulus_map",
    "dvlink_item_solution",
    "enemyitem_exclu_con",
    "enemystim_exclu_con",
    "expected_score",
    "gen_weight",
    "get_attribute_val",
    "goal_programming_obj",
    "inverse_tcc",
    "itemcat_con",
    "itemquant_con",
    "joint_module_score_dist",
    "maximin_obj",
    "minimax_obj",
    "module_score_dist",
    "mst_design",
    "mst_structure_con",
    "multipanel_spec",
    "objective_term",
    "onepanel_spec",
    "panel_itemcat_con",
    "panel_itemreuse_con",
    "panel_stimcat_con",
    "Pi_internal",
    "plot_panel_tcc",
    "plot_panel_tif",
    "plot_tif",
    "report_test_itemcat",
    "report_test_itemquant",
    "report_test_tcc",
    "report_test_tif",
    "single_obj",
    "solution_itemcat_con",
    "solution_itemcount_con",
    "solution_stimcat_con",
    "solution_stimcount_con",
    "solve_model",
    "solve_with_slack",
    "stim_itemcat_con",
    "stim_itemcount_con",
    "stim_itemquant_con",
    "stimcat_con",
    "stimquant_con",
    "test_itemcat_con",
    "test_itemcat_range_con",
    "test_itemcount_con",
    "test_itemquant_con",
    "test_itemquant_range_con",
    "test_rdp_con",
    "test_stimcat_con",
    "test_stimcount_con",
    "test_stimquant_con",
    "weighted_sum_obj"
  ],
  "_datasets": [
    {
      "name": "binary_minimax_panel",
      "title": "Precomputed MST Panel: Binary_Minimax Formulation",
      "object": "binary_minimax_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "BU13_panel",
      "title": "Precomputed Bottom-up MST Assembly Example (BU13)",
      "object": "BU13_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "capped_maximin_panel",
      "title": "Precomputed MST Panel: Capped_Maximin Formulation",
      "object": "capped_maximin_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "goal_programming_panel",
      "title": "Precomputed MST Panel: Goal_Programming Formulation",
      "object": "goal_programming_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "Hy13_panel",
      "title": "Precomputed Hybrid MST Assembly Example",
      "object": "Hy13_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "maximin_panel",
      "title": "Precomputed MST Panel: Maximin Formulation",
      "object": "maximin_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "mini_itempool",
      "title": "Example mini item pool for MST",
      "object": "mini_itempool",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item_id",
        "content",
        "itemtype",
        "time",
        "discrimination",
        "difficulty",
        "guessing",
        "model",
        "nrCat",
        "enemy_cluing",
        "enemy_similarity",
        "stimulus",
        "iif(theta=-1)",
        "iif(theta=0)",
        "iif(theta=1)"
      ],
      "rows": 30,
      "table": true,
      "tojson": true
    },
    {
      "name": "mixed_format_pool",
      "title": "Example Mixed-Format Item Pool for MST",
      "object": "mixed_format_pool",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item_id",
        "enemyitem",
        "content",
        "dok",
        "itemtype",
        "time",
        "discrimination",
        "difficulty",
        "model",
        "stim",
        "pivot",
        "stimtype",
        "stimcomplexity"
      ],
      "rows": 1000,
      "table": true,
      "tojson": true
    },
    {
      "name": "poly_itempool",
      "title": "Example Polytomous Item Pool for MST",
      "object": "poly_itempool",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item_id",
        "content",
        "deltaj1",
        "deltaj2",
        "deltaj3",
        "model",
        "nrCat"
      ],
      "rows": 50,
      "table": true,
      "tojson": true
    },
    {
      "name": "reading_itempool",
      "title": "Reading Item Pool",
      "object": "reading_itempool",
      "class": [
        "data.frame"
      ],
      "fields": [
        "item_id",
        "content",
        "itemtype",
        "time",
        "discrimination",
        "difficulty",
        "guessing",
        "model",
        "nrCat",
        "enemy_item",
        "stimulus",
        "pivot_item",
        "enemy_stimulus",
        "stimulus_type",
        "stimulus_words"
      ],
      "rows": 500,
      "table": true,
      "tojson": true
    },
    {
      "name": "reading_panel",
      "title": "Precomputed Stimulus-Based Assessment (MST Assembly Example)",
      "object": "reading_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "Rmst_pool",
      "title": "Item pool from Rmst for examples",
      "object": "Rmst_pool",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Item_id",
        "model",
        "a",
        "b",
        "c",
        "alpha",
        "delta1",
        "delta2",
        "delta3",
        "beta1",
        "beta2",
        "content",
        "time",
        "group"
      ],
      "rows": 440,
      "table": true,
      "tojson": true
    },
    {
      "name": "TD12_panel",
      "title": "Precomputed Top-Down MST Assembly Example (TD12)",
      "object": "TD12_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "TD123_panel",
      "title": "Precomputed Top-Down MST Assembly Example (TD123)",
      "object": "TD123_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "unary_minimax_panel",
      "title": "Precomputed MST Panel: Unary_Minimax Formulation",
      "object": "unary_minimax_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "weighted_sum_panel",
      "title": "Precomputed MST Panel: Weighted_Sum Formulation",
      "object": "weighted_sum_panel",
      "class": [
        "mstATA_panel"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "analytic_mst_classification",
      "title": "Analytic classification accuracy and consistency for MST panels",
      "topics": [
        "analytic_mst_classification"
      ]
    },
    {
      "page": "analytic_mst_precision",
      "title": "Evaluate MST designs via recursive score-distribution propagation",
      "topics": [
        "analytic_mst_precision"
      ]
    },
    {
      "page": "assembled_panel",
      "title": "Assemble Selected Items into MST panel",
      "topics": [
        "assembled_panel"
      ]
    },
    {
      "page": "binary_minimax_panel",
      "title": "Precomputed MST Panel: Binary_Minimax Formulation",
      "topics": [
        "binary_minimax_panel"
      ]
    },
    {
      "page": "BU13_panel",
      "title": "Precomputed Bottom-up MST Assembly Example (BU13)",
      "topics": [
        "BU13_panel"
      ]
    },
    {
      "page": "capped_maximin_obj",
      "title": "Capped maximin objective",
      "topics": [
        "capped_maximin_obj"
      ]
    },
    {
      "page": "capped_maximin_panel",
      "title": "Precomputed MST Panel: Capped_Maximin Formulation",
      "topics": [
        "capped_maximin_panel"
      ]
    },
    {
      "page": "check_comblock_feasibility",
      "title": "Feasibility check for a specified combination of constraint blocks",
      "topics": [
        "check_comblock_feasibility"
      ]
    },
    {
      "page": "check_singleblock_feasibility",
      "title": "Block-wise feasibility diagnostics for infeasible mstATA models",
      "topics": [
        "check_singleblock_feasibility"
      ]
    },
    {
      "page": "compute_icc",
      "title": "Compute Item Characteristic Curves (ICC)",
      "topics": [
        "compute_icc"
      ]
    },
    {
      "page": "compute_iif",
      "title": "Compute Item Information Function (IIF) at Target Theta Points",
      "topics": [
        "compute_iif"
      ]
    },
    {
      "page": "concat_enemy_sets",
      "title": "Concatenate Enemy Sets",
      "topics": [
        "concat_enemy_sets"
      ]
    },
    {
      "page": "create_enemy_sets",
      "title": "Create Enemy Pairs and Enemy Sets",
      "topics": [
        "create_enemy_sets"
      ]
    },
    {
      "page": "create_pivot_stimulus_map",
      "title": "Create Pivot-Stimulus Mapping",
      "topics": [
        "create_pivot_stimulus_map"
      ]
    },
    {
      "page": "dvlink_item_solution",
      "title": "Defining Solution-level Item Indicator Variables and Generating Constraints for Item Exposure Control Across Multiple Panels",
      "topics": [
        "dvlink_item_solution"
      ]
    },
    {
      "page": "enemyitem_exclu_con",
      "title": "Generate Pathway-Level Constraints to Prevent Enemy Items from Appearing Together",
      "topics": [
        "enemyitem_exclu_con"
      ]
    },
    {
      "page": "enemystim_exclu_con",
      "title": "Generate Pathway-Level Constraints to Prevent Enemy Stimuli from Appearing Together",
      "topics": [
        "enemystim_exclu_con"
      ]
    },
    {
      "page": "expected_score",
      "title": "Expected score",
      "topics": [
        "expected_score"
      ]
    },
    {
      "page": "gen_weight",
      "title": "Generate population weights over a specified ability grid",
      "topics": [
        "gen_weight"
      ]
    },
    {
      "page": "get_attribute_val",
      "title": "Get Item Categorical/Quantitative Attribute Value",
      "topics": [
        "get_attribute_val"
      ]
    },
    {
      "page": "goal_programming_obj",
      "title": "Minimize Deviations from Target Goals (Goal Programming)",
      "topics": [
        "goal_programming_obj"
      ]
    },
    {
      "page": "goal_programming_panel",
      "title": "Precomputed MST Panel: Goal_Programming Formulation",
      "topics": [
        "goal_programming_panel"
      ]
    },
    {
      "page": "Hy13_panel",
      "title": "Precomputed Hybrid MST Assembly Example",
      "topics": [
        "Hy13_panel"
      ]
    },
    {
      "page": "inverse_tcc",
      "title": "Inverse test characteristic curve",
      "topics": [
        "inverse_tcc"
      ]
    },
    {
      "page": "itemcat_con",
      "title": "Generate Item-Level Constraints to Explicitly Select or Not Select Specific Items",
      "topics": [
        "itemcat_con"
      ]
    },
    {
      "page": "itemquant_con",
      "title": "Generate Item-Level Constraints Requiring Quantitative Attributes to Satisfy Lower, Upper, or Range Bounds (Not for Operational Use)",
      "topics": [
        "itemquant_con"
      ]
    },
    {
      "page": "joint_module_score_dist",
      "title": "Compute joint/cumulative score distribution under routing",
      "topics": [
        "joint_module_score_dist"
      ]
    },
    {
      "page": "maximin_obj",
      "title": "Maximin objective (with optional overflow band)",
      "topics": [
        "maximin_obj"
      ]
    },
    {
      "page": "maximin_panel",
      "title": "Precomputed MST Panel: Maximin Formulation",
      "topics": [
        "maximin_panel"
      ]
    },
    {
      "page": "mini_itempool",
      "title": "Example mini item pool for MST",
      "topics": [
        "mini_itempool"
      ]
    },
    {
      "page": "minimax_obj",
      "title": "Minimize A Common Maximum Deviation From Target Goals",
      "topics": [
        "minimax_obj"
      ]
    },
    {
      "page": "mixed_format_pool",
      "title": "Example Mixed-Format Item Pool for MST",
      "topics": [
        "mixed_format_pool"
      ]
    },
    {
      "page": "module_score_dist",
      "title": "Module Score Distribution at One or More Ability Values",
      "topics": [
        "module_score_dist"
      ]
    },
    {
      "page": "mst_design",
      "title": "Create an mstATA_design Object",
      "topics": [
        "mst_design"
      ]
    },
    {
      "page": "mst_structure_con",
      "title": "Construct MST Structural Constraints for an MST Panel",
      "topics": [
        "mst_structure_con"
      ]
    },
    {
      "page": "multipanel_spec",
      "title": "Define a Multi-Panel mstATA Model",
      "topics": [
        "multipanel_spec"
      ]
    },
    {
      "page": "objective_term",
      "title": "Create a Single Linear Objective Term",
      "topics": [
        "objective_term"
      ]
    },
    {
      "page": "onepanel_spec",
      "title": "Define a Single-Panel mstATA Model",
      "topics": [
        "onepanel_spec"
      ]
    },
    {
      "page": "panel_itemcat_con",
      "title": "Generate Panel-Level Constraints for the Min/Exact/Max Number of Items from Specific Categorical Levels",
      "topics": [
        "panel_itemcat_con"
      ]
    },
    {
      "page": "panel_itemreuse_con",
      "title": "Generate Panel-Level Constraints for Item Reuse Across Modules/Pathways",
      "topics": [
        "panel_itemreuse_con"
      ]
    },
    {
      "page": "panel_stimcat_con",
      "title": "Generate Panel-Level Constraints for the Min/Exact/Max Number of Stimuli from Specific Categorical Levels",
      "topics": [
        "panel_stimcat_con"
      ]
    },
    {
      "page": "Pi_internal",
      "title": "Compute Item Response Category Probabilities and Derivatives",
      "topics": [
        "Pi_internal"
      ]
    },
    {
      "page": "plot_panel_tcc",
      "title": "Plot Test Category Probability Curves",
      "topics": [
        "plot_panel_tcc"
      ]
    },
    {
      "page": "plot_panel_tif",
      "title": "Plot Test Information Functions",
      "topics": [
        "plot_panel_tif"
      ]
    },
    {
      "page": "plot_tif",
      "title": "Plot Test Information Functions",
      "topics": [
        "plot_tif"
      ]
    },
    {
      "page": "poly_itempool",
      "title": "Example Polytomous Item Pool for MST",
      "topics": [
        "poly_itempool"
      ]
    },
    {
      "page": "print.mstATA_model",
      "title": "Print mstATA Model",
      "topics": [
        "print.mstATA_model"
      ]
    },
    {
      "page": "reading_itempool",
      "title": "Reading Item Pool",
      "topics": [
        "reading_itempool"
      ]
    },
    {
      "page": "reading_panel",
      "title": "Precomputed Stimulus-Based Assessment (MST Assembly Example)",
      "topics": [
        "reading_panel"
      ]
    },
    {
      "page": "report_test_itemcat",
      "title": "Summarize Categorical Item Attributes in Assembled MST Panels",
      "topics": [
        "report_test_itemcat"
      ]
    },
    {
      "page": "report_test_itemquant",
      "title": "Summarize Quantitative Item Attributes in Assembled MST Panels",
      "topics": [
        "report_test_itemquant"
      ]
    },
    {
      "page": "report_test_tcc",
      "title": "Report Test Characteristic Curves (TCC)",
      "topics": [
        "report_test_tcc"
      ]
    },
    {
      "page": "report_test_tif",
      "title": "Report Test Information Functions (TIF)",
      "topics": [
        "report_test_tif"
      ]
    },
    {
      "page": "Rmst_pool",
      "title": "Item pool from Rmst for examples",
      "topics": [
        "Rmst_pool"
      ]
    },
    {
      "page": "single_obj",
      "title": "Maximize or Minimize a Single Objective Term",
      "topics": [
        "single_obj"
      ]
    },
    {
      "page": "solution_itemcat_con",
      "title": "Generate Solution-Level Constraints for the Min/Exact/Max Number of Unique Items from Specific Categorical Levels",
      "topics": [
        "solution_itemcat_con"
      ]
    },
    {
      "page": "solution_itemcount_con",
      "title": "Generate Solution-Level Constraints for the Number of Unique Items Selected Across Panels",
      "topics": [
        "solution_itemcount_con"
      ]
    },
    {
      "page": "solution_stimcat_con",
      "title": "Generate Solution-Level Constraints for the Min/Exact/Max Number of Unique Stimuli in Specified Categories",
      "topics": [
        "solution_stimcat_con"
      ]
    },
    {
      "page": "solution_stimcount_con",
      "title": "Generate Solution-Level Constraints on the Number of Unique Stimuli Selected Across Panels",
      "topics": [
        "solution_stimcount_con"
      ]
    },
    {
      "page": "solve_model",
      "title": "Solve an ATA Model Using a Mathematical Programming Solver",
      "topics": [
        "solve_model"
      ]
    },
    {
      "page": "solve_with_slack",
      "title": "Solve An Infeasible mstATA Model Using Block-level Slack Variables",
      "topics": [
        "solve_with_slack"
      ]
    },
    {
      "page": "stim_itemcat_con",
      "title": "Generate Itemset-Level Constraints for Minimum, Exact, or Maximum Numbers of Stimulus-Linked Items from Specific Categorical Levels",
      "topics": [
        "stim_itemcat_con"
      ]
    },
    {
      "page": "stim_itemcount_con",
      "title": "Generate Itemset-Level Constraints for the Number of Selected Items",
      "topics": [
        "stim_itemcount_con"
      ]
    },
    {
      "page": "stim_itemquant_con",
      "title": "Generate Itemset-Level Constraints for Minimum/Exact/Maximum Sum of Item Quantitative Attribute Values",
      "topics": [
        "stim_itemquant_con"
      ]
    },
    {
      "page": "stimcat_con",
      "title": "Generate Stimulus-Level Constraints to Explicitly Select or Not Select Specific Stimuli in MST Panel Assembly",
      "topics": [
        "stimcat_con"
      ]
    },
    {
      "page": "stimquant_con",
      "title": "Generate Stimulus-Level Constraints Requiring Stimulus-Level Quantitative Attributes to Be Greater Than, Less Than, or Within a Specified Range",
      "topics": [
        "stimquant_con"
      ]
    },
    {
      "page": "TD12_panel",
      "title": "Precomputed Top-Down MST Assembly Example (TD12)",
      "topics": [
        "TD12_panel"
      ]
    },
    {
      "page": "TD123_panel",
      "title": "Precomputed Top-Down MST Assembly Example (TD123)",
      "topics": [
        "TD123_panel"
      ]
    },
    {
      "page": "test_itemcat_con",
      "title": "Generate Module- or Pathway-Level Constraints for the Minimum, Exact, or Maximum Number of Items from Specific Categorical Levels",
      "topics": [
        "test_itemcat_con"
      ]
    },
    {
      "page": "test_itemcat_range_con",
      "title": "Generate Module- or Pathway-Level Range Constraints for the Number of Items from Specific Categorical Levels",
      "topics": [
        "test_itemcat_range_con"
      ]
    },
    {
      "page": "test_itemcount_con",
      "title": "Generate Module- or Pathway-Level Constraints for the Number of Selected Items",
      "topics": [
        "test_itemcount_con"
      ]
    },
    {
      "page": "test_itemquant_con",
      "title": "Generate Module/Pathway-Level Constraints on the Sum of Item Quantitative Attributes",
      "topics": [
        "test_itemquant_con"
      ]
    },
    {
      "page": "test_itemquant_range_con",
      "title": "Generate Module/Pathway-Level Range Constraints for the Sum of Item Quantitative Attributes",
      "topics": [
        "test_itemquant_range_con"
      ]
    },
    {
      "page": "test_rdp_con",
      "title": "Routing Decision Point Information Balance Constraint",
      "topics": [
        "test_rdp_con"
      ]
    },
    {
      "page": "test_stimcat_con",
      "title": "Generate Module/Pathway-Level Constraints for the Min/Exact/Max Number of Stimuli from Specific Categorical Levels",
      "topics": [
        "test_stimcat_con"
      ]
    },
    {
      "page": "test_stimcount_con",
      "title": "Generate Module/Pathway-Level Constraints for the Number of Selected Stimuli",
      "topics": [
        "test_stimcount_con"
      ]
    },
    {
      "page": "test_stimquant_con",
      "title": "Generate Module/Pathway-Level Constraints for the Sum of Stimulus Quantitative Attributes",
      "topics": [
        "test_stimquant_con"
      ]
    },
    {
      "page": "unary_minimax_panel",
      "title": "Precomputed MST Panel: Unary_Minimax Formulation",
      "topics": [
        "unary_minimax_panel"
      ]
    },
    {
      "page": "weighted_sum_obj",
      "title": "Minimize or Maximize a Weighted Sum of Multiple Objective Functions",
      "topics": [
        "weighted_sum_obj"
      ]
    },
    {
      "page": "weighted_sum_panel",
      "title": "Precomputed MST Panel: Weighted_Sum Formulation",
      "topics": [
        "weighted_sum_panel"
      ]
    }
  ],
  "_readme": "https://github.com/hongchen030/mstata/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "pillar",
    "pkgconfig",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "Detecting_and_Resolving_Infeasibility.Rmd",
      "filename": "Detecting_and_Resolving_Infeasibility.html",
      "title": "Detecting and Resolving Infeasibility",
      "author": "Hong Chen",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Examples: Introduce Infeasibility",
        "Constructing mstATA_model for one panel",
        "Case 1:",
        "Case 2:",
        "Case 3",
        "Suggestions",
        "Assess Item Pool Sufficiency",
        "Check Residual Variables for A Simplified MST Design",
        "Replace Equality Constraints with Small Ranges",
        "Check for Correctness and Consistency",
        "Perform Incremental Constraint Testing",
        "Reformulate Using Goal Programming and Slack Variables"
      ],
      "created": "2026-03-12 01:41:33",
      "modified": "2026-03-18 15:18:43",
      "commits": 2
    },
    {
      "source": "Formulation_for_Multiple_Objectives.Rmd",
      "filename": "Formulation_for_Multiple_Objectives.html",
      "title": "Formulation for Multiple Objectives",
      "author": "Hong Chen",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Overview",
        "Constraint vs objective",
        "Objective term",
        "Relative or absolute objective",
        "Multiple-Objective Formulations",
        "Weighted sum",
        "Goal programming",
        "Maximin",
        "Capped maximin",
        "Minimax",
        "Worked Example",
        "Item pool data",
        "Specifications",
        "Constraints",
        "Objectives",
        "Step 7: Evaluate panel",
        "Number of TEI items per pathway",
        "Total expected response item per pathway",
        "TIF threshold",
        "Number of items per content per module",
        "Number of items per dok level per module",
        "Mean difficulty for adaptive modules",
        "Stimulus-related Requirements Check",
        "Pathway TIF plots",
        "Module TIF plot",
        "TIF values at -1, 0, 1 for S1R module",
        "Solver performance",
        "Analytical approach to evaluate the performance of MST panel",
        "Classification Accuracy and Consistency",
        "Practical Guidance",
        "Summary"
      ],
      "created": "2026-03-12 01:41:33",
      "modified": "2026-03-18 15:18:43",
      "commits": 2
    },
    {
      "source": "Getting_Started_with_mstATA.Rmd",
      "filename": "Getting_Started_with_mstATA.html",
      "title": "Getting Started with mstATA: A Complete Workflow",
      "author": "Hong",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Workflow Overview",
        "Step 1: Prepare the Item Pool",
        "IRT Computation",
        "Attribute Check",
        "Step 2: Specify the MST Structure",
        "Step 3: Identify Hierarchical Requirements",
        "Step 4: Translate specifications into an optimization model",
        "Objectives",
        "Constraints",
        "Step 5: Execute Assembly via a Solver",
        "Step 6: Diagnosing Infeasibility",
        "Step 7: Evaluate assembled panels",
        "Summary"
      ],
      "created": "2026-03-12 01:41:33",
      "modified": "2026-03-18 15:18:43",
      "commits": 2
    },
    {
      "source": "Stimulus_Based_Assessment_Conditional_Item_Selection.Rmd",
      "filename": "Stimulus_Based_Assessment_Conditional_Item_Selection.html",
      "title": "Stimulus-Based Assessment in mstATA: Conditional Item Selection",
      "author": "Hong Chen",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Data Structure for Stimulus-Based Item Pools",
        "Modeling Strategy: Conditional Item Selection",
        "Decision variables",
        "Logical constraints and linking",
        "Functions",
        "Worked Example",
        "Item pool data",
        "Specifications",
        "Code",
        "Step 1: Prepare the Item Pool",
        "Step 2: Specify the MST Structure",
        "Step 3: Identify hierarchical requirements",
        "Step 4: Translate specifications",
        "Step 5: Execute assembly via solver",
        "Step 6: Diagnose infeasible model",
        "Step 7: Evaluate panel",
        "Summary"
      ],
      "created": "2026-03-12 01:41:33",
      "modified": "2026-03-18 15:18:43",
      "commits": 2
    },
    {
      "source": "Three_ATA_Strategies.Rmd",
      "filename": "Three_ATA_Strategies.html",
      "title": "Three ATA Strategies",
      "author": "Hong Chen",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Item pool",
        "Example",
        "Top-down 1-2 MST",
        "Bottom-up 1-3 MST",
        "Top-down 1-2-3 MST with reused items",
        "Hybrid 1-3 MST",
        "Summary"
      ],
      "created": "2026-03-12 01:41:33",
      "modified": "2026-03-18 15:18:43",
      "commits": 2
    }
  ],
  "_score": 4.8750612633917,
  "_indexed": true,
  "_nocasepkg": "mstata",
  "_universes": [
    "hongchen030"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-05-12T21:45:19.000Z",
      "distro": "noble",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "9821d9e8e41a69e2ccaf2aef12685235b7e8241d196a039320ae50f74999671c",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-05-12T21:45:11.000Z",
      "distro": "noble",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "8b10092a01e7c4bc5a894a9df9fc0f62b580c3c51cbce65404aeec01691ddc7c",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-05-12T21:45:45.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "c99c1a22c52ac5394e5ecc331ffc4c8bf65a21e6b9adef8ae6f8eecaaa3ca1fb",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-05-12T21:44:42.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "feb160d1ef8868d47cfcc69cffee4ca8034baae28d763bc34be8ce6b52d8c215",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-05-12T21:44:24.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "9aa7661e5cf533434a1cd8fc556bb4b32a1f30aed837f12684eb8c8b84303c9a",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-05-12T21:44:44.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "32e9326b4b413aca3212f831ec0fd882619d79e5c1189dfe27c2fe4627074d1a",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-05-12T21:44:06.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "9cb236c76b48afc0c35aa206ccaf33c6c0ccca1ef03cd2568a4dfaf92d14133c",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-05-22T10:24:07.000Z",
      "commit": "4c6ec22caba582b3f3b6d82559a7fd52b4f6a3cf",
      "fileid": "d779d73e9a97f624e7307b69d2ddb3b7e9e57d1f2676f74f6ef9e3da7313b7eb",
      "status": "success",
      "buildurl": "https://github.com/r-universe/hongchen030/actions/runs/25763705634"
    }
  ]
}