CSE 5/7350 – Project

Course Timeslot and Student Assignment Project

This project looks at implementing an algorithm to solve a problem, analyzing the algorithm’s implementation, along with testing and characterizing your implementation to show it matches the analysis.
The particular problem for the project is the problem of assigning students to courses and finding timeslots for the courses being offered so the students can attend the courses they wish to take. This project will have two primary parts. The first part will create the raw data on course requests for the students, split the courses into different sections and develop a sequential adjacency list data structure for section conflicts based on the student course requests. The second part of the project will employ heuristic assignment procedures to decide the timeslot of each of the sections of the courses to avoid conflicts with other sections of other courses in the each student’s schedule. This procedure’s efficiency is intimately related to the data structures involved for both the input conflict data and the intermediate data necessary for the scheduling algorithm.

Part 1.
PURPOSE
Part 1 of the project is used to determine which courses each student will take. The courses are numbered from 1 to C. The courses for each student will be determined based on a random number generator with different distributions. Part 1 will then split the courses into distinct sections and then determine which sections of which courses must be scheduled at a different time from each other to avoid conflicts in the students’ schedules.
INPUT:
C = Number of courses being offered (MAX = 10,000)
S = Number of students. (MAX = 100,000)
K = Number of courses per student. (MAX = C)
SectionSize = the target size of a section
SPLIT = BASIC | ADVANCED (CSE 7350 – extra credit 5% for CSE 5350)
DIST = UNIFORM | 2-TIERED | 4-TIERED | YOURS
OUTPUT:
C = Number of courses being offered
S = Number of students.
K = Number of courses per student.
SectionSize = the target size of a section
SPLIT = BASIC | ADVANCED
DIST = UNIFORM | 2-TIERED | 4-TIERED | YOURS
M = number of distinct pair-wise section conflicts.
T = Total number of pair-wise section conflicts.
E[] = adjacency list of distinct section conflicts (length = 2M)
P[] = Pointer for each section I, 1 <= I <= N denoting the starting point in E[] of the list of sections in conflict with section I. That is, the conflicts for section I are indicated in locations E[P[I]], E[P[I]+1], …, E[P[I+1]-1].

PROCEDURE:
For student_course data generation we shall pick K distinct courses between 1 and C for each student. These courses may then be split into individual sections based on SectionSize. These sections of the courses imply specific conflicts. That is if a student is taking section 1 of course 5 and section 2 of course 93, then these two sections of these particular courses may not be offered at the same time. In particular, each student generates K(K-1)/2 pair-wise section conflicts. However, many of these conflicts may be the same as other students.
The courses chosen for each student shall be chosen using a pseudo random number generator according to one of the specified distributions. These distributions are uniform, two-tiered, four-tiered and one other of your choosing. The uniform distribution assumes each course is equally likely to be chosen by a student. The two-tiered distribution assumes that the first 10% of the courses have 50% of the probability distribution. The four-tiered distribution assumes that the first 25% of the courses have 40% of the probability distribution. The next 25% has 30% of the probability distribution. The next 25% has 20% of the probability distribution and the last 25% has 10% of the probability distribution. Graphs of these distributions are shown below.

代写CSE 5/7350作业、代做C/C++程序语言作业、代写data structures作业、代做C/C++实验作业

You may use a built-in uniform distribution pseudo-random number generator, but must base the other distributions on the output of this built-in generator.
Once the course selection for the students has been determined, courses should be broken down into sections based on the “Section Size” input. The minimum size of a section should be 2/3 of Section Size (unless only 1 section is available). The maximum size of a section should be 4/3 Section Size. All students should implement a simple way for doing this that just divides the students into sections. CSE 7350 students should also implement a more advanced way of breaking the courses into sections that attempts to minimize the overall conflicts. CSE 5350 students may implement the more advanced way of breaking the courses into sections for 5% extra credit.
For output one method of your choosing must be used for counting conflicts, removing duplicate conflicts, and preparing the E[] and P[] arrays. This method must only require O ( M ) space.

Part 2.
INPUT: - Same is part 1 Output.
OUTPUT:
The input parameters (except E[] and P[])
For each vertex (session) the color, original degree, (and degree when deleted for the smallest last ordering). These should be printed in the order colored.
Total number of colors used, the average original degree, and the maximum “degree when deleted” value for the smallest last ordering, and the size of the terminal clique for the smallest last ordering.
Any other summary data you wish to include.
PROCEDURE:
You are to use three different methods for ordering the vertices in the graph. One is given below and two are of your own choosing. Then you are to assign a color (scheduling time) to each vertex in the order determined so that it doesn’t conflict with the other vertices already colored. You will then compare the different ordering methodologies based on the following criteria:
Asymptotic running time
Asymptotic space requirement
Total number of colors needed
Report any other interesting metric

METHOD 1: Smallest Last Vertex Ordering: The following format for the values of variables in various fields of the data node for each vertex may be used to save storage space.

Vertex Field 1 Field 2 Field 3 Field 4
I Session Number P(I): Pointer to edge list a)Current Degree
b)–1 when deleted
c)Color value a)Pointers for doubly-linked list of vertices of same current degree
b)Pointer for order deleted list

1.Establish the pointers to the lists of vertices of degree j, 0 <= j <= N-1, and any other pointers or variables needed.
2.Create the code to recursively delete a vertex of smallest degree, updating the third and forth fields of each data node to relate to the remaining graph, adding the vertex deleted to the ordered list of vertices deleted.
3.After all vertices have been deleted, scan and assign colors (session periods) to each vertex in an order opposite to the order deleted, assigning for a “color” the smallest non-negative integer not previously assigned to any adjacent vertex. The output associated with each vertex may be printed as the coloring is assigned.
4.Print any further output and summary information for the schedule.

For additional output with METHOD 1 you should include
A graph indicating the degree when deleted on the vertical axes and the order colored on the x-axis.
The maximum degree when deleted.
The size of the terminal clique.
Any other summary data you wish to include.

METHOD 2 and METHOD 3 are of your choosing

TESTING:

You should test your program in such a fashion to convince me it operates as expected.

PART 1 REPORT
For Part 1, your report should describe
Your computing environment in detail;
Distributions:
oThe distribution you chose;
oThe methods you used for creating the different distributions;
oGraphical histograms indicating how many students are actually attending each course;
oThe asymptotic bounding functions for the running times and space required to calculate the distributions based on C, K and S;
oRuntime examples of times demonstrating your asymptotic bounds for your distributions (Tables are good here)
The two algorithms you chose for splitting courses into sections,
oThe asymptotic bounding functions for the running times of your algorithms
oRunning times demonstrating the asymptotic bounds
oThe impact of your splitting on the number of distinct conflicts
The algorithm to remove the duplicates
oThe asymptotic bounding functions for the running time.
o Runtime examples demonstrating your asymptotic bounds.
You should also include your output (not including E[] or P[] ) for the test cases given and your source code should be included as an appendix in your report for Part 1.

FINAL REPORT:

The final report should be the equivalent of 10-15 typewritten double spaced pages and contain the following material:
Your report should include the information from Part 1 along with a walkthrough of your three algorithms of Part 2, the asymptotic bounding functions for the running times and space required to color the graphs and runtime examples demonstrating your asymptotic bounds. You should also include your output for the test cases given. Your source code for both parts of the project should be included as an appendix in your report.
In general, this report should present a good case to “sell” your scheduling program by listing its range of applicability and expected behavior in the most favorable light, while also acknowledging the limitations in an appropriate manner.

GRADING

The grade on this project will be based on the correctness of the code and the completeness and strength of the final report. The strength of the final report will be evaluated on the thoroughness of your algorithm descriptions and analysis along with the presentation of the timing data that supports your analysis.

You should submit the final report, the output for the test cases and the final source code as a single pdf.

DUE DATES

Part 1 is due March 27th at 5:00pm. It is worth 50% of the project grade.

Part 2 is due April 17th at 5:00pm for 5% extra credit
After April 17th at 5pm & before April 29th at 5pm for full credit
After April 29th at 5pm and before May 6th at 5pm for -5%
After May 6th is -10% and may require an incomplete in the course.

If your Part 2 grade is higher than your Part 1 grade, then your Part 1 will be 10% of the project grade and Part 2 will be 90% of your project grade. Otherwise, your project grade will be the average of your Part 1 and Part 2 grades.

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com

微信:codinghelp

转载于:https://www.cnblogs.com/glodwell/p/10706623.html

CSE 5/7350 – Project相关推荐

  1. 圣科鲁兹 计算机专业,加州大学圣克鲁兹分校计算机工程硕士专业 将发明创新融入到工业中!...

    在当今世界中,只要不是像电影里人工智能统治世界,任何行业都少不了计算机工程人才,国内目前针对此人才培养资源十分有限,于是很多学生将目光转向海外留学,美国的计算机教育一直全球领先,很多院校也都开设了计算 ...

  2. COMP9313 2018s2 Project 3

    代做COMP9313留学生作业.代做java/c++程序作业.代写AWS EMR作业.代写python/C++设计作业 COMP9313 2018s2 Project 3 Set Similarity ...

  3. CSE 110: Principles of Programming Languages

    CSE 110留学生作业代写.代做PatronList作业.代写Java编程语言作业.代做Java实验设计作业 CSE 110: Principles of Programming Languages ...

  4. Spring Cloud应用接入华为云微服务CSE

    概述 Spring Cloud应用可以方便的接入CSE提供的基础服务.接入CSE服务有如下好处: 开发者可以专注于业务系统的开发,把精力从中间件的可靠性评估.集群部署.运维监控等复杂的事情中解放出来. ...

  5. 欢迎您到威斯康星大学的CSE人工智能网站

    欢迎您到威斯康星大学的CSE人工智能网站! We are active in all major areas of AI, including machine learning, natural la ...

  6. ideal如何创建dynamic web project

    步骤如下 ① file -> new -> project ② 选择 Java Enterprise -> next ③ create project from template - ...

  7. This version of Android Studio cannot open this project, please retry with Android Studio 3.5 or new

    今天github 下载一个库 导入 as 提示 This version of Android Studio cannot open this project, please retry with A ...

  8. Error:The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum required is 25.0.

    导入github上项目的时候出现 Error:The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum ...

  9. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

最新文章

  1. 闲谈嵌入式的复杂性2
  2. jQuery 入门教程(1): 概述
  3. 国家服务器1eb硬盘,仅一个月:奇亚币已占用超过1EB存储空间
  4. 反浏览器指纹追踪(反浏览器指纹追踪技术)
  5. python list存储方式_python list存储
  6. SDN——转控分离、CPU保护机制——COPP技术案列详解及配置命令、
  7. j计算机一级考试题,2017全国计算机一级考试试题与答案
  8. 《spring-boot学习》-14-spring boot整合freeMarker模板
  9. @Resource和@Autowired小笔记
  10. windows输入法打出的字母空隙很大怎么办?
  11. 物流配送管理系统(ssm,mysql)
  12. 如何同时将多张图片进行批量无损压缩、调整尺寸及调整大小
  13. SpringBoot项目yml文件 不显示绿色小树叶的问题
  14. 单片机8位共阴极数码管0~99自增
  15. 3分钟教你如何在Word里快速制作单斜线和多斜线表头
  16. matlab简易画爱心
  17. 有什么助于睡眠的方法,睡眠不好,一定要知道这些方法
  18. python函数中变量LEGB原则
  19. 极其简单的JDK安装步骤(图文)
  20. 如何解决Java查看源代码时页面显示Source not found

热门文章

  1. 工作日志——k8s pvpvc
  2. SESSION存储于redis(CI3)
  3. Summary of the Academic English Class
  4. things to be done
  5. 哥大计算机工程申请入口和登陆入口
  6. 希望找到计算机系的好期刊的影响因子的排序?并作为选刊依据?选SJR就足够了
  7. vim+cscope的使用
  8. jeesite快速开发平台(三)----项目文件结构与配置文件详解
  9. Git无法检测到文件名大小写的更改
  10. GridView导出到Excel或Word文件