COMP90041 - Moral Machines - Build an Ethical Engine - Machine Learning Assignment Help

Download Solution Order New Solution
Assignment Task

 

Moral Machines The idea of Moral Machines is based on the Trolley Dilemma, a fictional scenario presenting a decision maker with a moral dilemma: choosing ”the lesser of two evils”. The scenario entails an autonomous car whose brakes fail at a pedestrian crossing. As it is too late to relinquish control to the car’s passengers, the car needs to make a decision based on the facts available about the situation. Figure 1 shows an example scenario. In this project, you will create an Ethical Engine, a program designed to explore different scenarios, build an algorithm to decide between the life of the car’s passengers vs. the life of the pedestrians, audit your decision-making algorithm through simulations, and allow users of your program to judge the outcomes themselves.

 Build an Ethical Engine - Go to https://classroom.github.com/a/ZLuymdEg and accept the final project assignment. For details on how to check out the repository, make sure to consult the Lab 3 Materials.

You can create additional classes if needed. EthicalEngine.java contains the main function and coordinates the program flow. Scenario.java contains a list of passengers, a list of pedestrians, as well as additional scenario conditions, such as whether pedestrians are legally crossing at the traffic light. The decision-making algorithm is implemented as a static method with the name decide(Scenario scenario) in EthicalEngine.java. The welcome.ascii file contains a text message that needs to be imported by your program and printed to the console to introduce the user task (interactive mode). Start by implementing the classes Persona.java, Human.java, Animal.java, and Scenario.java. SenarioGenerator.java is explained in detail in Section 2 and Audit.java in Section 3.

 

The Abstract Class Persona Persona is an Abstract Class from which all Persona types inherit. This base class should be implemented as depicted in Figure 2. The class further comprises two enumeration types: 1. Gender must include the types FEMALE and MALE as well as a default option UNKNOWN, but can also include more diverse options if you so choose. 2. BodyType includes the types AVERAGE, ATHLETIC, and OVERWEIGHT as well as a default option UNSPECIFIED. The Persona Class should implement the constructors as depicted in Figure 2. Make sure the empty constructor initializes all attributes with appropriate default values. Age should be treated as a class invariant for which the following statement always yields true: age >= 0.

Classes Inheriting from Persona.java Create at least two concrete classes that directly inherit from the abstract class Persona: 1. Human.java: scenarios are inhabited by people who exhibit a number of characteristics (e.g., age, gender, body type, profession etc.). In the scenarios, each human is either considered to be a passenger or a pedestrian. Only a human can be you. 2. Animal.java: animals are part of the environment we live in. People walk their pets so make sure your program accounts for these.

The Class Scenario.java This class contains all relevant information about a presented scenario, including the car’s passengers and the pedestrians on the street as well as whether the pedestrians are crossing legally. Each scenario can have only one instance of Human for which isYou() returns true. The following public methods must be implemented: • the constructor Scenario(Persona[] passengers, Persona[] pedestrians, boolean isLegalCrossing): you can use Arrays or ArrayLists in your class, but you need to make sure this constructor takes a Human array as an argument. • the public method hasYouInCar(): returns a boolean indicating whether you (the user) is in the car. • the public method hasYouInLane(): returns a boolean indicating whether you (the user) are in the lane, i.e., crossing the street.

 

Scenario Generator The class ScenarioGenerator.java will be the basis of your simulation and shall be used to create a variety of scenarios. To guarantee a balanced set of scenarios, it is crucial to randomize as many elements as possible, including the number and characteristics of humans and animals involved in each scenario as well as the scenario itself. To be able to properly test your scenarios and make sure your results can be replicated, you must apply pseudorandomness. Therefore, you need to familiarize yourself first with the class java.util.random 2 and especially with the function setSeed(long seed).

 

 

This COMP90041 – Machine Learning Assignment has been solved by our Machine Learning experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

Get It Done! Today

Country
Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
+

Every Assignment. Every Solution. Instantly. Deadline Ahead? Grab Your Sample Now.