Skip to content

使用遗传算法,对 Minecraft 玩家背包物品进行偏好性排序。| Utilizing genetic algorithms to perform preference-based sorting of items in a Minecraft player's inventory.

Notifications You must be signed in to change notification settings

loveboyme/InventoryOptimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 InventoryOptimizer ⚙️

智能优化你的 Minecraft 背包!

InventoryOptimizer 是一款 Bukkit 插件,利用遗传算法来学习你的物品使用习惯,并智能地重新排列你的背包,让你常用的物品触手可及!再也不用在杂乱的背包里翻箱倒柜啦!

🌟 主要特性

  • 🧠 智能学习: 插件会默默观察你的物品交互行为,学习你常用的物品以及你习惯放置它们的位置。
  • 🧬 遗传算法优化: 基于你的使用习惯,使用强大的遗传算法找出最优的背包排列方案。
  • 🪄 一键优化: 只需一个命令 /optimize,即可让插件为你整理背包。
  • 🛠️ 可配置性: 可以自定义遗传算法的参数,如种群大小、变异率等,以适应不同的优化需求。
  • 📊 数据驱动: 插件会存储玩家的物品使用数据,以便进行更精准的优化。
  • 🔔 学习完成通知: 当插件完成学习后会通知玩家,可以开始使用优化功能。

⚙️ 工作原理

  1. 数据收集: 当玩家与背包物品交互时(如点击、移动物品),插件会记录物品的使用频率和偏好放置的槽位。
  2. 遗传算法应用: 当玩家执行 /optimize 命令时,插件会:
    • 初始化种群: 创建多个随机的背包排列方案。
    • 评估适应度: 根据玩家的学习数据(物品使用频率和槽位偏好),评估每个排列方案的“好坏”。
    • 选择: 选择适应度较高的排列方案作为“父母”。
    • 交叉: 将“父母”的排列方案进行组合,产生新的“后代”排列方案。
    • 变异: 对部分“后代”排列方案进行随机调整,引入多样性。
    • 迭代: 重复选择、交叉和变异过程多次,不断进化,直到找到最优的背包排列。
  3. 应用优化: 将找到的最优背包排列应用到玩家的背包中。

🛠️ 安装

  1. InventoryOptimizer.jar 文件放入你的 Bukkit/Spigot 服务器的 plugins 文件夹中。
  2. 重启你的服务器。

🎮 使用方法

  • /optimize: 执行此命令来优化你的背包。插件会根据你的学习数据,自动排列你的物品。

⚙️ 配置

插件的配置文件位于 plugins/InventoryOptimizer/config.yml。你可以修改以下选项:

# 遗传算法参数
genetic_algorithm:
  population_size: 50   # 每一代的个体数量
  mutation_rate: 0.05    # 基因变异的概率 (0.0 到 1.0)
  elite_size: 5        # 保留的精英个体数量

# 学习阶段参数
learning_threshold: 200 # 玩家需要进行多少次物品交互后才认为学习完成
learning_check_interval: 300 # (秒) 定期检查玩家学习状态的间隔
  • genetic_algorithm.population_size: 遗传算法中每一代产生的候选背包排列方案的数量。数值越大,搜索空间越大,可能找到更优解,但计算时间也会增加。
  • genetic_algorithm.mutation_rate: 在遗传算法中,新的背包排列方案发生随机变化的概率。较高的变异率可以引入更多多样性,但也可能破坏好的排列。
  • genetic_algorithm.elite_size: 每一代中保留的适应度最高的个体数量,这些个体将直接进入下一代,保证优秀基因的传承。
  • learning_threshold: 玩家需要进行多少次物品交互(拾取、放置、移动物品等)后,插件才会认为学习完成,并允许使用 /optimize 命令。
  • learning_check_interval: 插件每隔多少秒检查一次在线玩家的学习状态,如果达到学习阈值,则通知玩家学习完成。

🤝 贡献

欢迎提交 Issues 和 Pull Requests!如果你有任何改进建议或者发现了 bug,请在 GitHub 上提出。

📄 许可证

本项目使用 MIT License

About

使用遗传算法,对 Minecraft 玩家背包物品进行偏好性排序。| Utilizing genetic algorithms to perform preference-based sorting of items in a Minecraft player's inventory.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published