海量数据处理大作业实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
海量数据处理大作业实验报告

Pancake Tycoon煎饼大亨 海量数据处理课程实验报告 清华大学 计54 曹正 kevin@goog01 清华大学 计54 杨子 redeye@goog01 一 项目内容简介 本项目主题是实现一款模拟经营类游戏。使用hadoop大规模数据处理技术,对店铺、顾客进行模拟,并针对店铺信息等提供可供玩家设置的交互性,从而实现最简单的模拟经营效果。 游戏对煎饼摊这一校内常见的经营进行模拟。用户可以设置煎饼摊的数量,不同摊位的详细设置(见后,详细设计部分)。软件根据用户的设置,对每个顾客的消费行为作模拟,最后汇总,返回给用户。用户根据返回的结果,适当调整摊位的设置,力争尽可能多的利润。 煎饼摊需要投入经营资金,例如面粉等原料的进货。同时销售则会收入资金。利润由此而来。总体上,单个摊位的模型设置如前所述,可以看到和实际中的煎饼摊位是差不多的。在应对多店铺的情况时,模型有所简化,见详细设计部分。 二 项目详细设计 1 总论 软件需要与用户交互,以输入店铺参数等信息,同时软件还要能够使用分布式系统,进行hadoop数据处理,最后软件要将结果返回给用户。 基于以上功能需求的考虑,软件划分为两个部分:与用户交互、接受输入、反馈结果的客户端,和获得运行所需数据、进行hadoop数据处理、最终汇总结果返回的服务器端。客户端运行在用户机器上,服务器端运行在集群上。双方通过Socket进行通信,以协议的形式设定好双方统一的命令、数据格式。 2 数学模型 如项目概述所述,对于每个店铺,使用类似实际的表达。对于店铺见的关系,软件对模型作了高度简化。对于顾客信息,为了运算的需要,产生对应的参数。 a 店铺信息 考察一个实际的煎饼摊位,为了煎饼制作、销售的进行,摊位需要准备如下物资:面粉、果子(薄脆)、葱、酱(这里我们分为甜和咸两种)、鸡蛋。我们对模型作了简化,没有提供榨菜等。这些物资在经营过程中需要玩家给出进货指令来增加。 煎饼销售要考虑的问题有售价,以及每套煎饼内使用的面粉、果子(薄脆)、葱、酱、鸡蛋。这里果子(薄脆)和鸡蛋可以按照顾客的需求加入,参见顾客模型。 经营过程就是物资的输入输出,收入的获得,成本的支出过程。玩家控制进货,对应的产生指出;经营过程被模拟出来,对应的产生收入。最终的经营效果,包括物资的剩余量和销售收入会提供的玩家,以便作分析进行进货。 b 顾客信息 在店铺信息中已经给出了经营算法。这里考虑每一位顾客是否会购买煎饼。模型被简化,目前每位顾客有买与不买两个选择,但不会买多份。 为了考察购买与否,需要给出一个评估函数。该函数以店铺信息中的经营参数,以及顾客信息作为参数。为此,顾客信息模型建立,带有如下参数:喜好的面粉量、葱、酱添加量,加多少果子,加多少鸡蛋。店铺与顾客对应参数相减,取偏差相对喜好的百分比,再相加。使用该值作为评估函数的一部分,另一部分参见顾客调查。 定义好评估函数,则每个顾客均参与评估,当达到阈值,如0.5之类,则评估返回为购买,否则即为不购买。将所有顾客遍历,得到汇总信息,归并之后返回给玩家,也就是店铺信息指出的返回值的来源。 顾客的数目可以在服务器端的程序中手动进行设置。 c 多店铺 多店铺模型相比开始时的设计有大幅简化。 初始设计中,店铺带有坐标信息,对应的顾客也带有坐标信息。取欧氏距离作为计算标准,每位顾客在每一轮经营中会选择最近的一个店铺。 后来,取消了坐标的设计。目前的设计是顾客会随意选择一个店铺,然后根据顾客信息中的方式进行评估。 店铺的数目和分布可以在客户端的程序中手动进行设置。目前的店铺设置为清华大学地图中的10个店铺位置,如下图所示。其中的数字是服务器端和客户端约定的交流hard code部分,这些信息替代了原来的坐标信息。 d 顾客调查 软件提供给客户一些额外信息,是对购买的顾客作的调查,包括:是否觉得贵,是否认为等待时间过长,是否认为过咸或者过淡,是否认为过甜。 为了模拟这些信息,在顾客信息中添加这些成员,并在每轮模拟中计算这些值。计算方法同顾客信息中指出的评估方法。 特别地,由于有了顾客调查这部分信息,故让他们也参与到评估中,方法即为在最终的评估结果基础上加上这些数值。值得注意的是,所加的数值是上一轮计算出来的,对应实际中对一个煎饼摊的印象。而后新的顾客调查数值才会被计算出来并在信息中更新。 以上所有的数值都是为了参与模拟经营的计算,要返回给玩家时,再进行如下模拟。 在店铺信息中指出的汇总过程中,考察每一个顾客。生成一个随机数,如果随机到调查该顾客,则从顾客调查信息中取出数据,否则跳过、轮询下一位顾客。在取出数据后,按照一定阈值,如0.02,对数据作评估,在对应的问卷结果中加入。该过程类似下面的代码。 for every guest { get a random number;

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档